Part of #560 (RFC: unify scenes and prefabs).
Problem
Scenes today have no root entity; unification invents one. Existing save files were written under the no-root model — so the synthetic root is a potential save-format break. The RFC's "Out of scope" covers hot-reload but not save compat.
Decision to make
Whether the synthetic root is persisted:
- Persisted + tagged engine-synthetic (recommended) — a marker component lets tools/diffs filter it; destroy-root has a stable, save-visible handle.
- Not persisted — needs a stable hidden handle reconstructed on load; fragile across reload (the "remembered one, forgot the other" failure mode the RFC exists to kill).
Scope
- Pick and specify the approach.
- If saves exist for in-tree projects, define the load-path behavior for old (rootless) save files: either a migration on load, or graceful synthesis.
- Normative spec lands in the RFC doc.
Acceptance
- An old (pre-unification) save file loads correctly post-unification.
- Round-trip save -> load -> save is stable (no spurious root churn in diffs).
Refs: #560, #470.
Part of #560 (RFC: unify scenes and prefabs).
Problem
Scenes today have no root entity; unification invents one. Existing save files were written under the no-root model — so the synthetic root is a potential save-format break. The RFC's "Out of scope" covers hot-reload but not save compat.
Decision to make
Whether the synthetic root is persisted:
Scope
Acceptance
Refs: #560, #470.