reconcileWithChildren
Reconciles block against this node's children, at the end of the change pass rather than here.
A node's update runs before the runtime applies the content that update declared, so a write made here that reads the node's children - a JTabbedPane put on one of its own tabs - would be made against the children the pass before it left behind. Handing the write over instead has one pass declare a child and reconcile against it.
block runs at the end of the pass that hands it over, and again at the end of every later pass that adds, removes or moves this node's children, since that is when a standing declaration can become one the widget answers differently, even when the node itself does not recompose.
A androidx.compose.runtime.SideEffect cannot replace this: a SideEffect runs only when its own scope recomposes, not on every later pass that changes this node's children.
Runs on every composition like SwingNodeUpdater.reconcile. block runs against a scope standing for this node, which reaches the node's own placement - where the composition holds the component - as well as the component itself, without exposing the node itself.