Preserve an opaque viewport value across a reconciliation result. The
viewport itself is always passed through unchanged (this module never
moves a camera); invalidated is true only on result.reset, so a
caller can decide whether to refit bounds — deterministic, and never a
silent no-op on a schema/replacement-snapshot reset.
Preserve an opaque viewport value across a reconciliation result. The viewport itself is always passed through unchanged (this module never moves a camera);
invalidatedistrueonly onresult.reset, so a caller can decide whether to refit bounds — deterministic, and never a silent no-op on a schema/replacement-snapshot reset.