Save, load, jobs and reproducibility
Save and reopen
Save scene writes a catalog project with optimistic revision checks. Save project downloads a complete .qway authoring checkpoint with original resources; Open project restores it as a new project. QWAY, WRIGHT, RIDLEY and RAMS share these boundaries.
Use the save/open guide for exact inclusions and limits. Browser session recovery is a convenience, not a backup. Keep a project archive before publishing an optimized WorldPack.
Concurrent edits and jobs
Updates compare expectedRevision; conflicts must be reconciled, not silently overwritten. Compilation/analysis/provider jobs carry revision/hash context. Cancel stops adoption of unfinished work; stale results cannot replace newer source. Atomic writes and restart recovery protect persisted records. Failed/interrupted jobs should remain inspectable.
FastAPI owns storage/provider orchestration. The bounded TypeScript worker owns geometry/compiler math. Restart does not authorize fresh AI inference or adoption of a newer normalization profile.
Authored versus runtime state
Player reset restores authored initial state; it does not reload an automatically changed source. Physics and cinematics own transient transforms only while active. Explicit capture-to-authoring is a new semantic edit requiring validation. Runtime events, temporary camera movement and bounded NPC session memory are not automatically saved as project intent.
Contract ownership
| Contract | Owner | Persisted / external use |
|---|---|---|
| AssetManifest | Deterministic analysis + separately accepted semantics | Immutable revision; authoritative measured evidence |
| ProjectDocument | Authoring/compiler and API persistence | Draft and accepted source; not a player input |
| SceneDocumentV2 | Compiler | Resolved neutral scene; external runtime input |
| WrightInput / WrightResolved | WRIGHT/compiler | Topology intent / derived frames and verification |
| CinematicDocument / ExperienceDocument | RIDLEY/compiler | Resolved direction/state; separate from transient director state |
| WorldManifest / WorldSource | WorldPack | Runtime resources and chunks; source adapter lifecycle |
| Runtime observations | Player/adapters | Transient; never silently written to semantic source |