mergeSnapshot
Snapshot merge using only the immutable result. Mirrors RegressionTree.merge but the "other" side is a TreeNodeResult tree-of-results rather than a live tree. VectorView only, for the same reason snapshot is.
snapshot
Freeze a live VectorView tree node into an immutable, serializable snapshot. Internal split aggregates are derived from the snapshotted children so the wire format stays stable even though live splits hold no arm.
Snapshotting is VectorView-only because the wire format requires SerializableSplit; a VectorView tree is always grown from SerializableSplit candidates, so the cast on each split is safe by construction.