Skip to content

Define save/load semantics for the invented scene root entity #571

@apotema

Description

@apotema

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions