Save, restore, and reconnect media
Save Project JSON
Section titled “Save Project JSON”Read a committed Session snapshot and persist its canonical Project plus the revision and your application metadata. Project JSON contains stable IDs and timeline semantics, not runtime media objects or credentials.
Autosave
Section titled “Autosave”Subscribe to commits, debounce writes by revision, serialize in order, and never allow a slower older write to replace a newer revision. Record terminal save failure and retry policy explicitly.
Asset locators
Section titled “Asset locators”Store only product-owned hints needed to ask for or recover a source: asset-library ID, OPFS key,
content hash, safe URL template, or local file name/size/modified metadata. Do not store bearer
tokens, FileSystemHandle assumptions, Blob URLs, or private paths in Project.
Correct restore order
Section titled “Correct restore order”- Parse and migrate application metadata.
- Validate/migrate Project JSON under input budgets.
- Resolve or ask for each required asset representation.
- Register media in the provider.
- Create and load the Session.
- Attach preview/player and enable editing.
Missing media
Section titled “Missing media”Keep the Project intact, report unresolved asset IDs, let the user locate replacements, probe and verify compatibility, then register them. Do not silently bind a different-duration source.
Schema and application extensions
Section titled “Schema and application extensions”Run explicit, deterministic, versioned migrations before load. Keep product-only state in an application envelope keyed by Project ID/revision or in the Project extension field allowed by the schema; never add arbitrary top-level fields.
Close checks
Section titled “Close checks”Confirm or cancel active export, await the latest required save, stop incoming commands, dispose runtime resources, and retain only durable data. See Project v1 field reference.