Implementation
Packages and role outputs
Keep scenario content, publication identity, and product records distinct.
Format definition
Define a portable package and enforce role-specific information release in generated outputs.
Portable format · Suite implementation support
Parameters
package.manifest
{ documentPath: string, assetIds: Asset ID[], digest: string }
Required
Archive manifest points to scenario.json and its asset manifest. Digest is SHA-256 of the exact UTF-8 scenario.json bytes, not a claim of clinical correctness or semantic content identity.
outputs.views[]
{ id: ID, audience: learner | facilitator, kind: brief | guide | event-map | checklist, includeIds: ID[] }
Optional; default []
Explicit content selection filtered by audience. Learner views exclude facilitator-only content even when named in includeIds.
Behavior and validation
- A portable archive contains scenario.json, manifest.json, and assets/. Reject duplicate entry names and path traversal before extraction. Package mechanics remain distinct from content revision identity.
- Digest verification covers exactly the packaged UTF-8 bytes of scenario.json and is a package-integrity check. It must not be reused as semantic content identity.
- Static learner briefs include only initial learner-visible content. Run-time views additionally require satisfied disclosure and result availability. Hidden content must not be sent to the learner browser or embedded in its downloadable source.
- Actual learner identity, scores, cue delivery records, session dates, and event history stay outside scenario content. Outputs identify scenarioId and revision so the delivered view can be traced.
Shared format conventions · All format elements · Download specification
The Suite package envelope
Builder exports this application package after publication. Its importer checks the format version, revision metadata, scenario shape, SHA-256 content digest, and scenario graph. Import copies the scenario content, including its author, into a new local draft. The exported revision identity is validated but is not stored as a local publication.
| Path | Type / value | Meaning |
|---|---|---|
format | "usim-suite-scenario" | Identifies this application envelope. |
formatVersion | 1 | Supported Suite package version. |
scope | string | Explains the application-specific content scope. |
revision.id | string | Identity recorded by the exporting workspace. |
revision.number | positive integer | Published revision number. |
revision.createdAt | date string | Recorded revision creation time. |
revision.digest | 64 lowercase hexadecimal characters | SHA-256 digest of the scenario serialization. |
scenario | Scenario object | The content documented by the Suite profile schema. |
The downloadable example is the inner scenario object. It has no published revision or digest and is not an import package. Library references and function scripts are outside this package profile.
Four products, one foundation
| Product | Scenario relationship | Included capability |
|---|---|---|
| Builder | Authors, validates, publishes, and renders | Output tools |
| Marketplace | Discovers, distributes, and reuses | Shared content and modules |
| Center | Coordinates scenario requirements | Local delivery preparation |
| Campus | Runs a fixed revision for learning | Classroom |