Working with the standard
Start with a pinned release, declare the capabilities you provide, and preserve exact file identities.
- Read the final 0.5.0 specification and the profiles relevant to your object.
- Keep original measurements and source evidence separate from derived representations.
- Record rights for each resource; a package does not erase third-party restrictions.
- Validate the workspace and release bindings before packing a carrier.
- Verify the carrier and publish it with its version identifier and checksums.
Reference validation
python Tools/vao05.py validate path/to/workspace
python Tools/vao05.py pack path/to/workspace output.vaoThe release includes schemas, conformance fixtures, reference tools and migration guidance. Use the environment and installation instructions distributed with that release rather than assuming that an unrelated tool version implements the same contract.
Decide the contract before building the viewer
| Decision | Why it matters |
|---|---|
| Object and historical state | Determines which subjects the resources and claims refer to. |
| Profiles and required capabilities | Determines the responsibilities a conforming implementation must satisfy. |
| Exact realizations and provenance | Distinguishes captured material from conversions, derivations and simulations. |
| Delivery and dependencies | Determines which groups must be present before an experience can run. |
For final VAO 0.5.0, Core and Dynamic Delivery are mandatory. Additional profiles express further requirements; they are not decorative labels. An implementation that can display metadata but cannot satisfy a required playback capability should report that limitation. It may still provide useful lower-level inspection without claiming full support for the playable profile.
Validate at more than one level
Start with a workspace whose manifest and resource paths can be inspected locally. Check the manifest’s references and declared profiles, then verify the exact payload realizations. After packaging, check the carrier mapping and release bindings as well. A structurally valid manifest does not establish that a published carrier contains the bytes it promises.
Keep a small fixture with a known result for each capability you implement. Include an unsupported-profile case and an intentionally altered payload: these should produce clear limitations or validation failures, not silent substitution. Record the validator version with the result. This is practical implementation guidance; the versioned conformance specification remains the authority for required tests.
Sources & further reading
- VAO Standard 0.5.0
The versioned specification and reference tools.
Page editions 2026-09-r3 ↓
Read a fixed snapshot of this chapter, or return to the current notebook.
58a98acfdf8dPage metadata ↗