Keep application source portable
The Content Runtime example keeps its editable game source in a versioned JSON document and stores presentation media beside it. Last Train to the Moon uses:
last-train-to-the-moon/
├── game-source.vifu.json
└── assets/
├── audio/
└── images/This is an example application format, not a format required by the Vifu Agent Runtime. Another plugin can use a database, files, or its own import format.
What the source contains
The example source describes the story graph, scenes, choices, conditions, Agent references, host actions, localization, and logical presentation resources. Media files remain addressable inputs rather than provider or user state.
The source can refer to canonical Vifu project and Agent identities, but a portable copy must not contain:
- provider credentials;
- project keys or runtime-channel credentials;
- administrator or user sessions;
- Agent Gateway credentials; or
- logs and traces.
Those records belong to the Vifu deployment that owns access to the Agents.
Import into another deployment
An importer validates the application source and media, creates application records, and reconnects references to a canonical Vifu project. Provider credentials are configured at the target Vifu deployment rather than copied with content.
Keeping this boundary explicit lets a product move its editable source without turning an application archive into a credential archive.
Source is not a release
Editable source is expected to change. A published session needs a compiled, immutable reference instead. Read Runtime releases for that half of the example.
