Skip to documentation
ReferenceStart here

Start here

Scenario structure

Five domains describe one portable simulation.

Format definition

A scenario document identifies patients, observations, resources, and behavior.

Portable format · Suite implementation support

Parameters

format

literal "usim-scenario"

Required

Identifies this portable document; distinct from the existing usim-suite-scenario export envelope.

formatVersion

literal "2.0"

Required

Identifies the document format used for validation.

executionProfile

{ id: URI, version: string, requiredCapabilities: string[], optionalCapabilities: string[] }

Optional; execution requires it

Identifies the executable capability contract layered on the core vocabulary. A portable-core document may omit it, but an executor must establish a compatible profile before running the scenario.

extensions

map<reverse-domain string, { version: string, required: boolean, data: object }>

Optional; default {}

Namespaced vendor or profile additions. The namespace is the lookup key; version and required status determine whether a consumer can safely ignore, preserve, or reject the extension.

vocabularies[]

{ id: URI, version: string, kind: concept | value-type | unit | dimension | value-set, sha256: 64 lowercase hexadecimal characters, assetId?: Asset ID }

Optional; default []

Pins the concept, value-type, unit, or dimensional definitions used by the document. Definitions must be bundled or resolved by a trusted profile; execution never fetches an untrusted URL.

scenarioId

ID

Required

Stable content identity. Publication revisions and delivery instances remain separate records.

patients

Patient[]

Required; at least one

Explicit array permits multiple patients. Each patient owns an ID; observations and interventions reference that ID.

observations

Observation[]

Required; may be empty

Authored symptoms, findings, and measurements with provenance, visibility, and availability.

events.conditions

Condition[]

Required; may be empty

Named, bounded predicates referenced by actions, states, and cues.

events.effects

Effect[]

Required; may be empty

Named, typed operations; no arbitrary script evaluation.

assets

Asset[]

Required; may be empty

Portable media manifest referenced by diagnostics and role outputs.

Behavior and validation

  • This specification defines the portable format. Example blocks are document fragments, not Suite import packages. Current application support is documented in the Suite implementation profile.
  • formatVersion identifies the core vocabulary; executionProfile identifies an executable capability contract. A consumer must compare required capabilities before execution. If executionProfile is omitted, the document remains portable core content but cannot claim executable profile conformance.
  • Capability lists contain unique strings and are disjoint. Required capabilities gate execution; optional capabilities describe behavior a consumer may preserve or report as unsupported without pretending to execute it.
  • ID means a case-sensitive string matching [a-z][a-z0-9-]{0,63}. Entity IDs are unique across the document; references must resolve to the expected entity type. Collection order has no behavioral meaning except where a field or rule explicitly declares order, including steps, cues, effect references, action outcomes, and composition overrides.
  • Required fields must be present. Omitted optional values remain unspecified unless a field gives an explicit default. Reject null unless expressly permitted. Empty arrays mean no authored items, not an assessed negative. Times are finite simulated seconds; ISO dates describe content provenance only.
  • Vocabulary entries are declarations, not permission to fetch arbitrary definitions. Verify the pinned digest against a bundled asset or a trusted profile resolution before using a concept, value type, unit, dimension, or value set.
  • Reject unknown core fields. Vendor additions live under extensions, keyed by a reverse-domain namespace with declared version and required/optional status. A consumer unable to execute a required extension must reject the document; optional extensions must be preserved or reported as lossy on export. Extension data cannot add arbitrary script, network, filesystem, or random execution.

Shared format conventions · All format elements · Download specification

Content travels. Product records stay with their owner.

LayerExamplesOwner
Scenario contentPatient, environment, objectives, states, actions, objects.usim foundation
Authoring recordsDraft identity, graph coordinates, commentsBuilder
Distribution recordsListings, licenses, import receiptsMarketplace
Delivery recordsBookings, room assignments, readinessCenter
Learning recordsRuns, reflections, achievements, classroom membershipCampus

Field reference

7 records in this view
objectApplication field

The fictional patient's presentation, history, examination, and starting observations.

  • Required when the containing object is present.
stringApplication field

The fictional patient's display name.

  • Required when the containing object is present.
stringApplication field

The patient's opening situation and the context available at the start of the scenario.

  • Required when the containing object is present.
objectApplication field

An optional embedded patient photo that travels with the scenario. Upload a PNG, JPEG, or WebP image.

  • Optional; omitted values remain unspecified.
stringApplication field

The patient photo encoded as a data URL. Use the photo upload control to populate it.

  • Required when the containing object is present.
stringApplication field

Describe the patient's appearance for readers who cannot see the photo.

  • Required when the containing object is present.
events
objectApplication field

The patient phases, transitions, and requestable resources that define how the scenario progresses.

  • Required when the containing object is present.