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.

Scenario standard · Execution capabilities

Parameters

format

"usim-scenario"

Required

Identifies the .usim scenario document used by all consumers.

formatVersion

"2.0"

Required

Identifies the document format used for validation.

executionProfile

object

Optional; omitted means unspecified

Declares required and optional execution capabilities. Consumers also inspect populated behavioral fields before running a document.

extensions

object

Optional; omitted means unspecified

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[]

object

Optional; omitted means unspecified

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

string

Required

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

patients

object[]

Required

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

observations

object[]

Optional; omitted means unspecified

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

events.conditions

object[]

Optional; omitted means unspecified

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

events.effects

object[]

Optional; omitted means unspecified

Named reusable effects that change scenario state or disclosure.

assets

object[]

Optional; omitted means unspecified

Portable media manifest referenced by diagnostics and role outputs.

Behavior and validation

  • This specification defines the single .usim document. Examples are document fragments; Builder, Marketplace, Campus and Workspace exchange this same representation. Execution support is a separate capability check.
  • formatVersion identifies the core vocabulary; executionProfile identifies an executable capability contract. A consumer must compare required capabilities before execution. If executionProfile is omitted, a consumer still checks the behavioral capabilities declared by the populated fields.
  • 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 nonblank string of at most 128 characters. 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

142 records in this view
format
stringApplication field

Identifies the .usim scenario document used by all consumers.

  • Required when the containing object is present.
stringApplication field

Identifies the document format used for validation.

  • Required when the containing object is present.
stringApplication field

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

  • Required when the containing object is present.
objectApplication field

Declares required and optional execution capabilities. Consumers also inspect populated behavioral fields before running a document.

  • Optional; omitted values remain unspecified.
stringApplication field

Stable identifier for this entry. Keep it unchanged when editing its content.

  • Required when the containing object is present.
stringApplication field

The version for this entry. Omit optional information that has not been specified.

  • Required when the containing object is present.
arrayApplication field

Entries for required capabilities. An empty list means no entries have been authored.

  • Required when the containing object is present.
stringApplication field

The required capabilities for this entry. Omit optional information that has not been specified.

  • Required when the containing object is present.
arrayApplication field

Entries for optional capabilities. An empty list means no entries have been authored.

  • Required when the containing object is present.
stringApplication field

The optional capabilities for this entry. Omit optional information that has not been specified.

  • Required when the containing object is present.
objectApplication field

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.

  • Optional; omitted values remain unspecified.
arrayApplication field

Entries for vocabularies. An empty list means no entries have been authored.

  • Optional; omitted values remain unspecified.
objectApplication field

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.

  • Required when the containing object is present.
stringApplication field

Stable identifier for this entry. Keep it unchanged when editing its content.

  • Required when the containing object is present.
stringApplication field

The version for this entry. Omit optional information that has not been specified.

  • Required when the containing object is present.
valueApplication field

Select one of the declared kind alternatives; use the fields belonging to that alternative.

Allowed values

  • concept
  • value-type
  • unit
  • dimension
  • value-set
  • Required when the containing object is present.
stringApplication field

The sha256 for this entry. Omit optional information that has not been specified.

  • Required when the containing object is present.
stringApplication field

Identifier of an existing assets entry. Preserve the referenced entry when editing this field.

  • Optional; omitted values remain unspecified.
arrayApplication field

Entries for dependencies. An empty list means no entries have been authored.

  • Optional; omitted values remain unspecified.
objectApplication field

Pinned library content; digest is 64 lowercase hex characters. Floating latest dependencies are prohibited.

  • Required when the containing object is present.
stringApplication field

Stable identifier for this entry. Keep it unchanged when editing its content.

  • Required when the containing object is present.
stringApplication field

The Identifier for this entry. Omit optional information that has not been specified.

  • Required when the containing object is present.
integerApplication field

Numeric revision, at least 1. Do not infer an omitted value.

  • Required when the containing object is present.
stringApplication field

The sha256 for this entry. Omit optional information that has not been specified.

  • Required when the containing object is present.
objectApplication field

Structured composition details. Omitted optional values remain unspecified.

  • Optional; omitted values remain unspecified.
arrayApplication field

Entries for overrides. An empty list means no entries have been authored.

  • Required when the containing object is present.
objectApplication field

Explicit overrides against a resolved dependency. Paths must exist; object/array values replace in full. No inferred deep merge.

  • Required when the containing object is present.
stringApplication field

The Identifier for this entry. Omit optional information that has not been specified.

  • Required when the containing object is present.
stringApplication field

The path for this entry. Omit optional information that has not been specified.

  • Required when the containing object is present.
valueApplication field

Select one of the declared value alternatives; use the fields belonging to that alternative.

  • Required when the containing object is present.
objectApplication field

Structured outputs details. Omitted optional values remain unspecified.

  • Optional; omitted values remain unspecified.
arrayApplication field

Entries for views. An empty list means no entries have been authored.

  • Required when the containing object is present.
objectApplication field

Explicit content selection filtered by audience. Learner views exclude facilitator-only content even when named in includeIds.

  • Required when the containing object is present.
stringApplication field

Stable identifier for this entry. Keep it unchanged when editing its content.

  • Required when the containing object is present.
valueApplication field

Select one of the declared Audience alternatives; use the fields belonging to that alternative.

Allowed values

  • learner
  • facilitator
  • Required when the containing object is present.
valueApplication field

Select one of the declared kind alternatives; use the fields belonging to that alternative.

Allowed values

  • brief
  • guide
  • event-map
  • checklist
  • Required when the containing object is present.
arrayApplication field

Entries for include ids. An empty list means no entries have been authored.

  • Required when the containing object is present.
stringApplication field

Identifier of an existing * entry. Preserve the referenced entry when editing this field.

  • Required when the containing object is present.
arrayApplication field

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

  • Required when the containing object is present.
objectApplication field

One fictional patient and their authored presentation, history, examination, and observations.

  • Required when the containing object is present.
stringApplication field

Stable patient identifier used by observations, actions, and other scenario references.

  • Required when the containing object is present.
stringApplication field

The fictional patient's display name.

  • Required when the containing object is present.
arrayApplication field

Entries for Structured system references. An empty list means no entries have been authored.

  • Optional; omitted values remain unspecified.
objectApplication field

Groups symptom observations by authored system heading without duplicating their values.

  • Required when the containing object is present.
stringApplication field

The System for this entry. Omit optional information that has not been specified.

  • Required when the containing object is present.
valueApplication field

Non-natural airway requires a device reference; presence does not imply correct placement or function.

  • Optional; omitted values remain unspecified.
stringApplication field

The required literal value "natural".

  • Required when the containing object is present.
stringApplication field

Identifier of an existing resources entry. Preserve the referenced entry when editing this field.

  • Optional; omitted values remain unspecified.
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.
assets
arrayApplication field

Portable media manifest referenced by diagnostics and role outputs.

  • Optional; omitted values remain unspecified.
valueApplication field

Select one of the declared assets alternatives; use the fields belonging to that alternative.

  • Required when the containing object is present.
stringApplication field

Stable asset reference used by results and outputs.

  • Required when the containing object is present.
stringApplication field

Declared content type must match decoded asset type; unsupported active content is rejected.

  • Required when the containing object is present.
stringApplication field

Accessible description of the learner-visible content without hidden diagnostic explanation.

  • Required when the containing object is present.
stringApplication field

Reuse terms for this asset, with attribution in a separate field.

  • Required when the containing object is present.
stringApplication field

Creator and source credit.

  • Required when the containing object is present.
stringApplication field

The label for this entry. Omit optional information that has not been specified.

  • Optional; omitted values remain unspecified.
stringApplication field

Packaged accessible transcript; role filtering matches the original media.

  • Optional; omitted values remain unspecified.
stringApplication field

Path under assets/ within the package. Reject absolute paths, .. segments, symlinks, duplicate paths, and external fetches.

  • Optional; omitted values remain unspecified.
stringApplication field

Digest verified against bytes before use; integrity does not prove safety or authorship.

  • Optional; omitted values remain unspecified.
stringApplication field

The data url for this entry. Omit optional information that has not been specified.

  • Optional; omitted values remain unspecified.
stringApplication field

The uri for this entry. Omit optional information that has not been specified.

  • Optional; omitted values remain unspecified.
arrayApplication field

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

  • Optional; omitted values remain unspecified.
valueApplication field

Select one of the declared observations alternatives; use the fields belonging to that alternative.

  • Required when the containing object is present.
stringApplication field

Stable finding or measurement identity; a repeat collection creates a new observation ID.

  • Required when the containing object is present.
stringApplication field

Patient to whom the observation belongs.

  • Required when the containing object is present.
stringApplication field

Namespaced concept, such as usim:general-appearance; codes do not imply external terminology certification.

  • Required when the containing object is present.
valueApplication field

Separates reported experience, observed findings, and measured values.

Allowed values

  • symptom
  • finding
  • measurement
  • Required when the containing object is present.
numberApplication field

Time of authored assessment or acquisition, possibly before baseline.

  • Optional; omitted values remain unspecified.
numberApplication field

Earliest simulated time for release; disclosure conditions must also be satisfied.

  • Optional; omitted values remain unspecified.
stringApplication field

Method, location, or equipment used to obtain the finding.

  • Optional; omitted values remain unspecified.
valueApplication field

Select one of the declared Disclosure alternatives; use the fields belonging to that alternative.

  • Required when the containing object is present.
arrayApplication field

Authorized output audiences. UI hints do not replace output filtering.

  • Required when the containing object is present.
valueApplication field

Select one of the declared Audience alternatives; use the fields belonging to that alternative.

Allowed values

  • learner
  • facilitator
  • Required when the containing object is present.
valueApplication field

Initial reveals at baseline; other modes require an action, condition, or facilitator release.

Allowed values

  • initial
  • facilitator
  • Required when the containing object is present.
stringApplication field

Identifier of an existing resources entry. Preserve the referenced entry when editing this field.

  • Optional; omitted values remain unspecified.
stringApplication field

Reveal when the condition first becomes true; reject unrelated trigger fields.

  • Optional; omitted values remain unspecified.
stringApplication field

Identifies the patient actor, relative, or colleague supplying the history.

  • Optional; omitted values remain unspecified.
stringApplication field

Facilitator context on conflicting or incomplete history; visibility follows the observation's disclosure policy.

  • Optional; omitted values remain unspecified.
stringApplication field

On collection, snapshot this variable's current value into a new measurement; later trends do not rewrite past results.

  • Optional; omitted values remain unspecified.
objectApplication field

At least one bound or text description; numeric bounds require the observation's unit and low must not exceed high. Context describes the authored population/method.

  • Optional; omitted values remain unspecified.
stringApplication field

The text for this entry. Omit optional information that has not been specified.

  • Optional; omitted values remain unspecified.
stringApplication field

The unit for this entry. Omit optional information that has not been specified.

  • Optional; omitted values remain unspecified.
valueApplication field

Explicit authored flag, never inferred from a generic source default.

Allowed values

  • low
  • high
  • critical
  • none
  • not-interpreted
  • Optional; omitted values remain unspecified.
stringApplication field

Known requires a value. Other statuses prohibit a value rather than using zero or an empty string as a sentinel.

  • Required when the containing object is present.
numberApplication field

Type must match the registered concept. Qualitative findings can be text or explicit booleans.

  • Optional; omitted values remain unspecified.
stringApplication field

Fixed by the concept definition; no inferred conversions.

  • Optional; omitted values remain unspecified.
events
objectApplication field

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

  • Required when the containing object is present.
arrayApplication field

Entries for flags. An empty list means no entries have been authored.

  • Optional; omitted values remain unspecified.
objectApplication field

Concurrent facts such as ownership-agreed; flags coexist independently of the single active phase.

  • Required when the containing object is present.
stringApplication field

Stable identifier for this entry. Keep it unchanged when editing its content.

  • Required when the containing object is present.
booleanApplication field

Whether initial value applies. Omitted optional values remain unspecified.

  • Required when the containing object is present.
arrayApplication field

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

  • Optional; omitted values remain unspecified.
objectApplication field

All predicates must be true; empty all is explicitly true. No recursive or executable expression text.

  • Required when the containing object is present.
stringApplication field

Stable identifier for this entry. Keep it unchanged when editing its content.

  • Required when the containing object is present.
arrayApplication field

Entries for all. An empty list means no entries have been authored.

  • Required when the containing object is present.
valueApplication field

Operand types must match the target. Boolean flags support only eq/ne; numeric comparisons use the variable's declared unit.

  • Required when the containing object is present.
stringApplication field

The Identifier for this entry. Omit optional information that has not been specified.

  • Required when the containing object is present.
valueApplication field

Select one of the declared operator alternatives; use the fields belonging to that alternative.

Allowed values

  • eq
  • ne
  • lt
  • lte
  • gt
  • gte
  • Required when the containing object is present.
arrayApplication field

Action completes through AI interpretation of learner intent against its completion criterion, configured resource interactions, or explicit learner/facilitator confirmation. Scheduled runs once after its delay from the first source-state entry, remaining pending across later states unless canceled or the scenario concludes. Omitted means action.

  • Optional; omitted values remain unspecified.
valueApplication field

Select one of the declared schedules alternatives; use the fields belonging to that alternative.

  • Required when the containing object is present.
stringApplication field

Named event allows explicit cancellation.

  • Required when the containing object is present.
stringApplication field

The label for this entry. Omit optional information that has not been specified.

  • Optional; omitted values remain unspecified.
stringApplication field

The description for this entry. Omit optional information that has not been specified.

  • Optional; omitted values remain unspecified.
stringApplication field

Identifier of an existing resources entry. Preserve the referenced entry when editing this field.

  • Optional; omitted values remain unspecified.
arrayApplication field

For a scheduled transition, completion of any selected action cancels this timer for the rest of the run, including after state re-entry. The action may stay in its current state. Selected unfinished actions stay available while this timer is pending once their source event has occurred, even after another event becomes current. Future-source actions remain unavailable. Completing the action enters its destination; a self-loop stays in the current event. Conclusion states do not allow recovery. Cancellation does not undo a deterioration that already occurred. The timer starts when the source event first occurs and remains pending when other events occur. Ending the scenario cancels pending timers.

  • Optional; omitted values remain unspecified.
stringApplication field

A learner action whose completion prevents this scheduled transition from firing.

  • Required when the containing object is present.
numberApplication field

Simulated seconds after the declared schedule anchor. State-entry schedules follow onAnchorStateExit and cancellation references; action timing is separate.

  • Required when the containing object is present.
stringApplication field

Evaluate when due. False skips that occurrence; it does not poll until true.

  • Optional; omitted values remain unspecified.
integerApplication field

Explicit ordering for simultaneous events. Equal priority uses schedule ID lexical order.

  • Required when the containing object is present.
arrayApplication field

Operations applied atomically if the due event and transition guards are valid.

  • Required when the containing object is present.
stringApplication field

Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field.

  • Required when the containing object is present.
stringApplication field

Optional phase transition; omit for a result or actor cue that does not move the main phase.

  • Optional; omitted values remain unspecified.
objectApplication field

Count includes the initial occurrence. Finite repetition prevents unbounded schedules.

  • Optional; omitted values remain unspecified.
integerApplication field

Numeric count, at least 1. Do not infer an omitted value.

  • Required when the containing object is present.
objectApplication field

State/action anchors require the corresponding ID. Scenario-start prohibits refId.

  • Required when the containing object is present.
stringApplication field

The required literal value "scenario-start".

  • Required when the containing object is present.
valueApplication field

Cancel removes pending occurrences from that entry; re-entry creates a new schedule instance.

Allowed values

  • cancel
  • continue
  • Optional; omitted values remain unspecified.
arrayApplication field

Named reusable effects that change scenario state or disclosure.

  • Optional; omitted values remain unspecified.
valueApplication field

One typed effect with a stable identifier and explicit target.

  • Required when the containing object is present.
stringApplication field

Stable effect identifier referenced by states, actions, or schedules.

  • Required when the containing object is present.
stringApplication field

The operation performed by this effect.

  • Required when the containing object is present.
stringApplication field

The identifier of the variable or other entity changed by this effect.

  • Optional; omitted values remain unspecified.
numberApplication field

The resulting value, expressed in the target variable’s declared unit.

  • Optional; omitted values remain unspecified.
stringApplication field

The target variable’s declared unit; effects cannot silently convert units.

  • Optional; omitted values remain unspecified.
numberApplication field

Duration of a linear authored change from current value to target. Instant changes use set-variable.

  • Optional; omitted values remain unspecified.
stringApplication field

The format supports one explicit interpolation rule; no inferred dose-response or disease model.

  • Optional; omitted values remain unspecified.
numberApplication field

Numeric percent, at least -100, at most 1000. Do not infer an omitted value.

  • Optional; omitted values remain unspecified.
stringApplication field

Identifier of an existing patients entry. Preserve the referenced entry when editing this field.

  • Optional; omitted values remain unspecified.
stringApplication field

The model id for this entry. Omit optional information that has not been specified.

  • Optional; omitted values remain unspecified.
valueApplication field

Select one of the declared channel alternatives; use the fields belonging to that alternative.

Allowed values

  • ecg
  • bloodPressure
  • spo2
  • respiration
  • temperature
  • capnography
  • arterialPressure
  • Optional; omitted values remain unspecified.