{
  "title": "u-sim field catalog",
  "catalogVersion": 1,
  "scope": "Field definitions generated from the canonical .usim schema. Array entries use * in documentation paths.",
  "fields": [
    {
      "path": "format",
      "label": "format",
      "type": "string",
      "group": "scenario-model",
      "description": "Identifies the .usim scenario document used by all consumers.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "formatVersion",
      "label": "formatVersion",
      "type": "string",
      "group": "scenario-model",
      "description": "Identifies the document format used for validation.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "scenarioId",
      "label": "Identifier",
      "type": "string",
      "group": "scenario-model",
      "description": "Stable content identity. Publication revisions and delivery instances remain separate records.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "executionProfile",
      "label": "executionProfile",
      "type": "object",
      "group": "scenario-model",
      "description": "Declares required and optional execution capabilities. Consumers also inspect populated behavioral fields before running a document.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "executionProfile.id",
      "label": "id",
      "type": "string",
      "group": "scenario-model",
      "description": "Stable identifier for this entry. Keep it unchanged when editing its content.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "executionProfile.version",
      "label": "version",
      "type": "string",
      "group": "scenario-model",
      "description": "The version for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "executionProfile.requiredCapabilities",
      "label": "requiredCapabilities",
      "type": "array",
      "group": "scenario-model",
      "description": "Entries for required capabilities. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "executionProfile.requiredCapabilities.*",
      "label": "*",
      "type": "string",
      "group": "scenario-model",
      "description": "The required capabilities for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "executionProfile.optionalCapabilities",
      "label": "optionalCapabilities",
      "type": "array",
      "group": "scenario-model",
      "description": "Entries for optional capabilities. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "executionProfile.optionalCapabilities.*",
      "label": "*",
      "type": "string",
      "group": "scenario-model",
      "description": "The optional capabilities for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "extensions",
      "label": "extensions",
      "type": "object",
      "group": "scenario-model",
      "description": "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.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "vocabularies",
      "label": "vocabularies",
      "type": "array",
      "group": "scenario-model",
      "description": "Entries for vocabularies. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "vocabularies.*",
      "label": "*",
      "type": "object",
      "group": "scenario-model",
      "description": "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.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "vocabularies.*.id",
      "label": "id",
      "type": "string",
      "group": "scenario-model",
      "description": "Stable identifier for this entry. Keep it unchanged when editing its content.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "vocabularies.*.version",
      "label": "version",
      "type": "string",
      "group": "scenario-model",
      "description": "The version for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "vocabularies.*.kind",
      "label": "kind",
      "type": "value",
      "group": "scenario-model",
      "description": "Select one of the declared kind alternatives; use the fields belonging to that alternative.",
      "defaultValue": null,
      "options": [
        "concept",
        "value-type",
        "unit",
        "dimension",
        "value-set"
      ],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "vocabularies.*.sha256",
      "label": "sha256",
      "type": "string",
      "group": "scenario-model",
      "description": "The sha256 for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "vocabularies.*.assetId",
      "label": "Identifier",
      "type": "string",
      "group": "scenario-model",
      "description": "Identifier of an existing assets entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "dependencies",
      "label": "dependencies",
      "type": "array",
      "group": "scenario-model",
      "description": "Entries for dependencies. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "dependencies.*",
      "label": "*",
      "type": "object",
      "group": "scenario-model",
      "description": "Pinned library content; digest is 64 lowercase hex characters. Floating latest dependencies are prohibited.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "dependencies.*.id",
      "label": "Identifier",
      "type": "string",
      "group": "scenario-model",
      "description": "Stable identifier for this entry. Keep it unchanged when editing its content.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "dependencies.*.scenarioId",
      "label": "Identifier",
      "type": "string",
      "group": "scenario-model",
      "description": "The Identifier for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "dependencies.*.revision",
      "label": "revision",
      "type": "integer",
      "group": "scenario-model",
      "description": "Numeric revision, at least 1. Do not infer an omitted value.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "dependencies.*.sha256",
      "label": "sha256",
      "type": "string",
      "group": "scenario-model",
      "description": "The sha256 for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "composition",
      "label": "composition",
      "type": "object",
      "group": "scenario-model",
      "description": "Structured composition details. Omitted optional values remain unspecified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "composition.overrides",
      "label": "overrides",
      "type": "array",
      "group": "scenario-model",
      "description": "Entries for overrides. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "composition.overrides.*",
      "label": "*",
      "type": "object",
      "group": "scenario-model",
      "description": "Explicit overrides against a resolved dependency. Paths must exist; object/array values replace in full. No inferred deep merge.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "composition.overrides.*.targetId",
      "label": "Identifier",
      "type": "string",
      "group": "scenario-model",
      "description": "The Identifier for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "composition.overrides.*.path",
      "label": "path",
      "type": "string",
      "group": "scenario-model",
      "description": "The path for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "composition.overrides.*.value",
      "label": "value",
      "type": "value",
      "group": "scenario-model",
      "description": "Select one of the declared value alternatives; use the fields belonging to that alternative.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "outputs",
      "label": "outputs",
      "type": "object",
      "group": "scenario-model",
      "description": "Structured outputs details. Omitted optional values remain unspecified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "outputs.views",
      "label": "views",
      "type": "array",
      "group": "scenario-model",
      "description": "Entries for views. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "outputs.views.*",
      "label": "*",
      "type": "object",
      "group": "scenario-model",
      "description": "Explicit content selection filtered by audience. Learner views exclude facilitator-only content even when named in includeIds.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "outputs.views.*.id",
      "label": "Identifier",
      "type": "string",
      "group": "scenario-model",
      "description": "Stable identifier for this entry. Keep it unchanged when editing its content.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "outputs.views.*.audience",
      "label": "Audience",
      "type": "value",
      "group": "scenario-model",
      "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative.",
      "defaultValue": null,
      "options": [
        "learner",
        "facilitator"
      ],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "outputs.views.*.kind",
      "label": "kind",
      "type": "value",
      "group": "scenario-model",
      "description": "Select one of the declared kind alternatives; use the fields belonging to that alternative.",
      "defaultValue": null,
      "options": [
        "brief",
        "guide",
        "event-map",
        "checklist"
      ],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "outputs.views.*.includeIds",
      "label": "includeIds",
      "type": "array",
      "group": "scenario-model",
      "description": "Entries for include ids. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "outputs.views.*.includeIds.*",
      "label": "Identifier",
      "type": "string",
      "group": "scenario-model",
      "description": "Identifier of an existing * entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "metadata",
      "label": "metadata",
      "type": "object",
      "group": "metadata",
      "description": "Case identification, authorship, and the teaching context used to find and select this scenario.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.title",
      "label": "Title",
      "type": "string",
      "group": "metadata",
      "description": "The internal case title used by authors. Campus uses the separate learner title.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.summary",
      "label": "Description",
      "type": "string",
      "group": "metadata",
      "description": "The internal scenario premise, scope, and intended learning activity. This summary is not shown in Campus.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.contributors",
      "label": "Author",
      "type": "array",
      "group": "metadata",
      "description": "People and organizations credited for authorship, review, or other contributions.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.contributors.*",
      "label": "*",
      "type": "object",
      "group": "metadata",
      "description": "A named contributor with stable identity and credited roles.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.contributors.*.id",
      "label": "Identifier",
      "type": "string",
      "group": "metadata",
      "description": "Stable contributor identifier used by review attribution.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.contributors.*.name",
      "label": "Name",
      "type": "string",
      "group": "metadata",
      "description": "The person or team credited with creating this scenario.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.contributors.*.roles",
      "label": "Contribution roles",
      "type": "array",
      "group": "metadata",
      "description": "The roles this contributor performed for this content.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.contributors.*.roles.*",
      "label": "Role",
      "type": "string",
      "group": "metadata",
      "description": "One credited contribution role.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.contributors.*.affiliation",
      "label": "Affiliation",
      "type": "string",
      "group": "metadata",
      "description": "The contributor’s organization or institutional affiliation.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.revision",
      "label": "Content revision",
      "type": "integer",
      "group": "metadata",
      "description": "The authored content revision, independent of a storage revision identifier.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.license",
      "label": "License",
      "type": "object",
      "group": "metadata",
      "description": "The terms under which this scenario may be reused.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.license.identifier",
      "label": "License",
      "type": "string",
      "group": "metadata",
      "description": "The license identifier or explicit rights statement. Suggested reuse licenses are advisory; preserve custom terms.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.license.textAssetId",
      "label": "Identifier",
      "type": "string",
      "group": "metadata",
      "description": "An optional asset containing the complete license text.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.review",
      "label": "Review status and evidence",
      "type": "object",
      "group": "metadata",
      "description": "Clinical review status, attribution, date, and supporting sources.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.review.status",
      "label": "Review status",
      "type": "string",
      "group": "metadata",
      "description": "Review state stored as draft, reviewed, or needs-review. Builder displays Draft, Reviewed, and Needs review.",
      "defaultValue": null,
      "options": [
        "draft",
        "reviewed",
        "needs-review"
      ],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.review.reviewedAt",
      "label": "Reviewed at",
      "type": "string",
      "group": "metadata",
      "description": "The date and time the recorded review was completed. Builder displays local date and time and stores the selected instant as a UTC ISO 8601 timestamp; omission means unspecified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.review.reviewerIds",
      "label": "Reviewers",
      "type": "array",
      "group": "metadata",
      "description": "Contributor identifiers for the reviewers.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.review.reviewerIds.*",
      "label": "Identifier",
      "type": "string",
      "group": "metadata",
      "description": "A contributor credited with reviewing this revision.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.review.sourceIds",
      "label": "Review sources",
      "type": "array",
      "group": "metadata",
      "description": "Stable metadata.sources IDs selected as evidence for the recorded review. Citation edits and source reordering preserve these links.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.review.sourceIds.*",
      "label": "Identifier",
      "type": "string",
      "group": "metadata",
      "description": "A source cited by this review.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.sources",
      "label": "Sources",
      "type": "array",
      "group": "metadata",
      "description": "Citations supporting the scenario and its clinical content.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.sources.*",
      "label": "Source",
      "type": "object",
      "group": "metadata",
      "description": "A source citation with stable identity and optional web location.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.sources.*.id",
      "label": "Identifier",
      "type": "string",
      "group": "metadata",
      "description": "Stable source identifier used by review references.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.sources.*.citation",
      "label": "Citation",
      "type": "string",
      "group": "metadata",
      "description": "The complete bibliographic citation or source attribution.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.sources.*.url",
      "label": "Source URL",
      "type": "string",
      "group": "metadata",
      "description": "An HTTPS location where this source can be found.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.sources.*.accessedAt",
      "label": "Accessed at",
      "type": "string",
      "group": "metadata",
      "description": "The date the linked source was accessed.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.diagnosis",
      "label": "Diagnosis or case theme",
      "type": "string",
      "group": "metadata",
      "description": "The main diagnosis or case theme that guides the scenario.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.specialty",
      "label": "Specialty",
      "type": "string",
      "group": "metadata",
      "description": "The clinical specialty or specialties relevant to this scenario.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.level",
      "label": "Learner level",
      "type": "string",
      "group": "metadata",
      "description": "The intended learner level and experience.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.durationMinutes",
      "label": "Suggested duration · minutes",
      "type": "number",
      "group": "metadata",
      "description": "The suggested scenario duration in minutes; this does not control the simulation clock.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.learnerTitle",
      "label": "Learner title",
      "type": "string",
      "group": "metadata",
      "description": "Spoiler-free title shown on Campus cards and in the scenario preview. For example: Penetrating chest injury. Copy chief complaint copies the first patient's complaint once; you can edit it without changing patient history. If omitted or blank, Campus shows Practice scenario.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.learnerDescription",
      "label": "Learner description",
      "type": "string",
      "group": "metadata",
      "description": "Brief introduction shown to learners before starting. Include only what they should know initially; omit diagnoses, expected actions, outcomes, and facilitator guidance. For example: A patient arrives after a penetrating injury to the right chest. If omitted, Campus shows no description.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.coverPhoto",
      "label": "Cover photo",
      "type": "object",
      "group": "metadata",
      "description": "Optional learner-facing cover photo for Campus cards and scenario preview, separate from the patient portrait. Upload PNG, JPEG, or WebP; avoid images that reveal a diagnosis or expected action. Embedded bytes travel with the .usim file.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.coverPhoto.dataUrl",
      "label": "Cover photo",
      "type": "string",
      "group": "metadata",
      "description": "Embedded PNG, JPEG, or WebP data URL populated by the cover photo upload control.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "metadata.coverPhoto.description",
      "label": "Photo description",
      "type": "string",
      "group": "metadata",
      "description": "Accessible description of the cover photo for learners who cannot see it. Describe visible content without revealing the teaching point.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "patients",
      "label": "Patients",
      "type": "array",
      "group": "scenario-model",
      "description": "The fictional patient's presentation, history, examination, and starting observations.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*",
      "label": "*",
      "type": "object",
      "group": "scenario-model",
      "description": "One fictional patient and their authored presentation, history, examination, and observations.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.id",
      "label": "Identifier",
      "type": "string",
      "group": "scenario-model",
      "description": "Stable patient identifier used by observations, actions, and other scenario references.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.name",
      "label": "Patient name",
      "type": "string",
      "group": "scenario-model",
      "description": "The fictional patient's display name.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.preferredName",
      "label": "Preferred name",
      "type": "string",
      "group": "demographics",
      "description": "The name the patient asks others to use, when different from their display name. Omitted means unspecified. Builder displays this field in Communication while retaining its patient-level storage path.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.baselineFunction",
      "label": "Baseline function",
      "type": "string",
      "group": "demographics",
      "description": "Usual mobility, cognition, self-care, and support. Distinguish baseline function from acute changes. Builder displays this field in expanded Demographics while retaining its patient-level storage path.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.communication",
      "label": "Communication",
      "type": "object",
      "group": "demographics",
      "description": "Authored language, communication methods, interpreter needs, and accessibility supports. Do not infer these from identity or appearance. Builder places preferred name first, then preferred language and communication method together, followed by interpreter needs and communication supports. Rows stack at narrow widths.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.communication.preferredLanguage",
      "label": "Preferred language",
      "type": "string",
      "group": "demographics",
      "description": "The patient's preferred language for this encounter. Do not infer fluency from ethnicity or name.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.communication.interpreterNeeds",
      "label": "Interpreter needs",
      "type": "string",
      "group": "demographics",
      "description": "Whether and how a qualified interpreter is needed, including spoken or signed language. Omitted means unspecified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.communication.method",
      "label": "Communication method",
      "type": "string",
      "group": "demographics",
      "description": "How the patient communicates, such as speech, ASL, writing, or an augmentative device.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.communication.supports",
      "label": "Communication supports",
      "type": "string",
      "group": "demographics",
      "description": "Specific supports and interaction preferences, such as hearing aids, facing the patient, or caregiver participation.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.demographics",
      "label": "Demographics",
      "type": "object",
      "group": "demographics",
      "description": "Optional age, gender, pronouns, sexual orientation, sex assigned at birth, height, and weight. Unspecified fields remain unknown; identity does not determine clinical behavior.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.demographics.age",
      "label": "Age",
      "type": "object",
      "group": "demographics",
      "description": "Patient age with an explicit unit. Retain days or months for young infants.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.demographics.age.value",
      "label": "Value",
      "type": "number",
      "group": "demographics",
      "description": "The authored age in the selected unit.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.demographics.age.unit",
      "label": "Unit",
      "type": "value",
      "group": "demographics",
      "description": "Age unit; preserve days or months when appropriate.",
      "defaultValue": null,
      "options": [
        "days",
        "months",
        "years"
      ],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.demographics.weight",
      "label": "Weight",
      "type": "object",
      "group": "demographics",
      "description": "Patient weight, stored in kilograms. The editor can also display pounds.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.demographics.weight.value",
      "label": "Value",
      "type": "number",
      "group": "demographics",
      "description": "Authored weight in kilograms.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.demographics.weight.unit",
      "label": "Unit",
      "type": "string",
      "group": "demographics",
      "description": "Canonical mass unit.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.demographics.height",
      "label": "Height",
      "type": "object",
      "group": "demographics",
      "description": "Patient height, stored in centimeters. The editor can also display feet and inches.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.demographics.height.value",
      "label": "Value",
      "type": "number",
      "group": "demographics",
      "description": "Authored height in centimeters.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.demographics.height.unit",
      "label": "Unit",
      "type": "string",
      "group": "demographics",
      "description": "Canonical length unit.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.demographics.gender",
      "label": "Gender",
      "type": "string",
      "group": "demographics",
      "description": "The patient's authored gender description.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.demographics.pronouns",
      "label": "Pronouns",
      "type": "string",
      "group": "demographics",
      "description": "The patient's authored pronouns. Never infer these from name, appearance, gender, or sex assigned at birth.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.demographics.sexualOrientation",
      "label": "Sexual orientation",
      "type": "string",
      "group": "demographics",
      "description": "Optional self-described sexual orientation. This does not specify sexual practices, anatomy, relationships, or pregnancy potential.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.demographics.sexAssignedAtBirth",
      "label": "Sex assigned at birth",
      "type": "string",
      "group": "demographics",
      "description": "Optional authored sex assigned at birth, separate from gender. Does not establish current anatomy, reproductive history, or treatment.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.demographics.heightUnit",
      "label": "Height display unit",
      "type": "string",
      "group": "demographics",
      "description": "Preferred height display unit in the scenario editor; the measurement remains stored in centimeters.",
      "defaultValue": null,
      "options": [
        "cm",
        "in",
        "ft-in"
      ],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.demographics.weightUnit",
      "label": "Weight display unit",
      "type": "string",
      "group": "demographics",
      "description": "Preferred weight display unit in the scenario editor; the measurement remains stored in kilograms.",
      "defaultValue": null,
      "options": [
        "kg",
        "lb"
      ],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.history",
      "label": "History",
      "type": "array",
      "group": "history",
      "description": "The history available about this patient, including symptoms, background, medications, and allergies.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.history.*",
      "label": "*",
      "type": "value",
      "group": "history",
      "description": "Separate entries for chief-complaint, present-illness, medical, surgical, medication, allergy, family, and social history.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.history.*.id",
      "label": "Identifier",
      "type": "string",
      "group": "history",
      "description": "Stable identifier for this entry. Keep it unchanged when editing its content.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.history.*.content",
      "label": "Content",
      "type": "string",
      "group": "history",
      "description": "The Content for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.history.*.disclosure",
      "label": "Disclosure",
      "type": "value",
      "group": "history",
      "description": "Select one of the declared Disclosure alternatives; use the fields belonging to that alternative.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.history.*.disclosure.audience",
      "label": "Audience",
      "type": "array",
      "group": "history",
      "description": "Authorized output audiences. UI hints do not replace output filtering.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.history.*.disclosure.audience.*",
      "label": "Audience",
      "type": "value",
      "group": "history",
      "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative.",
      "defaultValue": null,
      "options": [
        "learner",
        "facilitator"
      ],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.history.*.disclosure.mode",
      "label": "Mode",
      "type": "value",
      "group": "history",
      "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release.",
      "defaultValue": null,
      "options": [
        "initial",
        "facilitator"
      ],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.history.*.disclosure.resourceId",
      "label": "Identifier",
      "type": "string",
      "group": "history",
      "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.history.*.disclosure.actionId",
      "label": "Identifier",
      "type": "string",
      "group": "history",
      "description": "Successful completion of this action reveals the entry.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.history.*.disclosure.conditionId",
      "label": "Identifier",
      "type": "string",
      "group": "history",
      "description": "Reveal when the condition first becomes true; reject unrelated trigger fields.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.history.*.occurredAtSeconds",
      "label": "Occurred at seconds",
      "type": "number",
      "group": "history",
      "description": "Time relative to scenario start; negative values describe pre-arrival events.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.history.*.category",
      "label": "Category",
      "type": "value",
      "group": "history",
      "description": "Select one of the declared Category alternatives; use the fields belonging to that alternative.",
      "defaultValue": null,
      "options": [
        "chief-complaint",
        "present-illness",
        "medical",
        "surgical",
        "medication",
        "family",
        "social"
      ],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.history.*.allergy",
      "label": "Allergy",
      "type": "object",
      "group": "history",
      "description": "Structured allergy detail for category allergy only. Substance identifies the authored allergen; reaction describes the manifestation; severity describes that reaction, not future risk. Omitted reaction or severity remains unspecified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.history.*.allergy.substance",
      "label": "Substance",
      "type": "string",
      "group": "history",
      "description": "The Substance for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.history.*.allergy.reaction",
      "label": "Reaction",
      "type": "string",
      "group": "history",
      "description": "The Reaction for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.history.*.allergy.severity",
      "label": "Severity",
      "type": "value",
      "group": "history",
      "description": "Select one of the declared Severity alternatives; use the fields belonging to that alternative.",
      "defaultValue": null,
      "options": [
        "mild",
        "moderate",
        "severe",
        "unknown"
      ],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.reviewOfSystems",
      "label": "Structured system references",
      "type": "array",
      "group": "scenario-model",
      "description": "Entries for Structured system references. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.reviewOfSystems.*",
      "label": "*",
      "type": "object",
      "group": "scenario-model",
      "description": "Groups symptom observations by authored system heading without duplicating their values.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.reviewOfSystems.*.system",
      "label": "System",
      "type": "string",
      "group": "scenario-model",
      "description": "The System for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.reviewOfSystems.*.observationIds",
      "label": "Observation ids",
      "type": "array",
      "group": "scenario-model",
      "description": "Entries for Observation ids. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.reviewOfSystems.*.observationIds.*",
      "label": "Identifier",
      "type": "string",
      "group": "scenario-model",
      "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.variables",
      "label": "Physiologic variables",
      "type": "array",
      "group": "vital-signs",
      "description": "Numeric physiologic state with explicit concepts and units; observations describe when values are measured or disclosed.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.variables.*",
      "label": "Physiologic variable",
      "type": "object",
      "group": "vital-signs",
      "description": "One numeric physiologic variable belonging to this patient.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.variables.*.id",
      "label": "Identifier",
      "type": "string",
      "group": "vital-signs",
      "description": "Stable variable identifier used by effects and observations.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.variables.*.concept",
      "label": "Concept",
      "type": "string",
      "group": "vital-signs",
      "description": "The meaning of the variable, such as usim:hr for heart rate.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.variables.*.value",
      "label": "Initial value",
      "type": "number",
      "group": "vital-signs",
      "description": "The initial numeric value in the declared unit.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.variables.*.unit",
      "label": "Unit",
      "type": "string",
      "group": "vital-signs",
      "description": "The unit of this value; core concepts use the standard unit defined by the specification.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.monitor",
      "label": "Monitor",
      "type": "object",
      "group": "ecg",
      "description": "The monitor configuration used to present patient observations.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.monitor.rhythm",
      "label": "Monitor rhythm",
      "type": "string",
      "group": "ecg",
      "description": "The ECG rhythm displayed on the monitor. Select the rhythm separately from whether the patient has a palpable pulse.",
      "defaultValue": null,
      "options": [
        "sinus",
        "sinus_tachycardia",
        "sinus_bradycardia",
        "atrial_fibrillation",
        "atrial_flutter",
        "svt",
        "ventricular_tachycardia",
        "torsades",
        "ventricular_fibrillation",
        "asystole",
        "av_block_1",
        "av_block_2_mobitz_1",
        "av_block_2_mobitz_2",
        "av_block_3",
        "junctional",
        "ventricular_paced"
      ],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.monitor.pulsePresent",
      "label": "Pulse present",
      "type": "boolean",
      "group": "ecg",
      "description": "Whether a palpable pulse is present. Use this to distinguish perfusing and pulseless presentations of the displayed rhythm.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.monitor.connections",
      "label": "Monitor connections",
      "type": "object",
      "group": "ecg",
      "description": "Connected channels expose available measurements without changing physiology. An explicit empty patient connection map starts disconnected. Omitted event channels inherit their preceding connection. Omitting the patient connection map makes available channels connected.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.monitor.connections.ecg",
      "label": "ECG",
      "type": "boolean",
      "group": "ecg",
      "description": "ECG: connected exposes the available measurement; disconnected hides it without changing physiology.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.monitor.connections.bloodPressure",
      "label": "Blood pressure cuff",
      "type": "boolean",
      "group": "ecg",
      "description": "Blood pressure cuff: connected exposes the available measurement; disconnected hides it without changing physiology.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.monitor.connections.spo2",
      "label": "Pulse oximetry",
      "type": "boolean",
      "group": "ecg",
      "description": "Pulse oximetry: connected exposes the available measurement; disconnected hides it without changing physiology.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.monitor.connections.respiration",
      "label": "Respiratory monitoring",
      "type": "boolean",
      "group": "ecg",
      "description": "Respiratory monitoring: connected exposes the available measurement; disconnected hides it without changing physiology.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.monitor.connections.temperature",
      "label": "Temperature probe",
      "type": "boolean",
      "group": "ecg",
      "description": "Temperature probe: connected exposes the available measurement; disconnected hides it without changing physiology.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.monitor.connections.capnography",
      "label": "Capnography",
      "type": "boolean",
      "group": "ecg",
      "description": "Capnography: connected exposes the available measurement; disconnected hides it without changing physiology.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.monitor.connections.arterialPressure",
      "label": "Arterial pressure",
      "type": "boolean",
      "group": "ecg",
      "description": "Arterial pressure: connected exposes the available measurement; disconnected hides it without changing physiology.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.airway",
      "label": "Airway support",
      "type": "value",
      "group": "scenario-model",
      "description": "Non-natural airway requires a device reference; presence does not imply correct placement or function.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.airway.status",
      "label": "Status",
      "type": "string",
      "group": "scenario-model",
      "description": "The required literal value \"natural\".",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.airway.deviceId",
      "label": "Identifier",
      "type": "string",
      "group": "scenario-model",
      "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.context",
      "label": "Patient context",
      "type": "string",
      "group": "scenario-model",
      "description": "The patient's opening situation and the context available at the start of the scenario.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.photo",
      "label": "Patient photo",
      "type": "object",
      "group": "scenario-model",
      "description": "An optional embedded patient photo that travels with the scenario. Upload a PNG, JPEG, or WebP image.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.photo.dataUrl",
      "label": "Photo",
      "type": "string",
      "group": "scenario-model",
      "description": "The patient photo encoded as a data URL. Use the photo upload control to populate it.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "patients.*.photo.description",
      "label": "Photo description",
      "type": "string",
      "group": "scenario-model",
      "description": "Describe the patient's appearance for readers who cannot see the photo.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "assets",
      "label": "assets",
      "type": "array",
      "group": "scenario-model",
      "description": "Portable media manifest referenced by diagnostics and role outputs.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "assets.*",
      "label": "*",
      "type": "value",
      "group": "scenario-model",
      "description": "Select one of the declared assets alternatives; use the fields belonging to that alternative.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "assets.*.id",
      "label": "Identifier",
      "type": "string",
      "group": "scenario-model",
      "description": "Stable asset reference used by results and outputs.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "assets.*.mediaType",
      "label": "mediaType",
      "type": "string",
      "group": "scenario-model",
      "description": "Declared content type must match decoded asset type; unsupported active content is rejected.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "assets.*.description",
      "label": "description",
      "type": "string",
      "group": "scenario-model",
      "description": "Accessible description of the learner-visible content without hidden diagnostic explanation.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "assets.*.license",
      "label": "license",
      "type": "string",
      "group": "scenario-model",
      "description": "Reuse terms for this asset, with attribution in a separate field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "assets.*.attribution",
      "label": "attribution",
      "type": "string",
      "group": "scenario-model",
      "description": "Creator and source credit.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "assets.*.label",
      "label": "label",
      "type": "string",
      "group": "scenario-model",
      "description": "The label for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "assets.*.transcriptAssetId",
      "label": "Identifier",
      "type": "string",
      "group": "scenario-model",
      "description": "Packaged accessible transcript; role filtering matches the original media.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "assets.*.path",
      "label": "path",
      "type": "string",
      "group": "scenario-model",
      "description": "Path under assets/ within the package. Reject absolute paths, .. segments, symlinks, duplicate paths, and external fetches.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "assets.*.sha256",
      "label": "sha256",
      "type": "string",
      "group": "scenario-model",
      "description": "Digest verified against bytes before use; integrity does not prove safety or authorship.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "assets.*.dataUrl",
      "label": "dataUrl",
      "type": "string",
      "group": "scenario-model",
      "description": "The data url for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "assets.*.uri",
      "label": "uri",
      "type": "string",
      "group": "scenario-model",
      "description": "The uri for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "observations",
      "label": "Observations",
      "type": "array",
      "group": "scenario-model",
      "description": "Authored symptoms, findings, and measurements with provenance, visibility, and availability.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "observations.*",
      "label": "*",
      "type": "value",
      "group": "scenario-model",
      "description": "Select one of the declared observations alternatives; use the fields belonging to that alternative.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "observations.*.id",
      "label": "Identifier",
      "type": "string",
      "group": "scenario-model",
      "description": "Stable finding or measurement identity; a repeat collection creates a new observation ID.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "observations.*.patientId",
      "label": "Identifier",
      "type": "string",
      "group": "scenario-model",
      "description": "Patient to whom the observation belongs.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "observations.*.code",
      "label": "code",
      "type": "string",
      "group": "scenario-model",
      "description": "Namespaced concept, such as usim:general-appearance; codes do not imply external terminology certification.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "observations.*.kind",
      "label": "kind",
      "type": "value",
      "group": "scenario-model",
      "description": "Separates reported experience, observed findings, and measured values.",
      "defaultValue": null,
      "options": [
        "symptom",
        "finding",
        "measurement"
      ],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "observations.*.collectedAtSeconds",
      "label": "collectedAtSeconds",
      "type": "number",
      "group": "scenario-model",
      "description": "Time of authored assessment or acquisition, possibly before baseline.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "observations.*.availableAtSeconds",
      "label": "availableAtSeconds",
      "type": "number",
      "group": "scenario-model",
      "description": "Earliest simulated time for release; disclosure conditions must also be satisfied.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "observations.*.method",
      "label": "method",
      "type": "string",
      "group": "scenario-model",
      "description": "Method, location, or equipment used to obtain the finding.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "observations.*.disclosure",
      "label": "Disclosure",
      "type": "value",
      "group": "scenario-model",
      "description": "Select one of the declared Disclosure alternatives; use the fields belonging to that alternative.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "observations.*.disclosure.audience",
      "label": "Audience",
      "type": "array",
      "group": "scenario-model",
      "description": "Authorized output audiences. UI hints do not replace output filtering.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "observations.*.disclosure.audience.*",
      "label": "Audience",
      "type": "value",
      "group": "scenario-model",
      "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative.",
      "defaultValue": null,
      "options": [
        "learner",
        "facilitator"
      ],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "observations.*.disclosure.mode",
      "label": "Mode",
      "type": "value",
      "group": "scenario-model",
      "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release.",
      "defaultValue": null,
      "options": [
        "initial",
        "facilitator"
      ],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "observations.*.disclosure.resourceId",
      "label": "Identifier",
      "type": "string",
      "group": "scenario-model",
      "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "observations.*.disclosure.actionId",
      "label": "Identifier",
      "type": "string",
      "group": "scenario-model",
      "description": "Successful completion of this action reveals the entry.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "observations.*.disclosure.conditionId",
      "label": "Identifier",
      "type": "string",
      "group": "scenario-model",
      "description": "Reveal when the condition first becomes true; reject unrelated trigger fields.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "observations.*.reportedByActorId",
      "label": "Identifier",
      "type": "string",
      "group": "scenario-model",
      "description": "Identifies the patient actor, relative, or colleague supplying the history.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "observations.*.reliabilityNote",
      "label": "reliabilityNote",
      "type": "string",
      "group": "scenario-model",
      "description": "Facilitator context on conflicting or incomplete history; visibility follows the observation's disclosure policy.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "observations.*.variableId",
      "label": "Identifier",
      "type": "string",
      "group": "scenario-model",
      "description": "On collection, snapshot this variable's current value into a new measurement; later trends do not rewrite past results.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "observations.*.referenceInterval",
      "label": "referenceInterval",
      "type": "object",
      "group": "scenario-model",
      "description": "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.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "observations.*.referenceInterval.low",
      "label": "low",
      "type": "number",
      "group": "scenario-model",
      "description": "Numeric low. Do not infer an omitted value.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "observations.*.referenceInterval.high",
      "label": "high",
      "type": "number",
      "group": "scenario-model",
      "description": "Numeric high. Do not infer an omitted value.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "observations.*.referenceInterval.text",
      "label": "text",
      "type": "string",
      "group": "scenario-model",
      "description": "The text for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "observations.*.referenceInterval.unit",
      "label": "unit",
      "type": "string",
      "group": "scenario-model",
      "description": "The unit for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "observations.*.referenceInterval.context",
      "label": "context",
      "type": "string",
      "group": "scenario-model",
      "description": "The context for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "observations.*.flag",
      "label": "flag",
      "type": "value",
      "group": "scenario-model",
      "description": "Explicit authored flag, never inferred from a generic source default.",
      "defaultValue": null,
      "options": [
        "low",
        "high",
        "critical",
        "none",
        "not-interpreted"
      ],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "observations.*.status",
      "label": "status",
      "type": "string",
      "group": "scenario-model",
      "description": "Known requires a value. Other statuses prohibit a value rather than using zero or an empty string as a sentinel.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "observations.*.value",
      "label": "value",
      "type": "number",
      "group": "scenario-model",
      "description": "Type must match the registered concept. Qualitative findings can be text or explicit booleans.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "observations.*.unit",
      "label": "unit",
      "type": "string",
      "group": "scenario-model",
      "description": "Fixed by the concept definition; no inferred conversions.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "environment",
      "label": "environment",
      "type": "object",
      "group": "environment",
      "description": "The location, preparation, equipment, and people needed to deliver the simulation.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.setting",
      "label": "Setting",
      "type": "string",
      "group": "environment",
      "description": "Where the scenario takes place and the relevant features of the care environment.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.teamRoles",
      "label": "Team roles",
      "type": "array",
      "group": "environment",
      "description": "Entries for Team roles. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "environment.teamRoles.*",
      "label": "*",
      "type": "object",
      "group": "environment",
      "description": "Portable learner role requirements. Counts are nonnegative with maxCount ≥ minCount; actual assignments belong to delivery records.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.teamRoles.*.id",
      "label": "Identifier",
      "type": "string",
      "group": "environment",
      "description": "Stable identifier for this entry. Keep it unchanged when editing its content.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.teamRoles.*.name",
      "label": "Name",
      "type": "string",
      "group": "environment",
      "description": "The Name for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.teamRoles.*.minCount",
      "label": "Min count",
      "type": "integer",
      "group": "environment",
      "description": "Numeric Min count, at least 0. Do not infer an omitted value.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.teamRoles.*.maxCount",
      "label": "Max count",
      "type": "integer",
      "group": "environment",
      "description": "Numeric Max count, at least 0. Do not infer an omitted value.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.teamRoles.*.brief",
      "label": "Brief",
      "type": "string",
      "group": "environment",
      "description": "The Brief for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.requirements",
      "label": "Preparation requirements",
      "type": "array",
      "group": "environment",
      "description": "Pre-session tasks for the simulation center, each with a concrete action and setup outcome. Equipment and supplies belong in equipment.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.requirements.*",
      "label": "Preparation requirement",
      "type": "object",
      "group": "environment",
      "description": "One pre-session setup task with a concrete outcome, such as programming initial manikin observations or briefing an actor.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.requirements.*.id",
      "label": "Identifier",
      "type": "string",
      "group": "environment",
      "description": "Stable identifier for this entry. Keep it unchanged when editing its content.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.requirements.*.description",
      "label": "Requirement",
      "type": "string",
      "group": "environment",
      "description": "One pre-session setup task with a concrete outcome, such as programming initial manikin observations or briefing an actor.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.requirements.*.resourceIds",
      "label": "Resources",
      "type": "array",
      "group": "environment",
      "description": "Entries for Resources. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "environment.requirements.*.resourceIds.*",
      "label": "Identifier",
      "type": "string",
      "group": "environment",
      "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.requirements.*.substitutions",
      "label": "Substitutions",
      "type": "array",
      "group": "environment",
      "description": "Entries for Substitutions. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "environment.requirements.*.substitutions.*",
      "label": "*",
      "type": "string",
      "group": "environment",
      "description": "The substitutions for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.requirements.*.required",
      "label": "Required",
      "type": "boolean",
      "group": "environment",
      "description": "Whether Required applies. Omitted optional values remain unspecified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "environment.actors",
      "label": "Scenario actors",
      "type": "array",
      "group": "environment",
      "description": "The people portraying scenario roles, with their names, roles, and briefing instructions.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "environment.actors.*",
      "label": "Actor",
      "type": "object",
      "group": "environment",
      "description": "One role-player's identity, role in the case, and instructions for responding to learners.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.actors.*.id",
      "label": "Identifier",
      "type": "string",
      "group": "environment",
      "description": "A stable identifier used to reference this entry. Keep it unchanged when editing the entry's name or content.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.actors.*.name",
      "label": "Actor name",
      "type": "string",
      "group": "environment",
      "description": "The character's name or role-player label used to identify this actor.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.actors.*.role",
      "label": "Actor role",
      "type": "string",
      "group": "environment",
      "description": "The character's relationship to the patient or care team, such as parent, bedside nurse, or consultant.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.actors.*.opening",
      "label": "Opening line",
      "type": "string",
      "group": "environment",
      "description": "The Opening line for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "environment.actors.*.knowledge",
      "label": "Known information",
      "type": "array",
      "group": "environment",
      "description": "Entries for Known information. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "environment.actors.*.knowledge.*",
      "label": "*",
      "type": "string",
      "group": "environment",
      "description": "The knowledge for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.actors.*.affect",
      "label": "Affect",
      "type": "string",
      "group": "environment",
      "description": "The Affect for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "environment.actors.*.cues",
      "label": "Authored cues",
      "type": "array",
      "group": "environment",
      "description": "Entries for Authored cues. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "environment.actors.*.cues.*",
      "label": "*",
      "type": "object",
      "group": "environment",
      "description": "Explicit trigger and repeat bound. Display sends authored text; facilitator means a prompt for a human actor.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.actors.*.cues.*.id",
      "label": "Identifier",
      "type": "string",
      "group": "environment",
      "description": "Stable identifier for this entry. Keep it unchanged when editing its content.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.actors.*.cues.*.conditionId",
      "label": "Identifier",
      "type": "string",
      "group": "environment",
      "description": "Identifier of an existing events.conditions entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.actors.*.cues.*.line",
      "label": "Line",
      "type": "string",
      "group": "environment",
      "description": "The Line for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.actors.*.cues.*.delivery",
      "label": "Delivery",
      "type": "value",
      "group": "environment",
      "description": "Select one of the declared Delivery alternatives; use the fields belonging to that alternative.",
      "defaultValue": null,
      "options": [
        "facilitator",
        "display"
      ],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.actors.*.cues.*.maxUses",
      "label": "Max uses",
      "type": "integer",
      "group": "environment",
      "description": "Numeric Max uses, at least 1. Do not infer an omitted value.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.actors.*.brief",
      "label": "Actor brief",
      "type": "string",
      "group": "environment",
      "description": "Tell the actor what they know, how to behave, what to disclose, and how to respond to likely learner actions.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.actors.*.demographics",
      "label": "Voice demographics",
      "type": "object",
      "group": "environment",
      "description": "Optional authored age and gender for voice casting. Omit unknown details; voice uses a neutral adult default.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "environment.actors.*.demographics.age",
      "label": "Age",
      "type": "object",
      "group": "environment",
      "description": "The character's authored age quantity, used to guide natural voice delivery without exaggeration.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "environment.actors.*.demographics.age.value",
      "label": "Value",
      "type": "number",
      "group": "environment",
      "description": "The authored age in the selected unit.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.actors.*.demographics.age.unit",
      "label": "Unit",
      "type": "value",
      "group": "environment",
      "description": "Age unit; preserve days or months when appropriate.",
      "defaultValue": null,
      "options": [
        "days",
        "months",
        "years"
      ],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.actors.*.demographics.gender",
      "label": "Gender",
      "type": "string",
      "group": "environment",
      "description": "The character's authored gender, used for default voice selection. Never inferred from their name or occupation.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "environment.resetSteps",
      "label": "Reset steps",
      "type": "array",
      "group": "environment",
      "description": "Ordered steps to restore equipment, media, supplies, and actor starting conditions.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "environment.resetSteps.*",
      "label": "*",
      "type": "string",
      "group": "environment",
      "description": "The reset steps for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.equipment",
      "label": "Equipment",
      "type": "array",
      "group": "environment",
      "description": "The equipment and supplies needed to run the scenario.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "environment.equipment.*",
      "label": "Item",
      "type": "string",
      "group": "environment",
      "description": "One item of equipment or supplies needed for the session, with configuration or an acceptable substitute when useful.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.patientScene",
      "label": "Patient scene",
      "type": "object",
      "group": "environment",
      "description": "The patient model and scene configuration shown during the simulation.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "environment.patientScene.modelUrl",
      "label": "Patient model URL",
      "type": "string",
      "group": "environment",
      "description": "The URL of the patient model to load in the 3D scene. Use a model accessible to the simulation viewer.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.patientScene.attribution",
      "label": "Model attribution",
      "type": "string",
      "group": "environment",
      "description": "Credit the model creator and record the source and license or permission to use it.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.patientScene.markers",
      "label": "Markers",
      "type": "array",
      "group": "environment",
      "description": "Clickable locations on the patient model, each linked to an existing learner interaction.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.patientScene.markers.*",
      "label": "*",
      "type": "object",
      "group": "environment",
      "description": "One interaction hotspot with an action, a model-space position, and an outward-facing direction.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.patientScene.markers.*.actionId",
      "label": "Marker action",
      "type": "string",
      "group": "environment",
      "description": "The existing learner action to invoke when this hotspot is selected; scheduled transitions cannot be selected.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.patientScene.markers.*.position",
      "label": "Position",
      "type": "string",
      "group": "environment",
      "description": "Hotspot location as three space-separated model-space coordinates (x y z), for example 0m 1m 0m.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "environment.patientScene.markers.*.normal",
      "label": "Normal",
      "type": "string",
      "group": "environment",
      "description": "Hotspot surface direction as three space-separated vector components (x y z), for example 0 0 1.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education",
      "label": "education",
      "type": "object",
      "group": "education",
      "description": "Learning goals, learner preparation, assessment criteria, and guidance for reflection after the case.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.rationale",
      "label": "Educational rationale",
      "type": "string",
      "group": "education",
      "description": "Explain why this case is educationally useful and how its decisions and challenges support the learning objectives.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "education.preparation",
      "label": "Preparation",
      "type": "array",
      "group": "education",
      "description": "Preparation activities and learner or facilitator materials. Asset references retain the source documents. Builder groups prerequisite instructions and documents in Teaching context alongside the educational rationale.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "education.preparation.*",
      "label": "Preparation activity",
      "type": "object",
      "group": "education",
      "description": "Preparation activities and packaged resources, with an explicit audience for each item. Instructions may use Markdown for formatted module directions and links; assetIds reference packaged learning documents. This describes preparation, not completion tracking or an enforced start gate. Builder presents prerequisite instructions and documents in Teaching context alongside the educational rationale.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.preparation.*.id",
      "label": "Identifier",
      "type": "string",
      "group": "education",
      "description": "Stable identifier for this entry. Keep it unchanged when editing its content.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.preparation.*.audience",
      "label": "Audience",
      "type": "value",
      "group": "education",
      "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative.",
      "defaultValue": null,
      "options": [
        "learner",
        "facilitator"
      ],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.preparation.*.instructions",
      "label": "Preparation instructions",
      "type": "string",
      "group": "education",
      "description": "Rich-text instructions stored as Markdown for knowledge, skills, modules, or preparation learners should complete before starting.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.preparation.*.assetIds",
      "label": "Supporting materials",
      "type": "array",
      "group": "education",
      "description": "Entries for Supporting materials. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.preparation.*.assetIds.*",
      "label": "Identifier",
      "type": "string",
      "group": "education",
      "description": "Identifier of an existing assets entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.objectives",
      "label": "Learning objectives",
      "type": "array",
      "group": "education",
      "description": "The observable knowledge, skills, or behaviors learners should demonstrate.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.objectives.*",
      "label": "*",
      "type": "object",
      "group": "education",
      "description": "One observable learning goal, using an action verb such as recognize, assess, communicate, or initiate.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.objectives.*.id",
      "label": "Identifier",
      "type": "string",
      "group": "education",
      "description": "A stable objective identifier. Preserve it when editing or reordering the objective.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.objectives.*.statement",
      "label": "Learning objective",
      "type": "string",
      "group": "education",
      "description": "An observable learning outcome, using an action verb such as recognize, assess, communicate, or initiate.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.objectives.*.evidenceActionIds",
      "label": "Evidence actions",
      "type": "array",
      "group": "education",
      "description": "Entries for Evidence actions. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "education.objectives.*.evidenceActionIds.*",
      "label": "Identifier",
      "type": "string",
      "group": "education",
      "description": "Identifier of an existing events.actions entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.objectives.*.acgmeCompetencies",
      "label": "Acgme competencies",
      "type": "array",
      "group": "education",
      "description": "Optional author-selected ACGME core competency codes. Omitted or empty means unmapped. This is not a Milestone level or a judgment of competence. Do not infer mappings from source text that does not explicitly supply them.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "education.objectives.*.acgmeCompetencies.*",
      "label": "*",
      "type": "value",
      "group": "education",
      "description": "One of the six ACGME core domain codes: PC, MK, PBLI, ICS, PROF, or SBP. Each code may appear only once per objective.",
      "defaultValue": null,
      "options": [
        "PC",
        "MK",
        "PBLI",
        "ICS",
        "PROF",
        "SBP"
      ],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.objectives.*.domain",
      "label": "Domain",
      "type": "value",
      "group": "education",
      "description": "Optional classification for discovery; it does not select a scoring algorithm.",
      "defaultValue": null,
      "options": [
        "knowledge",
        "reasoning",
        "technical-skill",
        "communication",
        "teamwork",
        "professionalism",
        "systems"
      ],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "education.objectives.*.performance",
      "label": "Performance",
      "type": "object",
      "group": "education",
      "description": "Observable behavior, conditions of performance, and acceptable standard. Team evidence cannot be attributed automatically to each individual.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "education.objectives.*.performance.context",
      "label": "Context",
      "type": "string",
      "group": "education",
      "description": "The Context for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.objectives.*.performance.expectedBehavior",
      "label": "Expected behavior",
      "type": "string",
      "group": "education",
      "description": "The Expected behavior for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.objectives.*.performance.successCriteria",
      "label": "Success criteria",
      "type": "string",
      "group": "education",
      "description": "The Success criteria for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.objectives.*.performance.scope",
      "label": "Scope",
      "type": "value",
      "group": "education",
      "description": "Select one of the declared Scope alternatives; use the fields belonging to that alternative.",
      "defaultValue": null,
      "options": [
        "individual",
        "team"
      ],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.objectives.*.curriculumMappings",
      "label": "Curriculum mappings",
      "type": "array",
      "group": "education",
      "description": "Entries for Curriculum mappings. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "education.objectives.*.curriculumMappings.*",
      "label": "*",
      "type": "object",
      "group": "education",
      "description": "Curriculum or competency references; mappings are author assertions, not accreditation or equivalence. ACGME core competency mappings use framework https://www.acgme.org/programs-and-institutions/programs/common-program-requirements/, version core-competencies-2026-09, and codes PC, MK, PBLI, ICS, PROF, SBP. Specialty-specific Milestones require their own framework and version; do not infer levels from scenario scores.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.objectives.*.curriculumMappings.*.framework",
      "label": "Framework",
      "type": "string",
      "group": "education",
      "description": "The Framework for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.objectives.*.curriculumMappings.*.version",
      "label": "Version",
      "type": "string",
      "group": "education",
      "description": "The Version for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.objectives.*.curriculumMappings.*.code",
      "label": "Code",
      "type": "string",
      "group": "education",
      "description": "The Code for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.objectives.*.curriculumMappings.*.label",
      "label": "Label",
      "type": "string",
      "group": "education",
      "description": "The Label for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.objectives.*.learnerBrief",
      "label": "Learner brief",
      "type": "string",
      "group": "education",
      "description": "Learner-facing statement of the task or objective. Facilitator success criteria may contain spoilers and are not included implicitly.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "education.debriefPrompts",
      "label": "Debrief prompt",
      "type": "array",
      "group": "education",
      "description": "Reflection prompts stored as a canonical array supporting multiple records. Builder provides a single primary Debrief prompt editor without add/remove controls. Additional existing records retain their IDs, questions, objective references, and facilitator notes; these additional details are preserved in scenario data and are not displayed in the Builder.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.debriefPrompts.*",
      "label": "Debrief prompt",
      "type": "object",
      "group": "education",
      "description": "One reflection prompt with a stable ID and optional objective references and facilitator notes. Builder edits the primary question in the single Debrief prompt field and preserves additional existing questions and notes in scenario data without displaying them in the Builder.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.debriefPrompts.*.id",
      "label": "Identifier",
      "type": "string",
      "group": "education",
      "description": "Stable identifier for this entry. Keep it unchanged when editing its content.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.debriefPrompts.*.objectiveIds",
      "label": "Learning objectives",
      "type": "array",
      "group": "education",
      "description": "Entries for Learning objectives. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "education.debriefPrompts.*.objectiveIds.*",
      "label": "Identifier",
      "type": "string",
      "group": "education",
      "description": "Identifier of an existing education.objectives entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.debriefPrompts.*.question",
      "label": "Debrief prompt",
      "type": "string",
      "group": "education",
      "description": "A prompt for facilitated reflection after the scenario. Formatting is stored as Markdown.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.debriefPrompts.*.facilitatorRationale",
      "label": "Facilitator rationale",
      "type": "string",
      "group": "education",
      "description": "The Facilitator rationale for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "education.assessment",
      "label": "Assessment",
      "type": "array",
      "group": "education",
      "description": "The authored criteria used to assess learner performance.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "education.assessment.*",
      "label": "*",
      "type": "object",
      "group": "education",
      "description": "One scored criterion linking an observable skill to a recorded action, with points and debrief feedback.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.assessment.*.objectiveId",
      "label": "Learning objective",
      "type": "string",
      "group": "education",
      "description": "Optional link to the stable ID of a structured learning objective. Multiple criteria may support one objective. No link means unspecified, never a failed objective.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "education.assessment.*.id",
      "label": "Identifier",
      "type": "string",
      "group": "education",
      "description": "A stable identifier used to reference this entry. Keep it unchanged when editing the entry's name or content.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.assessment.*.label",
      "label": "Skill or objective",
      "type": "string",
      "group": "education",
      "description": "Name the observable skill or objective being assessed, such as recognizing deterioration.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.assessment.*.actionId",
      "label": "Required action",
      "type": "string",
      "group": "education",
      "description": "Select the learner action that earns credit for this criterion. Scheduled transitions cannot earn action credit.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.assessment.*.objectId",
      "label": "Equivalent resource",
      "type": "string",
      "group": "education",
      "description": "Single equivalent resource. Used when objectIds is omitted; the required action's linked resource is used when both are omitted.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "education.assessment.*.objectIds",
      "label": "Equivalent resources",
      "type": "array",
      "group": "education",
      "description": "Alternative learner-requestable resources that earn credit for this criterion. Any selected request qualifies, using the earliest request time regardless of result delay. Points are awarded once. Omit to use objectId or the required action's linked resource when present.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "education.assessment.*.objectIds.*",
      "label": "Equivalent resource",
      "type": "string",
      "group": "education",
      "description": "The identifier of a learner-requestable resource accepted as an alternative for this assessment criterion.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.assessment.*.points",
      "label": "Points",
      "type": "number",
      "group": "education",
      "description": "The weight of this criterion in the total score, from 1 to 100. Credit is awarded once when the criterion is met.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.assessment.*.withinSeconds",
      "label": "Deadline · seconds",
      "type": "number",
      "group": "education",
      "description": "Latest qualifying action time in seconds from the start of the run, inclusive. Omit to assess the action without a deadline.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "education.assessment.*.feedback",
      "label": "Debrief guidance",
      "type": "string",
      "group": "education",
      "description": "Explain the expected behavior, why it matters, and what to discuss when the action is completed or missed.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "education.assessment.*.learningUrl",
      "label": "Learning material URL",
      "type": "string",
      "group": "education",
      "description": "An HTTPS link to learning material relevant to this criterion, such as a guideline or teaching resource.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources",
      "label": "Resources",
      "type": "array",
      "group": "objects",
      "description": "Medications, tests, procedures, and other resources available in the case. Each resource can be used once per run; use separate entries for repeat doses or serial results.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*",
      "label": "*",
      "type": "object",
      "group": "objects",
      "description": "One resource with learner-facing information, release timing, and any authored response or patient changes.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.id",
      "label": "Identifier",
      "type": "string",
      "group": "objects",
      "description": "A stable identifier used to reference this entry. Keep it unchanged when editing the entry's name or content.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.kind",
      "label": "Resource type",
      "type": "string",
      "group": "objects",
      "description": "Categorize the resource for selection and display. Choosing a type alone does not define its physiologic effects.",
      "defaultValue": null,
      "options": [
        "medication",
        "diagnostic",
        "procedure",
        "equipment",
        "consultation",
        "information"
      ],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.name",
      "label": "Learner title",
      "type": "string",
      "group": "objects",
      "description": "The neutral title learners use to identify or request this resource. Include the dose or study details needed to distinguish similar choices.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.builderTitle",
      "label": "Builder title",
      "type": "string",
      "group": "objects",
      "description": "An optional explanatory title for Builder selection and authoring, such as XR Pediatric Neck (2 Views): Esophageal Button Battery. Never use it as a learner label or spoken title. Omission uses name in Builder; name remains the learner title.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.diagnostic",
      "label": "diagnostic",
      "type": "object",
      "group": "objects",
      "description": "A named request with explicit result references. Laboratory requests require an authored specimen description.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.diagnostic.category",
      "label": "category",
      "type": "value",
      "group": "objects",
      "description": "Required only for diagnostic resources: lab for specimen-based tests, imaging for images and reports, or physiologic for recordings and functional measurements such as ECG, EEG, and spirometry.",
      "defaultValue": null,
      "options": [
        "lab",
        "imaging",
        "physiologic"
      ],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.diagnostic.specimen",
      "label": "specimen",
      "type": "string",
      "group": "objects",
      "description": "The specimen for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.diagnostic.collectionInstructions",
      "label": "collectionInstructions",
      "type": "string",
      "group": "objects",
      "description": "The collection instructions for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.diagnostic.resultIds",
      "label": "resultIds",
      "type": "array",
      "group": "objects",
      "description": "Entries for result ids. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.diagnostic.resultIds.*",
      "label": "Identifier",
      "type": "string",
      "group": "objects",
      "description": "Identifier of an existing resources.*.results entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.diagnostic.acquisition",
      "label": "acquisition",
      "type": "object",
      "group": "objects",
      "description": "Study-specific context independent of report interpretation.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.diagnostic.acquisition.bodyRegion",
      "label": "bodyRegion",
      "type": "string",
      "group": "objects",
      "description": "The body region for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.diagnostic.acquisition.view",
      "label": "view",
      "type": "string",
      "group": "objects",
      "description": "The view for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.diagnostic.acquisition.technique",
      "label": "technique",
      "type": "string",
      "group": "objects",
      "description": "The technique for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.diagnostic.orthostaticResponse",
      "label": "orthostaticResponse",
      "type": "object",
      "group": "objects",
      "description": "Report standing BP relative to current resting BP when requested, without changing resting physiology. An authored learner result takes precedence.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.diagnostic.orthostaticResponse.patientId",
      "label": "Identifier",
      "type": "string",
      "group": "objects",
      "description": "Identifier of an existing patients entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.diagnostic.orthostaticResponse.systolicVariableId",
      "label": "Identifier",
      "type": "string",
      "group": "objects",
      "description": "Identifier of an existing patients.*.variables entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.diagnostic.orthostaticResponse.diastolicVariableId",
      "label": "Identifier",
      "type": "string",
      "group": "objects",
      "description": "Identifier of an existing patients.*.variables entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.diagnostic.orthostaticResponse.systolicDrop",
      "label": "systolicDrop",
      "type": "number",
      "group": "objects",
      "description": "Subtract this many mmHg from the request-time resting systolic BP for the standing result.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.diagnostic.orthostaticResponse.diastolicDrop",
      "label": "diastolicDrop",
      "type": "number",
      "group": "objects",
      "description": "Subtract this many mmHg from the request-time resting diastolic BP for the standing result.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.diagnostic.ecg",
      "label": "ecg",
      "type": "object",
      "group": "objects",
      "description": "Acquisition context plus independent rhythm and morphology findings; all supplied scale numbers must be positive.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.diagnostic.ecg.leadConfiguration",
      "label": "leadConfiguration",
      "type": "string",
      "group": "objects",
      "description": "The lead configuration for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.diagnostic.ecg.paperSpeedMmPerSecond",
      "label": "paperSpeedMmPerSecond",
      "type": "number",
      "group": "objects",
      "description": "Numeric paper speed mm per second. Do not infer an omitted value.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.diagnostic.ecg.gainMmPerMv",
      "label": "gainMmPerMv",
      "type": "number",
      "group": "objects",
      "description": "Numeric gain mm per mv. Do not infer an omitted value.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.diagnostic.ecg.rhythmObservationId",
      "label": "Identifier",
      "type": "string",
      "group": "objects",
      "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.diagnostic.ecg.findingObservationIds",
      "label": "findingObservationIds",
      "type": "array",
      "group": "objects",
      "description": "Entries for finding observation ids. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.diagnostic.ecg.findingObservationIds.*",
      "label": "Identifier",
      "type": "string",
      "group": "objects",
      "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.diagnostic.ecg.recordingAssetId",
      "label": "Identifier",
      "type": "string",
      "group": "objects",
      "description": "ECG image, signal, or video manifest entry with an accessible description.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.description",
      "label": "Description shown to the learner",
      "type": "string",
      "group": "objects",
      "description": "Optional context about the resource and why it is available. Leave blank when the name is sufficient. Put findings released after use in Learner result.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.equipment",
      "label": "equipment",
      "type": "object",
      "group": "objects",
      "description": "Covers vascular access, urinary/gastric tubes, invasive monitoring, and other authored devices.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.equipment.type",
      "label": "type",
      "type": "string",
      "group": "objects",
      "description": "The type for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.equipment.status",
      "label": "status",
      "type": "value",
      "group": "objects",
      "description": "Select one of the declared status alternatives; use the fields belonging to that alternative.",
      "defaultValue": null,
      "options": [
        "available",
        "connected",
        "malfunctioning",
        "removed"
      ],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.equipment.patientId",
      "label": "Identifier",
      "type": "string",
      "group": "objects",
      "description": "Identifier of an existing patients entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.equipment.site",
      "label": "site",
      "type": "string",
      "group": "objects",
      "description": "The site for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.equipment.size",
      "label": "size",
      "type": "string",
      "group": "objects",
      "description": "The size for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.equipment.measurementIds",
      "label": "measurementIds",
      "type": "array",
      "group": "objects",
      "description": "Entries for measurement ids. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.equipment.measurementIds.*",
      "label": "Identifier",
      "type": "string",
      "group": "objects",
      "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.equipment.placement",
      "label": "placement",
      "type": "object",
      "group": "objects",
      "description": "Separate placement time and authored confirmation from mere presence.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.equipment.placement.placedAtSeconds",
      "label": "placedAtSeconds",
      "type": "number",
      "group": "objects",
      "description": "Numeric placed at seconds. Do not infer an omitted value.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.equipment.placement.confirmation",
      "label": "confirmation",
      "type": "value",
      "group": "objects",
      "description": "Select one of the declared confirmation alternatives; use the fields belonging to that alternative.",
      "defaultValue": null,
      "options": [
        "unknown",
        "confirmed",
        "incorrect"
      ],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.equipment.placement.note",
      "label": "note",
      "type": "string",
      "group": "objects",
      "description": "The note for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.equipment.capabilities",
      "label": "capabilities",
      "type": "array",
      "group": "objects",
      "description": "Named capabilities referenced by procedure prerequisites or environment requirements.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.equipment.capabilities.*",
      "label": "*",
      "type": "string",
      "group": "objects",
      "description": "The capabilities for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.equipment.monitorConnection",
      "label": "monitorConnection",
      "type": "object",
      "group": "objects",
      "description": "Connect or disconnect an equipment channel when this resource response is released.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.equipment.monitorConnection.channel",
      "label": "channel",
      "type": "value",
      "group": "objects",
      "description": "The monitor channel controlled by this equipment resource; all controls every channel; standard controls ECG, SpO2, NIBP, temperature, and respiratory rate.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.equipment.monitorConnection.connected",
      "label": "connected",
      "type": "boolean",
      "group": "objects",
      "description": "True connects this channel; false disconnects it.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.equipment.ventilation",
      "label": "ventilation",
      "type": "object",
      "group": "objects",
      "description": "Setting is { name: string, value: number, unit: string }; settings and observations remain distinct.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.equipment.ventilation.mode",
      "label": "mode",
      "type": "string",
      "group": "objects",
      "description": "The mode for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.equipment.ventilation.settings",
      "label": "settings",
      "type": "array",
      "group": "objects",
      "description": "Entries for settings. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.equipment.ventilation.settings.*",
      "label": "*",
      "type": "object",
      "group": "objects",
      "description": "Structured settings details. Omitted optional values remain unspecified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.equipment.ventilation.settings.*.name",
      "label": "name",
      "type": "string",
      "group": "objects",
      "description": "The name for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.equipment.ventilation.settings.*.value",
      "label": "value",
      "type": "number",
      "group": "objects",
      "description": "Numeric value. Do not infer an omitted value.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.equipment.ventilation.settings.*.unit",
      "label": "unit",
      "type": "string",
      "group": "objects",
      "description": "The unit for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.equipment.ventilation.measurementIds",
      "label": "measurementIds",
      "type": "array",
      "group": "objects",
      "description": "Entries for measurement ids. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.equipment.ventilation.measurementIds.*",
      "label": "Identifier",
      "type": "string",
      "group": "objects",
      "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.equipment.ventilation.alarms",
      "label": "alarms",
      "type": "array",
      "group": "objects",
      "description": "Entries for alarms. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.equipment.ventilation.alarms.*",
      "label": "*",
      "type": "object",
      "group": "objects",
      "description": "Authored alarm conditions and visible messages, evaluated from explicit conditions.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.equipment.ventilation.alarms.*.id",
      "label": "Identifier",
      "type": "string",
      "group": "objects",
      "description": "Stable identifier for this entry. Keep it unchanged when editing its content.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.equipment.ventilation.alarms.*.conditionId",
      "label": "Identifier",
      "type": "string",
      "group": "objects",
      "description": "Identifier of an existing events.conditions entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.equipment.ventilation.alarms.*.message",
      "label": "message",
      "type": "string",
      "group": "objects",
      "description": "The message for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.equipment.ventilation.alarms.*.severity",
      "label": "severity",
      "type": "value",
      "group": "objects",
      "description": "Select one of the declared severity alternatives; use the fields belonging to that alternative.",
      "defaultValue": null,
      "options": [
        "advisory",
        "urgent"
      ],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.source",
      "label": "Source / attribution",
      "type": "string",
      "group": "objects",
      "description": "Credit the source of the resource content, including a citation or URL when available. Attribution alone does not verify clinical accuracy.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.response",
      "label": "Resource response",
      "type": "object",
      "group": "objects",
      "description": "Structured Resource response details. Omitted optional values remain unspecified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.response.releaseOnStateId",
      "label": "When learners receive this result",
      "type": "string",
      "group": "objects",
      "description": "Choose when this resource result is released. With no linked event, learners request it in chat or from the bedside menu, and the response delay starts when the request is recorded. A linked event releases the result when that step starts, after any response delay; requests for non-diagnostic resources are checked against the action instructions. Diagnostic requests return only the requested test: completing an action does not order other tests linked to the same step. Timed or facilitator-delivered steps can still release their linked results automatically. If a step waits for required results, configure that link in Events.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.response.delaySeconds",
      "label": "delaySeconds",
      "type": "number",
      "group": "objects",
      "description": "Numeric delay seconds, at least 0. Do not infer an omitted value.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.response.effectIds",
      "label": "effectIds",
      "type": "array",
      "group": "objects",
      "description": "Entries for effect ids. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.response.effectIds.*",
      "label": "Identifier",
      "type": "string",
      "group": "objects",
      "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.response.nextStateId",
      "label": "Identifier",
      "type": "string",
      "group": "objects",
      "description": "Identifier of an existing events.states entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.sourceIds",
      "label": "sourceIds",
      "type": "array",
      "group": "objects",
      "description": "Entries for source ids. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.sourceIds.*",
      "label": "Source",
      "type": "string",
      "group": "objects",
      "description": "Identifier of an existing metadata.sources entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.medication",
      "label": "medication",
      "type": "object",
      "group": "objects",
      "description": "Reusable product definition. QuantityRatio is numerator Quantity / denominator Quantity; positive denominator is required.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.medication.ingredient",
      "label": "ingredient",
      "type": "string",
      "group": "objects",
      "description": "The ingredient for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.medication.formulation",
      "label": "formulation",
      "type": "string",
      "group": "objects",
      "description": "The formulation for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.medication.concentration",
      "label": "concentration",
      "type": "object",
      "group": "objects",
      "description": "Structured concentration details. Omitted optional values remain unspecified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.medication.concentration.numerator",
      "label": "numerator",
      "type": "object",
      "group": "objects",
      "description": "Structured numerator details. Omitted optional values remain unspecified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.medication.concentration.numerator.value",
      "label": "value",
      "type": "number",
      "group": "objects",
      "description": "Numeric value. Do not infer an omitted value.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.medication.concentration.numerator.unit",
      "label": "unit",
      "type": "string",
      "group": "objects",
      "description": "The unit for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.medication.concentration.denominator",
      "label": "denominator",
      "type": "object",
      "group": "objects",
      "description": "Structured numerator details. Omitted optional values remain unspecified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.medication.concentration.denominator.value",
      "label": "value",
      "type": "number",
      "group": "objects",
      "description": "Numeric value. Do not infer an omitted value.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.medication.concentration.denominator.unit",
      "label": "unit",
      "type": "string",
      "group": "objects",
      "description": "The unit for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.medication.allowedRoutes",
      "label": "allowedRoutes",
      "type": "array",
      "group": "objects",
      "description": "Entries for allowed routes. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.medication.allowedRoutes.*",
      "label": "*",
      "type": "string",
      "group": "objects",
      "description": "The allowed routes for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.consultation",
      "label": "consultation",
      "type": "object",
      "group": "objects",
      "description": "A structured exchange with authored requests and responses rather than a one-line result.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.consultation.service",
      "label": "service",
      "type": "string",
      "group": "objects",
      "description": "The service for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.consultation.actorId",
      "label": "Identifier",
      "type": "string",
      "group": "objects",
      "description": "Identifier of an existing environment.actors entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.consultation.requestedInformation",
      "label": "requestedInformation",
      "type": "array",
      "group": "objects",
      "description": "Entries for requested information. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.consultation.requestedInformation.*",
      "label": "*",
      "type": "string",
      "group": "objects",
      "description": "The requested information for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.consultation.responseResultIds",
      "label": "responseResultIds",
      "type": "array",
      "group": "objects",
      "description": "Entries for response result ids. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.consultation.responseResultIds.*",
      "label": "Identifier",
      "type": "string",
      "group": "objects",
      "description": "Identifier of an existing resources.*.results entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.procedure",
      "label": "procedure",
      "type": "object",
      "group": "objects",
      "description": "Preparation and performance content with an explicit action deciding the authored result.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.procedure.indication",
      "label": "indication",
      "type": "string",
      "group": "objects",
      "description": "The indication for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.procedure.requiredResourceIds",
      "label": "requiredResourceIds",
      "type": "array",
      "group": "objects",
      "description": "Entries for required resource ids. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.procedure.requiredResourceIds.*",
      "label": "Identifier",
      "type": "string",
      "group": "objects",
      "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.procedure.steps",
      "label": "steps",
      "type": "array",
      "group": "objects",
      "description": "Entries for steps. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.procedure.steps.*",
      "label": "*",
      "type": "value",
      "group": "objects",
      "description": "Ordered observable steps. Action evidence requires actionId; facilitator evidence is recorded during the run.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.procedure.steps.*.id",
      "label": "Identifier",
      "type": "string",
      "group": "objects",
      "description": "Stable identifier for this entry. Keep it unchanged when editing its content.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.procedure.steps.*.instruction",
      "label": "instruction",
      "type": "string",
      "group": "objects",
      "description": "The instruction for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.procedure.steps.*.evidence",
      "label": "evidence",
      "type": "string",
      "group": "objects",
      "description": "The required literal value \"facilitator\".",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.procedure.steps.*.critical",
      "label": "critical",
      "type": "boolean",
      "group": "objects",
      "description": "Whether critical applies. Omitted optional values remain unspecified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.procedure.steps.*.actionId",
      "label": "Identifier",
      "type": "string",
      "group": "objects",
      "description": "Identifier of an existing events.actions entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.procedure.outcomeActionId",
      "label": "Identifier",
      "type": "string",
      "group": "objects",
      "description": "Identifier of an existing events.actions entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.procedure.complications",
      "label": "complications",
      "type": "array",
      "group": "objects",
      "description": "Entries for complications. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.procedure.complications.*",
      "label": "*",
      "type": "object",
      "group": "objects",
      "description": "Conditional authored consequences evaluated once at procedure completion, in listed order.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.procedure.complications.*.id",
      "label": "Identifier",
      "type": "string",
      "group": "objects",
      "description": "Stable identifier for this entry. Keep it unchanged when editing its content.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.procedure.complications.*.description",
      "label": "description",
      "type": "string",
      "group": "objects",
      "description": "The description for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.procedure.complications.*.conditionId",
      "label": "Identifier",
      "type": "string",
      "group": "objects",
      "description": "Identifier of an existing events.conditions entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.procedure.complications.*.effectIds",
      "label": "effectIds",
      "type": "array",
      "group": "objects",
      "description": "Entries for effect ids. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.procedure.complications.*.effectIds.*",
      "label": "Identifier",
      "type": "string",
      "group": "objects",
      "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.results",
      "label": "results",
      "type": "array",
      "group": "objects",
      "description": "Entries for results. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.results.*",
      "label": "*",
      "type": "object",
      "group": "objects",
      "description": "Named result combines authored report text, structured observations, media, and audience rules.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.results.*.id",
      "label": "Identifier",
      "type": "string",
      "group": "objects",
      "description": "Stable identifier for this entry. Keep it unchanged when editing its content.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.results.*.content",
      "label": "content",
      "type": "string",
      "group": "objects",
      "description": "The content for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.results.*.observationIds",
      "label": "observationIds",
      "type": "array",
      "group": "objects",
      "description": "Entries for observation ids. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.results.*.observationIds.*",
      "label": "Identifier",
      "type": "string",
      "group": "objects",
      "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.results.*.assetIds",
      "label": "assetIds",
      "type": "array",
      "group": "objects",
      "description": "Entries for asset ids. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.results.*.assetIds.*",
      "label": "Identifier",
      "type": "string",
      "group": "objects",
      "description": "Identifier of an existing assets entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.results.*.disclosure",
      "label": "Disclosure",
      "type": "value",
      "group": "objects",
      "description": "Select one of the declared Disclosure alternatives; use the fields belonging to that alternative.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.results.*.disclosure.audience",
      "label": "Audience",
      "type": "array",
      "group": "objects",
      "description": "Authorized output audiences. UI hints do not replace output filtering.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.results.*.disclosure.audience.*",
      "label": "Audience",
      "type": "value",
      "group": "objects",
      "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative.",
      "defaultValue": null,
      "options": [
        "learner",
        "facilitator"
      ],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.results.*.disclosure.mode",
      "label": "Mode",
      "type": "value",
      "group": "objects",
      "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release.",
      "defaultValue": null,
      "options": [
        "initial",
        "facilitator"
      ],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.results.*.disclosure.resourceId",
      "label": "Identifier",
      "type": "string",
      "group": "objects",
      "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.results.*.disclosure.actionId",
      "label": "Identifier",
      "type": "string",
      "group": "objects",
      "description": "Successful completion of this action reveals the entry.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.results.*.disclosure.conditionId",
      "label": "Identifier",
      "type": "string",
      "group": "objects",
      "description": "Reveal when the condition first becomes true; reject unrelated trigger fields.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.results.*.interpretation",
      "label": "interpretation",
      "type": "object",
      "group": "objects",
      "description": "Separate diagnostic or teaching explanation from the raw learner result.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.results.*.interpretation.learner",
      "label": "learner",
      "type": "string",
      "group": "objects",
      "description": "The learner for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.results.*.interpretation.facilitator",
      "label": "facilitator",
      "type": "string",
      "group": "objects",
      "description": "The facilitator for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.results.*.panelName",
      "label": "panelName",
      "type": "string",
      "group": "objects",
      "description": "Human-readable panel grouping; does not inject assumed analytes.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "resources.*.results.*.specimenStatus",
      "label": "specimenStatus",
      "type": "value",
      "group": "objects",
      "description": "Allows rejected or unavailable specimens to drive a repeat-collection branch.",
      "defaultValue": null,
      "options": [
        "adequate",
        "inadequate",
        "not-collected"
      ],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events",
      "label": "events",
      "type": "object",
      "group": "scenario-model",
      "description": "The patient phases, transitions, and requestable resources that define how the scenario progresses.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.flags",
      "label": "flags",
      "type": "array",
      "group": "scenario-model",
      "description": "Entries for flags. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.flags.*",
      "label": "*",
      "type": "object",
      "group": "scenario-model",
      "description": "Concurrent facts such as ownership-agreed; flags coexist independently of the single active phase.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.flags.*.id",
      "label": "Identifier",
      "type": "string",
      "group": "scenario-model",
      "description": "Stable identifier for this entry. Keep it unchanged when editing its content.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.flags.*.initialValue",
      "label": "initialValue",
      "type": "boolean",
      "group": "scenario-model",
      "description": "Whether initial value applies. Omitted optional values remain unspecified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.conditions",
      "label": "conditions",
      "type": "array",
      "group": "scenario-model",
      "description": "Named, bounded predicates referenced by actions, states, and cues.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.conditions.*",
      "label": "*",
      "type": "object",
      "group": "scenario-model",
      "description": "All predicates must be true; empty all is explicitly true. No recursive or executable expression text.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.conditions.*.id",
      "label": "Identifier",
      "type": "string",
      "group": "scenario-model",
      "description": "Stable identifier for this entry. Keep it unchanged when editing its content.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.conditions.*.all",
      "label": "all",
      "type": "array",
      "group": "scenario-model",
      "description": "Entries for all. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.conditions.*.all.*",
      "label": "*",
      "type": "value",
      "group": "scenario-model",
      "description": "Operand types must match the target. Boolean flags support only eq/ne; numeric comparisons use the variable's declared unit.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.conditions.*.all.*.targetId",
      "label": "Identifier",
      "type": "string",
      "group": "scenario-model",
      "description": "The Identifier for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.conditions.*.all.*.operator",
      "label": "operator",
      "type": "value",
      "group": "scenario-model",
      "description": "Select one of the declared operator alternatives; use the fields belonging to that alternative.",
      "defaultValue": null,
      "options": [
        "eq",
        "ne",
        "lt",
        "lte",
        "gt",
        "gte"
      ],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.conditions.*.all.*.value",
      "label": "value",
      "type": "number",
      "group": "scenario-model",
      "description": "Numeric value. Do not infer an omitted value.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.schedules",
      "label": "Schedules",
      "type": "array",
      "group": "scenario-model",
      "description": "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.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.schedules.*",
      "label": "*",
      "type": "value",
      "group": "scenario-model",
      "description": "Select one of the declared schedules alternatives; use the fields belonging to that alternative.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.schedules.*.id",
      "label": "Identifier",
      "type": "string",
      "group": "scenario-model",
      "description": "Named event allows explicit cancellation.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.schedules.*.label",
      "label": "label",
      "type": "string",
      "group": "scenario-model",
      "description": "The label for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.schedules.*.description",
      "label": "description",
      "type": "string",
      "group": "scenario-model",
      "description": "The description for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.schedules.*.resourceId",
      "label": "Identifier",
      "type": "string",
      "group": "scenario-model",
      "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.schedules.*.cancelOnActionIds",
      "label": "cancelOnActionIds",
      "type": "array",
      "group": "scenario-model",
      "description": "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.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.schedules.*.cancelOnActionIds.*",
      "label": "Identifier",
      "type": "string",
      "group": "scenario-model",
      "description": "A learner action whose completion prevents this scheduled transition from firing.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.schedules.*.delaySeconds",
      "label": "delaySeconds",
      "type": "number",
      "group": "scenario-model",
      "description": "Simulated seconds after the declared schedule anchor. State-entry schedules follow onAnchorStateExit and cancellation references; action timing is separate.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.schedules.*.conditionId",
      "label": "Identifier",
      "type": "string",
      "group": "scenario-model",
      "description": "Evaluate when due. False skips that occurrence; it does not poll until true.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.schedules.*.priority",
      "label": "priority",
      "type": "integer",
      "group": "scenario-model",
      "description": "Explicit ordering for simultaneous events. Equal priority uses schedule ID lexical order.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.schedules.*.effectIds",
      "label": "effectIds",
      "type": "array",
      "group": "scenario-model",
      "description": "Operations applied atomically if the due event and transition guards are valid.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.schedules.*.effectIds.*",
      "label": "Identifier",
      "type": "string",
      "group": "scenario-model",
      "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.schedules.*.nextStateId",
      "label": "Identifier",
      "type": "string",
      "group": "scenario-model",
      "description": "Optional phase transition; omit for a result or actor cue that does not move the main phase.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.schedules.*.repeat",
      "label": "repeat",
      "type": "object",
      "group": "scenario-model",
      "description": "Count includes the initial occurrence. Finite repetition prevents unbounded schedules.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.schedules.*.repeat.intervalSeconds",
      "label": "intervalSeconds",
      "type": "number",
      "group": "scenario-model",
      "description": "Numeric interval seconds. Do not infer an omitted value.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.schedules.*.repeat.count",
      "label": "count",
      "type": "integer",
      "group": "scenario-model",
      "description": "Numeric count, at least 1. Do not infer an omitted value.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.schedules.*.anchor",
      "label": "anchor",
      "type": "object",
      "group": "scenario-model",
      "description": "State/action anchors require the corresponding ID. Scenario-start prohibits refId.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.schedules.*.anchor.kind",
      "label": "kind",
      "type": "string",
      "group": "scenario-model",
      "description": "The required literal value \"scenario-start\".",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.schedules.*.onAnchorStateExit",
      "label": "onAnchorStateExit",
      "type": "value",
      "group": "scenario-model",
      "description": "Cancel removes pending occurrences from that entry; re-entry creates a new schedule instance.",
      "defaultValue": null,
      "options": [
        "cancel",
        "continue"
      ],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.effects",
      "label": "Effects",
      "type": "array",
      "group": "scenario-model",
      "description": "Named reusable effects that change scenario state or disclosure.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.effects.*",
      "label": "*",
      "type": "value",
      "group": "scenario-model",
      "description": "One typed effect with a stable identifier and explicit target.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.effects.*.id",
      "label": "Identifier",
      "type": "string",
      "group": "scenario-model",
      "description": "Stable effect identifier referenced by states, actions, or schedules.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.effects.*.kind",
      "label": "kind",
      "type": "string",
      "group": "scenario-model",
      "description": "The operation performed by this effect.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.effects.*.targetId",
      "label": "Identifier",
      "type": "string",
      "group": "scenario-model",
      "description": "The identifier of the variable or other entity changed by this effect.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.effects.*.value",
      "label": "value",
      "type": "number",
      "group": "scenario-model",
      "description": "The resulting value, expressed in the target variable’s declared unit.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.effects.*.unit",
      "label": "unit",
      "type": "string",
      "group": "scenario-model",
      "description": "The target variable’s declared unit; effects cannot silently convert units.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.effects.*.durationSeconds",
      "label": "durationSeconds",
      "type": "number",
      "group": "scenario-model",
      "description": "Duration of a linear authored change from current value to target. Instant changes use set-variable.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.effects.*.interpolation",
      "label": "interpolation",
      "type": "string",
      "group": "scenario-model",
      "description": "The format supports one explicit interpolation rule; no inferred dose-response or disease model.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.effects.*.percent",
      "label": "percent",
      "type": "number",
      "group": "scenario-model",
      "description": "Numeric percent, at least -100, at most 1000. Do not infer an omitted value.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.effects.*.patientId",
      "label": "Identifier",
      "type": "string",
      "group": "scenario-model",
      "description": "Identifier of an existing patients entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.effects.*.modelId",
      "label": "modelId",
      "type": "string",
      "group": "scenario-model",
      "description": "The model id for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.effects.*.channel",
      "label": "channel",
      "type": "value",
      "group": "scenario-model",
      "description": "Select one of the declared channel alternatives; use the fields belonging to that alternative.",
      "defaultValue": null,
      "options": [
        "ecg",
        "bloodPressure",
        "spo2",
        "respiration",
        "temperature",
        "capnography",
        "arterialPressure"
      ],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.states",
      "label": "States",
      "type": "array",
      "group": "states",
      "description": "Patient phases in the scenario. Baseline contains starting conditions only. Newly authored milestones advance to distinct non-baseline phases even with unchanged vitals; do not return to baseline. Include exactly one baseline and at least one conclusion; connect phases with interactions.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.states.*",
      "label": "*",
      "type": "object",
      "group": "states",
      "description": "One phase of the case, with learner information, tutor guidance, and any changed patient observations.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.states.*.id",
      "label": "Identifier",
      "type": "string",
      "group": "states",
      "description": "A stable identifier used to reference this entry. Keep it unchanged when editing the entry's name or content.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.states.*.title",
      "label": "State title",
      "type": "string",
      "group": "states",
      "description": "A short name for this phase, such as Initial assessment or Worsening respiratory distress.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.states.*.entryConditionId",
      "label": "Identifier",
      "type": "string",
      "group": "states",
      "description": "Guard checked immediately before entry. Failed manual transitions are rejected; scheduled failures are recorded and skipped.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.states.*.exitConditionId",
      "label": "Identifier",
      "type": "string",
      "group": "states",
      "description": "Must hold to leave the phase; does not cause a transition by itself.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.states.*.onEnterEffectIds",
      "label": "Effects on entry",
      "type": "array",
      "group": "states",
      "description": "Ordered effect identifiers applied when this state is entered.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.states.*.onEnterEffectIds.*",
      "label": "Entry effect",
      "type": "string",
      "group": "states",
      "description": "An effect applied at this position in the state’s entry sequence.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.states.*.onExitEffectIds",
      "label": "Effects on exit",
      "type": "array",
      "group": "states",
      "description": "Ordered effect identifiers applied when this state is exited; execution requires support for exit effects.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.states.*.onExitEffectIds.*",
      "label": "Exit effect",
      "type": "string",
      "group": "states",
      "description": "An effect applied at this position in the state’s exit sequence.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.states.*.learnerBrief",
      "label": "Learner prompt",
      "type": "string",
      "group": "states",
      "description": "Information presented to the learner at this phase: the patient's condition, new findings, or an immediate task. Keep tutor instructions and unrevealed answers in the tutor prompt.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.states.*.facilitatorBrief",
      "label": "Tutor prompt",
      "type": "string",
      "group": "states",
      "description": "Guide the tutor through this phase: expected learner actions, cues to offer if learners struggle, and when and why to advance. Include relevant reasoning and facilitation instructions.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.states.*.objectiveIds",
      "label": "objectiveIds",
      "type": "array",
      "group": "states",
      "description": "Links the phase to an educational objective.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.states.*.objectiveIds.*",
      "label": "Identifier",
      "type": "string",
      "group": "states",
      "description": "Identifier of an existing education.objectives entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.states.*.kind",
      "label": "State kind",
      "type": "string",
      "group": "states",
      "description": "Baseline starts the case; triggered and scheduled describe intermediate phases; conclusion ends the run. A scheduled phase still needs an incoming timed interaction.",
      "defaultValue": null,
      "options": [
        "baseline",
        "phase",
        "conclusion"
      ],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.states.*.monitor",
      "label": "Monitor",
      "type": "object",
      "group": "states",
      "description": "Monitor rhythm, pulse status, and channel connection overrides for this phase. Connection-only overrides preserve the preceding rhythm; omitted channels keep their preceding connection.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.states.*.monitor.rhythm",
      "label": "Monitor rhythm",
      "type": "string",
      "group": "states",
      "description": "The ECG rhythm displayed on the monitor. Select the rhythm separately from whether the patient has a palpable pulse.",
      "defaultValue": null,
      "options": [
        "sinus",
        "sinus_tachycardia",
        "sinus_bradycardia",
        "atrial_fibrillation",
        "atrial_flutter",
        "svt",
        "ventricular_tachycardia",
        "torsades",
        "ventricular_fibrillation",
        "asystole",
        "av_block_1",
        "av_block_2_mobitz_1",
        "av_block_2_mobitz_2",
        "av_block_3",
        "junctional",
        "ventricular_paced"
      ],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.states.*.monitor.pulsePresent",
      "label": "Pulse present",
      "type": "boolean",
      "group": "states",
      "description": "Whether a palpable pulse is present. Use this to distinguish perfusing and pulseless presentations of the displayed rhythm.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.states.*.monitor.connections",
      "label": "Monitor connections",
      "type": "object",
      "group": "states",
      "description": "Connected channels expose available measurements without changing physiology. An explicit empty patient connection map starts disconnected. Omitted event channels inherit their preceding connection. Omitting the patient connection map makes available channels connected.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.states.*.monitor.connections.ecg",
      "label": "ECG",
      "type": "boolean",
      "group": "states",
      "description": "ECG: connected exposes the available measurement; disconnected hides it without changing physiology.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.states.*.monitor.connections.bloodPressure",
      "label": "Blood pressure cuff",
      "type": "boolean",
      "group": "states",
      "description": "Blood pressure cuff: connected exposes the available measurement; disconnected hides it without changing physiology.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.states.*.monitor.connections.spo2",
      "label": "Pulse oximetry",
      "type": "boolean",
      "group": "states",
      "description": "Pulse oximetry: connected exposes the available measurement; disconnected hides it without changing physiology.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.states.*.monitor.connections.respiration",
      "label": "Respiratory monitoring",
      "type": "boolean",
      "group": "states",
      "description": "Respiratory monitoring: connected exposes the available measurement; disconnected hides it without changing physiology.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.states.*.monitor.connections.temperature",
      "label": "Temperature probe",
      "type": "boolean",
      "group": "states",
      "description": "Temperature probe: connected exposes the available measurement; disconnected hides it without changing physiology.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.states.*.monitor.connections.capnography",
      "label": "Capnography",
      "type": "boolean",
      "group": "states",
      "description": "Capnography: connected exposes the available measurement; disconnected hides it without changing physiology.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.states.*.monitor.connections.arterialPressure",
      "label": "Arterial pressure",
      "type": "boolean",
      "group": "states",
      "description": "Arterial pressure: connected exposes the available measurement; disconnected hides it without changing physiology.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.states.*.key",
      "label": "Key state",
      "type": "boolean",
      "group": "states",
      "description": "Mark an educationally important phase. This does not award points or require every path to pass through the phase.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.states.*.resourceTrigger",
      "label": "Enter when resource results are available",
      "type": "object",
      "group": "states",
      "description": "Enter this event once when selected learner-requested resource results become available. Incoming transitions remain alternative paths into the event.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.states.*.resourceTrigger.mode",
      "label": "Results required",
      "type": "string",
      "group": "states",
      "description": "All waits for every selected resource result; any enters on the first selected result. Requests alone do not satisfy the rule until their response delays elapse.",
      "defaultValue": null,
      "options": [
        "any",
        "all"
      ],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.states.*.resourceTrigger.objectIds",
      "label": "Selected resources",
      "type": "array",
      "group": "states",
      "description": "Scenario resources whose completed results trigger this event. Select learner-requestable resources without a separate resource destination event.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.states.*.resourceTrigger.objectIds.*",
      "label": "Resource",
      "type": "string",
      "group": "states",
      "description": "The identifier of a learner-requestable resource required by this event result trigger.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions",
      "label": "Interactions",
      "type": "array",
      "group": "actions",
      "description": "Connections between phases, activated by a learner action or a timer measured from entry into the source phase.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*",
      "label": "*",
      "type": "object",
      "group": "actions",
      "description": "One transition from a source phase to a destination, including its explicit learner choice or timer. Author resource links and patient changes on the destination state.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.id",
      "label": "Identifier",
      "type": "string",
      "group": "actions",
      "description": "A stable identifier used to reference this entry. Keep it unchanged when editing the entry's name or content.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.label",
      "label": "Interaction",
      "type": "string",
      "group": "actions",
      "description": "Use a short, observable action or timed-event label: 2–6 words, at most 48 characters. Put conditions, clinical detail, and what happens in description, not in the label. Do not append the destination state; from/to already identify it.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.description",
      "label": "Description",
      "type": "string",
      "group": "actions",
      "description": "Longer explanation of the action or timed event, its conditions, and what happens. Plain-language context only; executable behavior remains in the selected trigger, timing, resource references, and destination state. Text does not automatically detect learner behavior. Optional when the label provides sufficient context.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.patientId",
      "label": "Identifier",
      "type": "string",
      "group": "actions",
      "description": "Required when the action targets a patient; omit for team-only actions.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.resourceId",
      "label": "Linked resource",
      "type": "string",
      "group": "actions",
      "description": "Requests a resource when this transition fires. Builder authors resource links on the state under Results.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.completionCriteria",
      "label": "When this action is complete",
      "type": "string",
      "group": "actions",
      "description": "Describe the learner intent or behavior that fulfills this action. The AI interprets chat, conversation context, and simulator interactions against this criterion; equivalent wording is accepted. Distinguish an order from actual administration, and specify essential requirements. If omitted, the action label and description provide the criterion. Only available authored actions can advance the case; ambiguous intent requires clarification.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.completion",
      "label": "Action recognition",
      "type": "object",
      "group": "actions",
      "description": "Recognize this action from learner-requested resources while its source state is active. Any completes on the first selected request; all waits for all selected requests. Result delays do not delay action completion. Facilitators can confirm the same action directly. Confirming all requests every selected resource; confirming any does not guess which alternative was used. Omitted uses AI interpretation of completionCriteria (or label and description) or explicit confirmation.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.completion.mode",
      "label": "Resources required",
      "type": "string",
      "group": "actions",
      "description": "Choose whether any or all selected resource requests complete this action.",
      "defaultValue": null,
      "options": [
        "any",
        "all"
      ],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.completion.resourceIds",
      "label": "Recognize resource interactions",
      "type": "array",
      "group": "actions",
      "description": "Select the resources that define the learner activity, such as BMP and CBC for Order labs. Only learner-requestable resources qualify. Automatic state releases do not count.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.completion.resourceIds.*",
      "label": "Resource",
      "type": "string",
      "group": "actions",
      "description": "A learner-requestable resource used to recognize the action.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.availableInStateIds",
      "label": "Available in states",
      "type": "array",
      "group": "actions",
      "description": "The phase in which this interaction is available or its scheduled timer begins.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.availableInStateIds.*",
      "label": "Available in state",
      "type": "string",
      "group": "actions",
      "description": "Identifier of an existing events.states entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.conditionId",
      "label": "Identifier",
      "type": "string",
      "group": "actions",
      "description": "Prerequisite evaluated at start and again at completion.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.durationSeconds",
      "label": "durationSeconds",
      "type": "number",
      "group": "actions",
      "description": "Simulated time between start and completion. Availability is evaluated at start.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.repeat",
      "label": "repeat",
      "type": "object",
      "group": "actions",
      "description": "Completed uses count against maxUses; cooldown starts at completion. No implicit unlimited repeats.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.repeat.maxUses",
      "label": "maxUses",
      "type": "integer",
      "group": "actions",
      "description": "Numeric max uses, at least 1. Do not infer an omitted value.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.repeat.cooldownSeconds",
      "label": "cooldownSeconds",
      "type": "number",
      "group": "actions",
      "description": "Numeric cooldown seconds, at least 0. Do not infer an omitted value.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.cancellable",
      "label": "cancellable",
      "type": "boolean",
      "group": "actions",
      "description": "Whether an operator can cancel before completion; cancellation does not count as a completed use.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.onPhaseExit",
      "label": "onPhaseExit",
      "type": "value",
      "group": "actions",
      "description": "Policy for unfinished work when another event changes phase. Conclusion always cancels.",
      "defaultValue": null,
      "options": [
        "cancel",
        "continue"
      ],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.outcomes",
      "label": "Ordered outcomes",
      "type": "array",
      "group": "actions",
      "description": "The phase entered when this interaction occurs. Set scenario-specific vitals, rhythm, and patient information here; reusable treatment responses stay with resources. Destination vital signs override overlapping transition effects.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.outcomes.*",
      "label": "Outcome",
      "type": "object",
      "group": "actions",
      "description": "Choose first matching outcome at completion. Exactly one final unconditional fallback is required. Omit nextStateId to stay in the phase.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.outcomes.*.id",
      "label": "Identifier",
      "type": "string",
      "group": "actions",
      "description": "Stable identifier for this entry. Keep it unchanged when editing its content.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.outcomes.*.whenConditionId",
      "label": "Identifier",
      "type": "string",
      "group": "actions",
      "description": "Identifier of an existing events.conditions entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.outcomes.*.effectIds",
      "label": "effectIds",
      "type": "array",
      "group": "actions",
      "description": "Entries for effect ids. An empty list means no entries have been authored.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.outcomes.*.effectIds.*",
      "label": "Identifier",
      "type": "string",
      "group": "actions",
      "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.outcomes.*.nextStateId",
      "label": "Identifier",
      "type": "string",
      "group": "actions",
      "description": "Identifier of an existing events.states entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.kind",
      "label": "Action kind",
      "type": "string",
      "group": "actions",
      "description": "Discriminator for conditional action payloads. Specialized fields are prohibited unless kind selects the corresponding branch.",
      "defaultValue": null,
      "options": [
        "generic",
        "medication-order",
        "medication-administration"
      ],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.medicationOrder",
      "label": "medicationOrder",
      "type": "object",
      "group": "actions",
      "description": "Quantity is { value: positive number, unit: string }. Units are explicit; route must belong to allowedRoutes.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.medicationOrder.resourceId",
      "label": "Identifier",
      "type": "string",
      "group": "actions",
      "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.medicationOrder.patientId",
      "label": "Identifier",
      "type": "string",
      "group": "actions",
      "description": "Identifier of an existing patients entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.medicationOrder.dose",
      "label": "dose",
      "type": "object",
      "group": "actions",
      "description": "Structured numerator details. Omitted optional values remain unspecified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.medicationOrder.dose.value",
      "label": "value",
      "type": "number",
      "group": "actions",
      "description": "Numeric value. Do not infer an omitted value.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.medicationOrder.dose.unit",
      "label": "unit",
      "type": "string",
      "group": "actions",
      "description": "The unit for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.medicationOrder.route",
      "label": "route",
      "type": "string",
      "group": "actions",
      "description": "The route for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.medicationOrder.rate",
      "label": "rate",
      "type": "object",
      "group": "actions",
      "description": "Structured rate details. Omitted optional values remain unspecified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.medicationOrder.rate.numerator",
      "label": "numerator",
      "type": "object",
      "group": "actions",
      "description": "Structured numerator details. Omitted optional values remain unspecified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.medicationOrder.rate.numerator.value",
      "label": "value",
      "type": "number",
      "group": "actions",
      "description": "Numeric value. Do not infer an omitted value.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.medicationOrder.rate.numerator.unit",
      "label": "unit",
      "type": "string",
      "group": "actions",
      "description": "The unit for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.medicationOrder.rate.denominator",
      "label": "denominator",
      "type": "object",
      "group": "actions",
      "description": "Structured numerator details. Omitted optional values remain unspecified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.medicationOrder.rate.denominator.value",
      "label": "value",
      "type": "number",
      "group": "actions",
      "description": "Numeric value. Do not infer an omitted value.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.medicationOrder.rate.denominator.unit",
      "label": "unit",
      "type": "string",
      "group": "actions",
      "description": "The unit for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.administration",
      "label": "administration",
      "type": "value",
      "group": "actions",
      "description": "Administration is a separate observable action referencing an order, not an automatic consequence of writing it.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.administration.orderActionId",
      "label": "Identifier",
      "type": "string",
      "group": "actions",
      "description": "Identifier of an existing events.actions entry. Preserve the referenced entry when editing this field.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.administration.mode",
      "label": "mode",
      "type": "value",
      "group": "actions",
      "description": "Select one of the declared mode alternatives; use the fields belonging to that alternative.",
      "defaultValue": null,
      "options": [
        "bolus",
        "infusion-stop"
      ],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.administration.rate",
      "label": "rate",
      "type": "object",
      "group": "actions",
      "description": "Explicit amount per time or volume per time. No implicit unit conversion or pump calculation.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Optional; omitted values remain unspecified."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.administration.rate.numerator",
      "label": "numerator",
      "type": "object",
      "group": "actions",
      "description": "Structured numerator details. Omitted optional values remain unspecified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.administration.rate.numerator.value",
      "label": "value",
      "type": "number",
      "group": "actions",
      "description": "Numeric value. Do not infer an omitted value.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.administration.rate.numerator.unit",
      "label": "unit",
      "type": "string",
      "group": "actions",
      "description": "The unit for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.administration.rate.denominator",
      "label": "denominator",
      "type": "object",
      "group": "actions",
      "description": "Structured numerator details. Omitted optional values remain unspecified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.administration.rate.denominator.value",
      "label": "value",
      "type": "number",
      "group": "actions",
      "description": "Numeric value. Do not infer an omitted value.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    },
    {
      "path": "events.actions.*.administration.rate.denominator.unit",
      "label": "unit",
      "type": "string",
      "group": "actions",
      "description": "The unit for this entry. Omit optional information that has not been specified.",
      "defaultValue": null,
      "options": [],
      "source": "Scenario schema",
      "notes": [
        "Required when the containing object is present."
      ],
      "status": "supported"
    }
  ]
}
