insertAfter function
Inserts newNode as a child of parent after sibling.
Returns false if sibling is not a direct child of parent.
Implementation
bool insertAfter(FNode parent, FNode sibling, FNode newNode) {
final children = _mutableChildrenOf(parent);
if (children == null) return false;
final idx = children.indexWhere((c) => c.id == sibling.id);
if (idx < 0) return false;
children.insert(idx + 1, newNode);
return true;
}