Skip to documentation
ReferenceImplementation

Implementation

Suite parameter guide

Meaning, authoring detail, optional values, and runtime behavior for every current scenario parameter.

The field reference below is generated from the canonical schema. Types, required fields, allowed values, descriptions and authoring annotations come from one machine-readable definition.

Array entries use * in paths. Conditional alternatives show the fields appropriate to their discriminator. Omitted optional values remain unspecified; an empty list is not a clinical negative.

Field reference

format

format

string · Required when the parent is present

Identifies the .usim scenario document used by all consumers.

Field schema

{
  "const": "usim-scenario",
  "type": "string",
  "description": "Identifies the .usim scenario document used by all consumers."
}

formatVersion

formatVersion

string · Required when the parent is present

Identifies the document format used for validation.

Field schema

{
  "const": "2.0",
  "type": "string",
  "description": "Identifies the document format used for validation."
}

Identifier

scenarioId

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "Stable content identity. Publication revisions and delivery instances remain separate records."
}

executionProfile

executionProfile

object · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "id",
    "version",
    "requiredCapabilities",
    "optionalCapabilities"
  ],
  "properties": {
    "id": {
      "pattern": "^[A-Za-z][A-Za-z0-9+.-]*:",
      "type": "string",
      "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
    },
    "version": {
      "type": "string",
      "description": "The version for this entry. Omit optional information that has not been specified."
    },
    "requiredCapabilities": {
      "uniqueItems": true,
      "type": "array",
      "items": {
        "type": "string",
        "description": "The required capabilities for this entry. Omit optional information that has not been specified."
      },
      "description": "Entries for required capabilities. An empty list means no entries have been authored."
    },
    "optionalCapabilities": {
      "uniqueItems": true,
      "type": "array",
      "items": {
        "type": "string",
        "description": "The optional capabilities for this entry. Omit optional information that has not been specified."
      },
      "description": "Entries for optional capabilities. An empty list means no entries have been authored."
    }
  },
  "description": "Declares required and optional execution capabilities. Consumers also inspect populated behavioral fields before running a document."
}

id

executionProfile.id

string · Required when the parent is present

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

  • Pattern: ^[A-Za-z][A-Za-z0-9+.-]*:

Field schema

{
  "pattern": "^[A-Za-z][A-Za-z0-9+.-]*:",
  "type": "string",
  "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
}

version

executionProfile.version

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "The version for this entry. Omit optional information that has not been specified."
}

requiredCapabilities

executionProfile.requiredCapabilities

array · Required when the parent is present

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

Field schema

{
  "uniqueItems": true,
  "type": "array",
  "items": {
    "type": "string",
    "description": "The required capabilities for this entry. Omit optional information that has not been specified."
  },
  "description": "Entries for required capabilities. An empty list means no entries have been authored."
}

*

executionProfile.requiredCapabilities.*

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "The required capabilities for this entry. Omit optional information that has not been specified."
}

optionalCapabilities

executionProfile.optionalCapabilities

array · Required when the parent is present

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

Field schema

{
  "uniqueItems": true,
  "type": "array",
  "items": {
    "type": "string",
    "description": "The optional capabilities for this entry. Omit optional information that has not been specified."
  },
  "description": "Entries for optional capabilities. An empty list means no entries have been authored."
}

*

executionProfile.optionalCapabilities.*

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "The optional capabilities for this entry. Omit optional information that has not been specified."
}

extensions

extensions

object · Optional; an omitted value is not a normal, negative, or zero value

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.

Field schema

{
  "type": "object",
  "patternProperties": {
    "^[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*)+$": {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "version",
        "required",
        "data"
      ],
      "properties": {
        "version": {
          "type": "string"
        },
        "required": {
          "type": "boolean"
        },
        "data": {
          "type": "object",
          "patternProperties": {
            "^(.*)$": {
              "$id": "T0",
              "anyOf": [
                {
                  "type": "null"
                },
                {
                  "type": "boolean"
                },
                {
                  "type": "number"
                },
                {
                  "type": "string"
                },
                {
                  "type": "array",
                  "items": {
                    "$ref": "T0"
                  }
                },
                {
                  "type": "object",
                  "patternProperties": {
                    "^(.*)$": {
                      "$ref": "T0"
                    }
                  }
                }
              ]
            }
          }
        }
      }
    }
  },
  "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."
}

vocabularies

vocabularies

array · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "array",
  "items": {
    "additionalProperties": false,
    "type": "object",
    "required": [
      "id",
      "version",
      "kind",
      "sha256"
    ],
    "properties": {
      "id": {
        "pattern": "^[A-Za-z][A-Za-z0-9+.-]*:",
        "type": "string",
        "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
      },
      "version": {
        "type": "string",
        "description": "The version for this entry. Omit optional information that has not been specified."
      },
      "kind": {
        "anyOf": [
          {
            "const": "concept",
            "type": "string",
            "description": "The required literal value \"concept\"."
          },
          {
            "const": "value-type",
            "type": "string",
            "description": "The required literal value \"value-type\"."
          },
          {
            "const": "unit",
            "type": "string",
            "description": "The required literal value \"unit\"."
          },
          {
            "const": "dimension",
            "type": "string",
            "description": "The required literal value \"dimension\"."
          },
          {
            "const": "value-set",
            "type": "string",
            "description": "The required literal value \"value-set\"."
          }
        ],
        "description": "Select one of the declared kind alternatives; use the fields belonging to that alternative."
      },
      "sha256": {
        "pattern": "^[a-f0-9]{64}$",
        "type": "string",
        "description": "The sha256 for this entry. Omit optional information that has not been specified."
      },
      "assetId": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "reference": {
            "collection": "assets",
            "label": "description"
          }
        },
        "type": "string",
        "description": "Identifier of an existing assets entry. Preserve the referenced entry when editing this field."
      }
    },
    "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."
  },
  "description": "Entries for vocabularies. An empty list means no entries have been authored."
}

*

vocabularies.*

object · Required when the parent is present

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.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "id",
    "version",
    "kind",
    "sha256"
  ],
  "properties": {
    "id": {
      "pattern": "^[A-Za-z][A-Za-z0-9+.-]*:",
      "type": "string",
      "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
    },
    "version": {
      "type": "string",
      "description": "The version for this entry. Omit optional information that has not been specified."
    },
    "kind": {
      "anyOf": [
        {
          "const": "concept",
          "type": "string",
          "description": "The required literal value \"concept\"."
        },
        {
          "const": "value-type",
          "type": "string",
          "description": "The required literal value \"value-type\"."
        },
        {
          "const": "unit",
          "type": "string",
          "description": "The required literal value \"unit\"."
        },
        {
          "const": "dimension",
          "type": "string",
          "description": "The required literal value \"dimension\"."
        },
        {
          "const": "value-set",
          "type": "string",
          "description": "The required literal value \"value-set\"."
        }
      ],
      "description": "Select one of the declared kind alternatives; use the fields belonging to that alternative."
    },
    "sha256": {
      "pattern": "^[a-f0-9]{64}$",
      "type": "string",
      "description": "The sha256 for this entry. Omit optional information that has not been specified."
    },
    "assetId": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "reference": {
          "collection": "assets",
          "label": "description"
        }
      },
      "type": "string",
      "description": "Identifier of an existing assets entry. Preserve the referenced entry when editing this field."
    }
  },
  "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."
}

id

vocabularies.*.id

string · Required when the parent is present

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

  • Pattern: ^[A-Za-z][A-Za-z0-9+.-]*:

Field schema

{
  "pattern": "^[A-Za-z][A-Za-z0-9+.-]*:",
  "type": "string",
  "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
}

version

vocabularies.*.version

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "The version for this entry. Omit optional information that has not been specified."
}

kind

vocabularies.*.kind

Value · Required when the parent is present

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

Allowed values: concept, value-type, unit, dimension, value-set

Field schema

{
  "anyOf": [
    {
      "const": "concept",
      "type": "string",
      "description": "The required literal value \"concept\"."
    },
    {
      "const": "value-type",
      "type": "string",
      "description": "The required literal value \"value-type\"."
    },
    {
      "const": "unit",
      "type": "string",
      "description": "The required literal value \"unit\"."
    },
    {
      "const": "dimension",
      "type": "string",
      "description": "The required literal value \"dimension\"."
    },
    {
      "const": "value-set",
      "type": "string",
      "description": "The required literal value \"value-set\"."
    }
  ],
  "description": "Select one of the declared kind alternatives; use the fields belonging to that alternative."
}

sha256

vocabularies.*.sha256

string · Required when the parent is present

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

  • Pattern: ^[a-f0-9]{64}$

Field schema

{
  "pattern": "^[a-f0-9]{64}$",
  "type": "string",
  "description": "The sha256 for this entry. Omit optional information that has not been specified."
}

Identifier

vocabularies.*.assetId

string · Optional; an omitted value is not a normal, negative, or zero value

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References assets using description as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "assets",
      "label": "description"
    }
  },
  "type": "string",
  "description": "Identifier of an existing assets entry. Preserve the referenced entry when editing this field."
}

dependencies

dependencies

array · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "array",
  "items": {
    "additionalProperties": false,
    "type": "object",
    "required": [
      "id",
      "scenarioId",
      "revision",
      "sha256"
    ],
    "properties": {
      "id": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "authoring": {
            "hidden": true
          }
        },
        "type": "string",
        "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
      },
      "scenarioId": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "authoring": {
            "hidden": true
          }
        },
        "type": "string",
        "description": "The Identifier for this entry. Omit optional information that has not been specified."
      },
      "revision": {
        "minimum": 1,
        "type": "integer",
        "description": "Numeric revision, at least 1. Do not infer an omitted value."
      },
      "sha256": {
        "pattern": "^[a-f0-9]{64}$",
        "type": "string",
        "description": "The sha256 for this entry. Omit optional information that has not been specified."
      }
    },
    "description": "Pinned library content; digest is 64 lowercase hex characters. Floating latest dependencies are prohibited."
  },
  "description": "Entries for dependencies. An empty list means no entries have been authored."
}

*

dependencies.*

object · Required when the parent is present

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

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "id",
    "scenarioId",
    "revision",
    "sha256"
  ],
  "properties": {
    "id": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "authoring": {
          "hidden": true
        }
      },
      "type": "string",
      "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
    },
    "scenarioId": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "authoring": {
          "hidden": true
        }
      },
      "type": "string",
      "description": "The Identifier for this entry. Omit optional information that has not been specified."
    },
    "revision": {
      "minimum": 1,
      "type": "integer",
      "description": "Numeric revision, at least 1. Do not infer an omitted value."
    },
    "sha256": {
      "pattern": "^[a-f0-9]{64}$",
      "type": "string",
      "description": "The sha256 for this entry. Omit optional information that has not been specified."
    }
  },
  "description": "Pinned library content; digest is 64 lowercase hex characters. Floating latest dependencies are prohibited."
}

Identifier

dependencies.*.id

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
}

Identifier

dependencies.*.scenarioId

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "The Identifier for this entry. Omit optional information that has not been specified."
}

revision

dependencies.*.revision

integer · Required when the parent is present

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

  • Minimum: 1

Field schema

{
  "minimum": 1,
  "type": "integer",
  "description": "Numeric revision, at least 1. Do not infer an omitted value."
}

sha256

dependencies.*.sha256

string · Required when the parent is present

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

  • Pattern: ^[a-f0-9]{64}$

Field schema

{
  "pattern": "^[a-f0-9]{64}$",
  "type": "string",
  "description": "The sha256 for this entry. Omit optional information that has not been specified."
}

composition

composition

object · Optional; an omitted value is not a normal, negative, or zero value

Structured composition details. Omitted optional values remain unspecified.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "overrides"
  ],
  "properties": {
    "overrides": {
      "type": "array",
      "items": {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "targetId",
          "path",
          "value"
        ],
        "properties": {
          "targetId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "The Identifier for this entry. Omit optional information that has not been specified."
          },
          "path": {
            "pattern": "^(?:/(?:[^~/]|~[01])*)*$",
            "type": "string",
            "description": "The path for this entry. Omit optional information that has not been specified."
          },
          "value": {
            "$id": "T1",
            "anyOf": [
              {
                "type": "null",
                "description": "The value for this entry. Omit optional information that has not been specified."
              },
              {
                "type": "boolean",
                "description": "Whether value applies. Omitted optional values remain unspecified."
              },
              {
                "type": "number",
                "description": "Numeric value. Do not infer an omitted value."
              },
              {
                "type": "string",
                "description": "The value for this entry. Omit optional information that has not been specified."
              },
              {
                "type": "array",
                "items": {
                  "$ref": "T1",
                  "description": "The value for this entry. Omit optional information that has not been specified."
                },
                "description": "Entries for value. An empty list means no entries have been authored."
              },
              {
                "type": "object",
                "patternProperties": {
                  "^(.*)$": {
                    "$ref": "T1"
                  }
                },
                "description": "Structured value details. Omitted optional values remain unspecified."
              }
            ],
            "description": "Select one of the declared value alternatives; use the fields belonging to that alternative."
          }
        },
        "description": "Explicit overrides against a resolved dependency. Paths must exist; object/array values replace in full. No inferred deep merge."
      },
      "description": "Entries for overrides. An empty list means no entries have been authored."
    }
  },
  "description": "Structured composition details. Omitted optional values remain unspecified."
}

overrides

composition.overrides

array · Required when the parent is present

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

Field schema

{
  "type": "array",
  "items": {
    "additionalProperties": false,
    "type": "object",
    "required": [
      "targetId",
      "path",
      "value"
    ],
    "properties": {
      "targetId": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "authoring": {
            "hidden": true
          }
        },
        "type": "string",
        "description": "The Identifier for this entry. Omit optional information that has not been specified."
      },
      "path": {
        "pattern": "^(?:/(?:[^~/]|~[01])*)*$",
        "type": "string",
        "description": "The path for this entry. Omit optional information that has not been specified."
      },
      "value": {
        "$id": "T1",
        "anyOf": [
          {
            "type": "null",
            "description": "The value for this entry. Omit optional information that has not been specified."
          },
          {
            "type": "boolean",
            "description": "Whether value applies. Omitted optional values remain unspecified."
          },
          {
            "type": "number",
            "description": "Numeric value. Do not infer an omitted value."
          },
          {
            "type": "string",
            "description": "The value for this entry. Omit optional information that has not been specified."
          },
          {
            "type": "array",
            "items": {
              "$ref": "T1",
              "description": "The value for this entry. Omit optional information that has not been specified."
            },
            "description": "Entries for value. An empty list means no entries have been authored."
          },
          {
            "type": "object",
            "patternProperties": {
              "^(.*)$": {
                "$ref": "T1"
              }
            },
            "description": "Structured value details. Omitted optional values remain unspecified."
          }
        ],
        "description": "Select one of the declared value alternatives; use the fields belonging to that alternative."
      }
    },
    "description": "Explicit overrides against a resolved dependency. Paths must exist; object/array values replace in full. No inferred deep merge."
  },
  "description": "Entries for overrides. An empty list means no entries have been authored."
}

*

composition.overrides.*

object · Required when the parent is present

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

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "targetId",
    "path",
    "value"
  ],
  "properties": {
    "targetId": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "authoring": {
          "hidden": true
        }
      },
      "type": "string",
      "description": "The Identifier for this entry. Omit optional information that has not been specified."
    },
    "path": {
      "pattern": "^(?:/(?:[^~/]|~[01])*)*$",
      "type": "string",
      "description": "The path for this entry. Omit optional information that has not been specified."
    },
    "value": {
      "$id": "T1",
      "anyOf": [
        {
          "type": "null",
          "description": "The value for this entry. Omit optional information that has not been specified."
        },
        {
          "type": "boolean",
          "description": "Whether value applies. Omitted optional values remain unspecified."
        },
        {
          "type": "number",
          "description": "Numeric value. Do not infer an omitted value."
        },
        {
          "type": "string",
          "description": "The value for this entry. Omit optional information that has not been specified."
        },
        {
          "type": "array",
          "items": {
            "$ref": "T1",
            "description": "The value for this entry. Omit optional information that has not been specified."
          },
          "description": "Entries for value. An empty list means no entries have been authored."
        },
        {
          "type": "object",
          "patternProperties": {
            "^(.*)$": {
              "$ref": "T1"
            }
          },
          "description": "Structured value details. Omitted optional values remain unspecified."
        }
      ],
      "description": "Select one of the declared value alternatives; use the fields belonging to that alternative."
    }
  },
  "description": "Explicit overrides against a resolved dependency. Paths must exist; object/array values replace in full. No inferred deep merge."
}

Identifier

composition.overrides.*.targetId

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "The Identifier for this entry. Omit optional information that has not been specified."
}

path

composition.overrides.*.path

string · Required when the parent is present

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

  • Pattern: ^(?:/(?:[^~/]|~[01])*)*$

Field schema

{
  "pattern": "^(?:/(?:[^~/]|~[01])*)*$",
  "type": "string",
  "description": "The path for this entry. Omit optional information that has not been specified."
}

value

composition.overrides.*.value

Value · Required when the parent is present

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

Field schema

{
  "$id": "T1",
  "anyOf": [
    {
      "type": "null",
      "description": "The value for this entry. Omit optional information that has not been specified."
    },
    {
      "type": "boolean",
      "description": "Whether value applies. Omitted optional values remain unspecified."
    },
    {
      "type": "number",
      "description": "Numeric value. Do not infer an omitted value."
    },
    {
      "type": "string",
      "description": "The value for this entry. Omit optional information that has not been specified."
    },
    {
      "type": "array",
      "items": {
        "$ref": "T1",
        "description": "The value for this entry. Omit optional information that has not been specified."
      },
      "description": "Entries for value. An empty list means no entries have been authored."
    },
    {
      "type": "object",
      "patternProperties": {
        "^(.*)$": {
          "$ref": "T1"
        }
      },
      "description": "Structured value details. Omitted optional values remain unspecified."
    }
  ],
  "description": "Select one of the declared value alternatives; use the fields belonging to that alternative."
}

outputs

outputs

object · Optional; an omitted value is not a normal, negative, or zero value

Structured outputs details. Omitted optional values remain unspecified.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "views"
  ],
  "properties": {
    "views": {
      "type": "array",
      "items": {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "audience",
          "kind",
          "includeIds"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
          },
          "audience": {
            "anyOf": [
              {
                "const": "learner",
                "type": "string",
                "description": "The required literal value \"learner\"."
              },
              {
                "const": "facilitator",
                "type": "string",
                "description": "The required literal value \"facilitator\"."
              }
            ],
            "title": "Audience",
            "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
          },
          "kind": {
            "anyOf": [
              {
                "const": "brief",
                "type": "string",
                "description": "The required literal value \"brief\"."
              },
              {
                "const": "guide",
                "type": "string",
                "description": "The required literal value \"guide\"."
              },
              {
                "const": "event-map",
                "type": "string",
                "description": "The required literal value \"event-map\"."
              },
              {
                "const": "checklist",
                "type": "string",
                "description": "The required literal value \"checklist\"."
              }
            ],
            "description": "Select one of the declared kind alternatives; use the fields belonging to that alternative."
          },
          "includeIds": {
            "minItems": 0,
            "uniqueItems": true,
            "type": "array",
            "items": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "*",
                  "label": "id"
                }
              },
              "type": "string",
              "description": "Identifier of an existing * entry. Preserve the referenced entry when editing this field."
            },
            "description": "Entries for include ids. An empty list means no entries have been authored."
          }
        },
        "description": "Explicit content selection filtered by audience. Learner views exclude facilitator-only content even when named in includeIds."
      },
      "description": "Entries for views. An empty list means no entries have been authored."
    }
  },
  "description": "Structured outputs details. Omitted optional values remain unspecified."
}

views

outputs.views

array · Required when the parent is present

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

Field schema

{
  "type": "array",
  "items": {
    "additionalProperties": false,
    "type": "object",
    "required": [
      "id",
      "audience",
      "kind",
      "includeIds"
    ],
    "properties": {
      "id": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "authoring": {
            "hidden": true
          }
        },
        "type": "string",
        "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
      },
      "audience": {
        "anyOf": [
          {
            "const": "learner",
            "type": "string",
            "description": "The required literal value \"learner\"."
          },
          {
            "const": "facilitator",
            "type": "string",
            "description": "The required literal value \"facilitator\"."
          }
        ],
        "title": "Audience",
        "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
      },
      "kind": {
        "anyOf": [
          {
            "const": "brief",
            "type": "string",
            "description": "The required literal value \"brief\"."
          },
          {
            "const": "guide",
            "type": "string",
            "description": "The required literal value \"guide\"."
          },
          {
            "const": "event-map",
            "type": "string",
            "description": "The required literal value \"event-map\"."
          },
          {
            "const": "checklist",
            "type": "string",
            "description": "The required literal value \"checklist\"."
          }
        ],
        "description": "Select one of the declared kind alternatives; use the fields belonging to that alternative."
      },
      "includeIds": {
        "minItems": 0,
        "uniqueItems": true,
        "type": "array",
        "items": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "*",
              "label": "id"
            }
          },
          "type": "string",
          "description": "Identifier of an existing * entry. Preserve the referenced entry when editing this field."
        },
        "description": "Entries for include ids. An empty list means no entries have been authored."
      }
    },
    "description": "Explicit content selection filtered by audience. Learner views exclude facilitator-only content even when named in includeIds."
  },
  "description": "Entries for views. An empty list means no entries have been authored."
}

*

outputs.views.*

object · Required when the parent is present

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

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "id",
    "audience",
    "kind",
    "includeIds"
  ],
  "properties": {
    "id": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "authoring": {
          "hidden": true
        }
      },
      "type": "string",
      "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
    },
    "audience": {
      "anyOf": [
        {
          "const": "learner",
          "type": "string",
          "description": "The required literal value \"learner\"."
        },
        {
          "const": "facilitator",
          "type": "string",
          "description": "The required literal value \"facilitator\"."
        }
      ],
      "title": "Audience",
      "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
    },
    "kind": {
      "anyOf": [
        {
          "const": "brief",
          "type": "string",
          "description": "The required literal value \"brief\"."
        },
        {
          "const": "guide",
          "type": "string",
          "description": "The required literal value \"guide\"."
        },
        {
          "const": "event-map",
          "type": "string",
          "description": "The required literal value \"event-map\"."
        },
        {
          "const": "checklist",
          "type": "string",
          "description": "The required literal value \"checklist\"."
        }
      ],
      "description": "Select one of the declared kind alternatives; use the fields belonging to that alternative."
    },
    "includeIds": {
      "minItems": 0,
      "uniqueItems": true,
      "type": "array",
      "items": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "reference": {
            "collection": "*",
            "label": "id"
          }
        },
        "type": "string",
        "description": "Identifier of an existing * entry. Preserve the referenced entry when editing this field."
      },
      "description": "Entries for include ids. An empty list means no entries have been authored."
    }
  },
  "description": "Explicit content selection filtered by audience. Learner views exclude facilitator-only content even when named in includeIds."
}

Identifier

outputs.views.*.id

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
}

Audience

outputs.views.*.audience

Value · Required when the parent is present

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

Allowed values: learner, facilitator

Field schema

{
  "anyOf": [
    {
      "const": "learner",
      "type": "string",
      "description": "The required literal value \"learner\"."
    },
    {
      "const": "facilitator",
      "type": "string",
      "description": "The required literal value \"facilitator\"."
    }
  ],
  "title": "Audience",
  "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
}

kind

outputs.views.*.kind

Value · Required when the parent is present

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

Allowed values: brief, guide, event-map, checklist

Field schema

{
  "anyOf": [
    {
      "const": "brief",
      "type": "string",
      "description": "The required literal value \"brief\"."
    },
    {
      "const": "guide",
      "type": "string",
      "description": "The required literal value \"guide\"."
    },
    {
      "const": "event-map",
      "type": "string",
      "description": "The required literal value \"event-map\"."
    },
    {
      "const": "checklist",
      "type": "string",
      "description": "The required literal value \"checklist\"."
    }
  ],
  "description": "Select one of the declared kind alternatives; use the fields belonging to that alternative."
}

includeIds

outputs.views.*.includeIds

array · Required when the parent is present

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

Field schema

{
  "minItems": 0,
  "uniqueItems": true,
  "type": "array",
  "items": {
    "minLength": 1,
    "maxLength": 128,
    "pattern": "\\S",
    "title": "Identifier",
    "x-usim": {
      "reference": {
        "collection": "*",
        "label": "id"
      }
    },
    "type": "string",
    "description": "Identifier of an existing * entry. Preserve the referenced entry when editing this field."
  },
  "description": "Entries for include ids. An empty list means no entries have been authored."
}

Identifier

outputs.views.*.includeIds.*

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References * using id as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "*",
      "label": "id"
    }
  },
  "type": "string",
  "description": "Identifier of an existing * entry. Preserve the referenced entry when editing this field."
}

metadata

metadata

object · Required when the parent is present

Case identification, authorship, and the teaching context used to find and select this scenario.

Field schema

{
  "additionalProperties": false,
  "x-usim": {
    "authoring": {
      "columns": 3
    }
  },
  "type": "object",
  "required": [
    "title",
    "summary",
    "contributors",
    "revision",
    "license",
    "review",
    "sources"
  ],
  "properties": {
    "title": {
      "title": "Title",
      "maxLength": 160,
      "x-usim": {
        "authoring": {
          "span": "full",
          "order": 0
        }
      },
      "type": "string",
      "description": "The internal case title used by authors. Campus uses the separate learner title."
    },
    "summary": {
      "title": "Description",
      "maxLength": 8000,
      "x-usim": {
        "authoring": {
          "editor": "textarea",
          "span": "full",
          "order": 1
        }
      },
      "type": "string",
      "description": "The internal scenario premise, scope, and intended learning activity. This summary is not shown in Campus."
    },
    "contributors": {
      "minItems": 1,
      "title": "Author",
      "x-usim": {
        "authoring": {
          "span": "full",
          "addLabel": "Add contributor",
          "editor": "credits",
          "order": 2
        }
      },
      "type": "array",
      "items": {
        "additionalProperties": false,
        "x-usim": {
          "authoring": {}
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "roles"
        ],
        "properties": {
          "id": {
            "title": "Identifier",
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Stable contributor identifier used by review attribution."
          },
          "name": {
            "title": "Name",
            "maxLength": 160,
            "x-usim": {
              "authoring": {}
            },
            "type": "string",
            "description": "The person or team credited with creating this scenario."
          },
          "roles": {
            "minItems": 1,
            "uniqueItems": true,
            "type": "array",
            "items": {
              "title": "Role",
              "maxLength": 160,
              "x-usim": {
                "authoring": {}
              },
              "type": "string",
              "description": "One credited contribution role."
            },
            "description": "The roles this contributor performed for this content.",
            "title": "Contribution roles"
          },
          "affiliation": {
            "title": "Affiliation",
            "maxLength": 240,
            "x-usim": {
              "authoring": {}
            },
            "type": "string",
            "description": "The contributor’s organization or institutional affiliation."
          }
        },
        "description": "A named contributor with stable identity and credited roles."
      },
      "description": "People and organizations credited for authorship, review, or other contributions."
    },
    "revision": {
      "minimum": 1,
      "title": "Content revision",
      "type": "integer",
      "description": "The authored content revision, independent of a storage revision identifier.",
      "x-usim": {
        "authoring": {
          "group": "Attribution and review",
          "defaultOpen": false,
          "order": 20,
          "span": "full"
        }
      }
    },
    "license": {
      "title": "License",
      "additionalProperties": false,
      "x-usim": {
        "authoring": {
          "group": "Attribution and review",
          "defaultOpen": false,
          "order": 21,
          "span": "full"
        }
      },
      "type": "object",
      "required": [
        "identifier"
      ],
      "properties": {
        "identifier": {
          "title": "License",
          "maxLength": 240,
          "x-usim": {
            "authoring": {
              "suggestions": [
                "All rights reserved",
                "CC BY 4.0",
                "CC BY-SA 4.0",
                "CC BY-NC 4.0",
                "CC BY-NC-SA 4.0",
                "CC BY-ND 4.0",
                "CC BY-NC-ND 4.0",
                "CC0 1.0"
              ]
            }
          },
          "type": "string",
          "description": "The license identifier or explicit rights statement. Suggested reuse licenses are advisory; preserve custom terms."
        },
        "textAssetId": {
          "title": "Identifier",
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "x-usim": {
            "authoring": {
              "hidden": true
            }
          },
          "type": "string",
          "description": "An optional asset containing the complete license text."
        }
      },
      "description": "The terms under which this scenario may be reused."
    },
    "review": {
      "title": "Review status and evidence",
      "additionalProperties": false,
      "x-usim": {
        "authoring": {
          "group": "Attribution and review",
          "defaultOpen": false,
          "order": 22,
          "span": "full"
        }
      },
      "type": "object",
      "required": [
        "status",
        "reviewerIds",
        "sourceIds"
      ],
      "properties": {
        "status": {
          "type": "string",
          "title": "Review status",
          "enum": [
            "draft",
            "reviewed",
            "needs-review"
          ],
          "description": "Review state stored as draft, reviewed, or needs-review. Builder displays Draft, Reviewed, and Needs review."
        },
        "reviewedAt": {
          "title": "Reviewed at",
          "maxLength": 80,
          "x-usim": {
            "authoring": {}
          },
          "type": "string",
          "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."
        },
        "reviewerIds": {
          "uniqueItems": true,
          "type": "array",
          "items": {
            "title": "Identifier",
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "x-usim": {
              "reference": {
                "collection": "metadata.contributors",
                "label": "name"
              }
            },
            "type": "string",
            "description": "A contributor credited with reviewing this revision."
          },
          "description": "Contributor identifiers for the reviewers.",
          "title": "Reviewers"
        },
        "sourceIds": {
          "uniqueItems": true,
          "type": "array",
          "items": {
            "title": "Identifier",
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "x-usim": {
              "reference": {
                "collection": "metadata.sources",
                "label": "citation"
              }
            },
            "type": "string",
            "description": "A source cited by this review."
          },
          "description": "Stable metadata.sources IDs selected as evidence for the recorded review. Citation edits and source reordering preserve these links.",
          "title": "Review sources",
          "x-usim": {
            "authoring": {
              "addLabel": "Add source"
            }
          }
        }
      },
      "description": "Clinical review status, attribution, date, and supporting sources."
    },
    "sources": {
      "type": "array",
      "items": {
        "title": "Source",
        "additionalProperties": false,
        "x-usim": {
          "authoring": {}
        },
        "type": "object",
        "required": [
          "id",
          "citation"
        ],
        "properties": {
          "id": {
            "title": "Identifier",
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Stable source identifier used by review references."
          },
          "citation": {
            "title": "Citation",
            "maxLength": 8000,
            "x-usim": {
              "authoring": {
                "editor": "textarea"
              }
            },
            "type": "string",
            "description": "The complete bibliographic citation or source attribution."
          },
          "url": {
            "pattern": "^https://",
            "title": "Source URL",
            "type": "string",
            "description": "An HTTPS location where this source can be found."
          },
          "accessedAt": {
            "title": "Accessed at",
            "maxLength": 80,
            "x-usim": {
              "authoring": {}
            },
            "type": "string",
            "description": "The date the linked source was accessed."
          }
        },
        "description": "A source citation with stable identity and optional web location."
      },
      "description": "Citations supporting the scenario and its clinical content.",
      "title": "Sources",
      "x-usim": {
        "authoring": {
          "addLabel": "Add source",
          "hidden": true,
          "group": "Attribution and review",
          "defaultOpen": false,
          "order": 23,
          "span": "full"
        }
      }
    },
    "diagnosis": {
      "title": "Diagnosis or case theme",
      "maxLength": 1000,
      "x-usim": {
        "authoring": {
          "editor": "diagnosis",
          "span": "full",
          "group": "Scenario context",
          "order": 3
        }
      },
      "type": "string",
      "description": "The main diagnosis or case theme that guides the scenario."
    },
    "specialty": {
      "title": "Specialty",
      "maxLength": 1000,
      "x-usim": {
        "authoring": {
          "editor": "specialty",
          "group": "Scenario context",
          "order": 4
        }
      },
      "type": "string",
      "description": "The clinical specialty or specialties relevant to this scenario."
    },
    "level": {
      "title": "Learner level",
      "maxLength": 1000,
      "x-usim": {
        "authoring": {
          "editor": "level",
          "group": "Scenario context",
          "order": 5
        }
      },
      "type": "string",
      "description": "The intended learner level and experience."
    },
    "durationMinutes": {
      "title": "Suggested duration · minutes",
      "minimum": 1,
      "maximum": 1440,
      "x-usim": {
        "unit": "min",
        "authoring": {
          "group": "Scenario context",
          "order": 6
        }
      },
      "type": "number",
      "description": "The suggested scenario duration in minutes; this does not control the simulation clock."
    },
    "learnerTitle": {
      "title": "Learner title",
      "maxLength": 160,
      "x-usim": {
        "authoring": {
          "group": "Learner-facing details",
          "span": "full",
          "defaultOpen": true,
          "order": 7
        }
      },
      "type": "string",
      "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."
    },
    "learnerDescription": {
      "title": "Learner description",
      "maxLength": 2000,
      "x-usim": {
        "authoring": {
          "editor": "textarea",
          "group": "Learner-facing details",
          "span": "full",
          "order": 8
        }
      },
      "type": "string",
      "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."
    },
    "coverPhoto": {
      "title": "Cover photo",
      "additionalProperties": false,
      "x-usim": {
        "authoring": {
          "editor": "cover-photo",
          "group": "Learner-facing details",
          "span": "full",
          "order": 9
        },
        "import": false
      },
      "type": "object",
      "required": [
        "dataUrl",
        "description"
      ],
      "properties": {
        "dataUrl": {
          "title": "Cover photo",
          "maxLength": 12582912,
          "pattern": "^data:image/(png|jpeg|webp);base64,[A-Za-z0-9+/]+={0,2}$",
          "type": "string",
          "description": "Embedded PNG, JPEG, or WebP data URL populated by the cover photo upload control."
        },
        "description": {
          "title": "Photo description",
          "maxLength": 1000,
          "x-usim": {
            "authoring": {}
          },
          "type": "string",
          "description": "Accessible description of the cover photo for learners who cannot see it. Describe visible content without revealing the teaching point."
        }
      },
      "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."
    }
  },
  "description": "Case identification, authorship, and the teaching context used to find and select this scenario."
}

Title

metadata.title

string · Required when the parent is present

The internal case title used by authors. Campus uses the separate learner title.

  • Maximum length: 160 characters

Field schema

{
  "title": "Title",
  "maxLength": 160,
  "x-usim": {
    "authoring": {
      "span": "full",
      "order": 0
    }
  },
  "type": "string",
  "description": "The internal case title used by authors. Campus uses the separate learner title."
}

Description

metadata.summary

string · Required when the parent is present

The internal scenario premise, scope, and intended learning activity. This summary is not shown in Campus.

  • Maximum length: 8000 characters

Field schema

{
  "title": "Description",
  "maxLength": 8000,
  "x-usim": {
    "authoring": {
      "editor": "textarea",
      "span": "full",
      "order": 1
    }
  },
  "type": "string",
  "description": "The internal scenario premise, scope, and intended learning activity. This summary is not shown in Campus."
}

Author

metadata.contributors

array · Required when the parent is present

People and organizations credited for authorship, review, or other contributions.

Field schema

{
  "minItems": 1,
  "title": "Author",
  "x-usim": {
    "authoring": {
      "span": "full",
      "addLabel": "Add contributor",
      "editor": "credits",
      "order": 2
    }
  },
  "type": "array",
  "items": {
    "additionalProperties": false,
    "x-usim": {
      "authoring": {}
    },
    "type": "object",
    "required": [
      "id",
      "name",
      "roles"
    ],
    "properties": {
      "id": {
        "title": "Identifier",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "x-usim": {
          "authoring": {
            "hidden": true
          }
        },
        "type": "string",
        "description": "Stable contributor identifier used by review attribution."
      },
      "name": {
        "title": "Name",
        "maxLength": 160,
        "x-usim": {
          "authoring": {}
        },
        "type": "string",
        "description": "The person or team credited with creating this scenario."
      },
      "roles": {
        "minItems": 1,
        "uniqueItems": true,
        "type": "array",
        "items": {
          "title": "Role",
          "maxLength": 160,
          "x-usim": {
            "authoring": {}
          },
          "type": "string",
          "description": "One credited contribution role."
        },
        "description": "The roles this contributor performed for this content.",
        "title": "Contribution roles"
      },
      "affiliation": {
        "title": "Affiliation",
        "maxLength": 240,
        "x-usim": {
          "authoring": {}
        },
        "type": "string",
        "description": "The contributor’s organization or institutional affiliation."
      }
    },
    "description": "A named contributor with stable identity and credited roles."
  },
  "description": "People and organizations credited for authorship, review, or other contributions."
}

*

metadata.contributors.*

object · Required when the parent is present

A named contributor with stable identity and credited roles.

Field schema

{
  "additionalProperties": false,
  "x-usim": {
    "authoring": {}
  },
  "type": "object",
  "required": [
    "id",
    "name",
    "roles"
  ],
  "properties": {
    "id": {
      "title": "Identifier",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "x-usim": {
        "authoring": {
          "hidden": true
        }
      },
      "type": "string",
      "description": "Stable contributor identifier used by review attribution."
    },
    "name": {
      "title": "Name",
      "maxLength": 160,
      "x-usim": {
        "authoring": {}
      },
      "type": "string",
      "description": "The person or team credited with creating this scenario."
    },
    "roles": {
      "minItems": 1,
      "uniqueItems": true,
      "type": "array",
      "items": {
        "title": "Role",
        "maxLength": 160,
        "x-usim": {
          "authoring": {}
        },
        "type": "string",
        "description": "One credited contribution role."
      },
      "description": "The roles this contributor performed for this content.",
      "title": "Contribution roles"
    },
    "affiliation": {
      "title": "Affiliation",
      "maxLength": 240,
      "x-usim": {
        "authoring": {}
      },
      "type": "string",
      "description": "The contributor’s organization or institutional affiliation."
    }
  },
  "description": "A named contributor with stable identity and credited roles."
}

Identifier

metadata.contributors.*.id

string · Required when the parent is present

Stable contributor identifier used by review attribution.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "title": "Identifier",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "Stable contributor identifier used by review attribution."
}

Name

metadata.contributors.*.name

string · Required when the parent is present

The person or team credited with creating this scenario.

  • Maximum length: 160 characters

Field schema

{
  "title": "Name",
  "maxLength": 160,
  "x-usim": {
    "authoring": {}
  },
  "type": "string",
  "description": "The person or team credited with creating this scenario."
}

Contribution roles

metadata.contributors.*.roles

array · Required when the parent is present

The roles this contributor performed for this content.

Field schema

{
  "minItems": 1,
  "uniqueItems": true,
  "type": "array",
  "items": {
    "title": "Role",
    "maxLength": 160,
    "x-usim": {
      "authoring": {}
    },
    "type": "string",
    "description": "One credited contribution role."
  },
  "description": "The roles this contributor performed for this content.",
  "title": "Contribution roles"
}

Role

metadata.contributors.*.roles.*

string · Required when the parent is present

One credited contribution role.

  • Maximum length: 160 characters

Field schema

{
  "title": "Role",
  "maxLength": 160,
  "x-usim": {
    "authoring": {}
  },
  "type": "string",
  "description": "One credited contribution role."
}

Affiliation

metadata.contributors.*.affiliation

string · Optional; an omitted value is not a normal, negative, or zero value

The contributor’s organization or institutional affiliation.

  • Maximum length: 240 characters

Field schema

{
  "title": "Affiliation",
  "maxLength": 240,
  "x-usim": {
    "authoring": {}
  },
  "type": "string",
  "description": "The contributor’s organization or institutional affiliation."
}

Content revision

metadata.revision

integer · Required when the parent is present

The authored content revision, independent of a storage revision identifier.

  • Minimum: 1

Field schema

{
  "minimum": 1,
  "title": "Content revision",
  "type": "integer",
  "description": "The authored content revision, independent of a storage revision identifier.",
  "x-usim": {
    "authoring": {
      "group": "Attribution and review",
      "defaultOpen": false,
      "order": 20,
      "span": "full"
    }
  }
}

License

metadata.license

object · Required when the parent is present

The terms under which this scenario may be reused.

Field schema

{
  "title": "License",
  "additionalProperties": false,
  "x-usim": {
    "authoring": {
      "group": "Attribution and review",
      "defaultOpen": false,
      "order": 21,
      "span": "full"
    }
  },
  "type": "object",
  "required": [
    "identifier"
  ],
  "properties": {
    "identifier": {
      "title": "License",
      "maxLength": 240,
      "x-usim": {
        "authoring": {
          "suggestions": [
            "All rights reserved",
            "CC BY 4.0",
            "CC BY-SA 4.0",
            "CC BY-NC 4.0",
            "CC BY-NC-SA 4.0",
            "CC BY-ND 4.0",
            "CC BY-NC-ND 4.0",
            "CC0 1.0"
          ]
        }
      },
      "type": "string",
      "description": "The license identifier or explicit rights statement. Suggested reuse licenses are advisory; preserve custom terms."
    },
    "textAssetId": {
      "title": "Identifier",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "x-usim": {
        "authoring": {
          "hidden": true
        }
      },
      "type": "string",
      "description": "An optional asset containing the complete license text."
    }
  },
  "description": "The terms under which this scenario may be reused."
}

License

metadata.license.identifier

string · Required when the parent is present

The license identifier or explicit rights statement. Suggested reuse licenses are advisory; preserve custom terms.

  • Maximum length: 240 characters

Field schema

{
  "title": "License",
  "maxLength": 240,
  "x-usim": {
    "authoring": {
      "suggestions": [
        "All rights reserved",
        "CC BY 4.0",
        "CC BY-SA 4.0",
        "CC BY-NC 4.0",
        "CC BY-NC-SA 4.0",
        "CC BY-ND 4.0",
        "CC BY-NC-ND 4.0",
        "CC0 1.0"
      ]
    }
  },
  "type": "string",
  "description": "The license identifier or explicit rights statement. Suggested reuse licenses are advisory; preserve custom terms."
}

Identifier

metadata.license.textAssetId

string · Optional; an omitted value is not a normal, negative, or zero value

An optional asset containing the complete license text.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "title": "Identifier",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "An optional asset containing the complete license text."
}

Review status and evidence

metadata.review

object · Required when the parent is present

Clinical review status, attribution, date, and supporting sources.

Field schema

{
  "title": "Review status and evidence",
  "additionalProperties": false,
  "x-usim": {
    "authoring": {
      "group": "Attribution and review",
      "defaultOpen": false,
      "order": 22,
      "span": "full"
    }
  },
  "type": "object",
  "required": [
    "status",
    "reviewerIds",
    "sourceIds"
  ],
  "properties": {
    "status": {
      "type": "string",
      "title": "Review status",
      "enum": [
        "draft",
        "reviewed",
        "needs-review"
      ],
      "description": "Review state stored as draft, reviewed, or needs-review. Builder displays Draft, Reviewed, and Needs review."
    },
    "reviewedAt": {
      "title": "Reviewed at",
      "maxLength": 80,
      "x-usim": {
        "authoring": {}
      },
      "type": "string",
      "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."
    },
    "reviewerIds": {
      "uniqueItems": true,
      "type": "array",
      "items": {
        "title": "Identifier",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "x-usim": {
          "reference": {
            "collection": "metadata.contributors",
            "label": "name"
          }
        },
        "type": "string",
        "description": "A contributor credited with reviewing this revision."
      },
      "description": "Contributor identifiers for the reviewers.",
      "title": "Reviewers"
    },
    "sourceIds": {
      "uniqueItems": true,
      "type": "array",
      "items": {
        "title": "Identifier",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "x-usim": {
          "reference": {
            "collection": "metadata.sources",
            "label": "citation"
          }
        },
        "type": "string",
        "description": "A source cited by this review."
      },
      "description": "Stable metadata.sources IDs selected as evidence for the recorded review. Citation edits and source reordering preserve these links.",
      "title": "Review sources",
      "x-usim": {
        "authoring": {
          "addLabel": "Add source"
        }
      }
    }
  },
  "description": "Clinical review status, attribution, date, and supporting sources."
}

Review status

metadata.review.status

string · Required when the parent is present

Review state stored as draft, reviewed, or needs-review. Builder displays Draft, Reviewed, and Needs review.

Allowed values: draft, reviewed, needs-review

Field schema

{
  "type": "string",
  "title": "Review status",
  "enum": [
    "draft",
    "reviewed",
    "needs-review"
  ],
  "description": "Review state stored as draft, reviewed, or needs-review. Builder displays Draft, Reviewed, and Needs review."
}

Reviewed at

metadata.review.reviewedAt

string · Optional; an omitted value is not a normal, negative, or zero value

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.

  • Maximum length: 80 characters

Field schema

{
  "title": "Reviewed at",
  "maxLength": 80,
  "x-usim": {
    "authoring": {}
  },
  "type": "string",
  "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."
}

Reviewers

metadata.review.reviewerIds

array · Required when the parent is present

Contributor identifiers for the reviewers.

Field schema

{
  "uniqueItems": true,
  "type": "array",
  "items": {
    "title": "Identifier",
    "minLength": 1,
    "maxLength": 128,
    "pattern": "\\S",
    "x-usim": {
      "reference": {
        "collection": "metadata.contributors",
        "label": "name"
      }
    },
    "type": "string",
    "description": "A contributor credited with reviewing this revision."
  },
  "description": "Contributor identifiers for the reviewers.",
  "title": "Reviewers"
}

Identifier

metadata.review.reviewerIds.*

string · Required when the parent is present

A contributor credited with reviewing this revision.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References metadata.contributors using name as the display label.

Field schema

{
  "title": "Identifier",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "x-usim": {
    "reference": {
      "collection": "metadata.contributors",
      "label": "name"
    }
  },
  "type": "string",
  "description": "A contributor credited with reviewing this revision."
}

Review sources

metadata.review.sourceIds

array · Required when the parent is present

Stable metadata.sources IDs selected as evidence for the recorded review. Citation edits and source reordering preserve these links.

Field schema

{
  "uniqueItems": true,
  "type": "array",
  "items": {
    "title": "Identifier",
    "minLength": 1,
    "maxLength": 128,
    "pattern": "\\S",
    "x-usim": {
      "reference": {
        "collection": "metadata.sources",
        "label": "citation"
      }
    },
    "type": "string",
    "description": "A source cited by this review."
  },
  "description": "Stable metadata.sources IDs selected as evidence for the recorded review. Citation edits and source reordering preserve these links.",
  "title": "Review sources",
  "x-usim": {
    "authoring": {
      "addLabel": "Add source"
    }
  }
}

Identifier

metadata.review.sourceIds.*

string · Required when the parent is present

A source cited by this review.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References metadata.sources using citation as the display label.

Field schema

{
  "title": "Identifier",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "x-usim": {
    "reference": {
      "collection": "metadata.sources",
      "label": "citation"
    }
  },
  "type": "string",
  "description": "A source cited by this review."
}

Sources

metadata.sources

array · Required when the parent is present

Citations supporting the scenario and its clinical content.

Field schema

{
  "type": "array",
  "items": {
    "title": "Source",
    "additionalProperties": false,
    "x-usim": {
      "authoring": {}
    },
    "type": "object",
    "required": [
      "id",
      "citation"
    ],
    "properties": {
      "id": {
        "title": "Identifier",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "x-usim": {
          "authoring": {
            "hidden": true
          }
        },
        "type": "string",
        "description": "Stable source identifier used by review references."
      },
      "citation": {
        "title": "Citation",
        "maxLength": 8000,
        "x-usim": {
          "authoring": {
            "editor": "textarea"
          }
        },
        "type": "string",
        "description": "The complete bibliographic citation or source attribution."
      },
      "url": {
        "pattern": "^https://",
        "title": "Source URL",
        "type": "string",
        "description": "An HTTPS location where this source can be found."
      },
      "accessedAt": {
        "title": "Accessed at",
        "maxLength": 80,
        "x-usim": {
          "authoring": {}
        },
        "type": "string",
        "description": "The date the linked source was accessed."
      }
    },
    "description": "A source citation with stable identity and optional web location."
  },
  "description": "Citations supporting the scenario and its clinical content.",
  "title": "Sources",
  "x-usim": {
    "authoring": {
      "addLabel": "Add source",
      "hidden": true,
      "group": "Attribution and review",
      "defaultOpen": false,
      "order": 23,
      "span": "full"
    }
  }
}

Source

metadata.sources.*

object · Required when the parent is present

A source citation with stable identity and optional web location.

Field schema

{
  "title": "Source",
  "additionalProperties": false,
  "x-usim": {
    "authoring": {}
  },
  "type": "object",
  "required": [
    "id",
    "citation"
  ],
  "properties": {
    "id": {
      "title": "Identifier",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "x-usim": {
        "authoring": {
          "hidden": true
        }
      },
      "type": "string",
      "description": "Stable source identifier used by review references."
    },
    "citation": {
      "title": "Citation",
      "maxLength": 8000,
      "x-usim": {
        "authoring": {
          "editor": "textarea"
        }
      },
      "type": "string",
      "description": "The complete bibliographic citation or source attribution."
    },
    "url": {
      "pattern": "^https://",
      "title": "Source URL",
      "type": "string",
      "description": "An HTTPS location where this source can be found."
    },
    "accessedAt": {
      "title": "Accessed at",
      "maxLength": 80,
      "x-usim": {
        "authoring": {}
      },
      "type": "string",
      "description": "The date the linked source was accessed."
    }
  },
  "description": "A source citation with stable identity and optional web location."
}

Identifier

metadata.sources.*.id

string · Required when the parent is present

Stable source identifier used by review references.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "title": "Identifier",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "Stable source identifier used by review references."
}

Citation

metadata.sources.*.citation

string · Required when the parent is present

The complete bibliographic citation or source attribution.

  • Maximum length: 8000 characters

Field schema

{
  "title": "Citation",
  "maxLength": 8000,
  "x-usim": {
    "authoring": {
      "editor": "textarea"
    }
  },
  "type": "string",
  "description": "The complete bibliographic citation or source attribution."
}

Source URL

metadata.sources.*.url

string · Optional; an omitted value is not a normal, negative, or zero value

An HTTPS location where this source can be found.

  • Pattern: ^https://

Field schema

{
  "pattern": "^https://",
  "title": "Source URL",
  "type": "string",
  "description": "An HTTPS location where this source can be found."
}

Accessed at

metadata.sources.*.accessedAt

string · Optional; an omitted value is not a normal, negative, or zero value

The date the linked source was accessed.

  • Maximum length: 80 characters

Field schema

{
  "title": "Accessed at",
  "maxLength": 80,
  "x-usim": {
    "authoring": {}
  },
  "type": "string",
  "description": "The date the linked source was accessed."
}

Diagnosis or case theme

metadata.diagnosis

string · Optional; an omitted value is not a normal, negative, or zero value

The main diagnosis or case theme that guides the scenario.

  • Maximum length: 1000 characters

Field schema

{
  "title": "Diagnosis or case theme",
  "maxLength": 1000,
  "x-usim": {
    "authoring": {
      "editor": "diagnosis",
      "span": "full",
      "group": "Scenario context",
      "order": 3
    }
  },
  "type": "string",
  "description": "The main diagnosis or case theme that guides the scenario."
}

Specialty

metadata.specialty

string · Optional; an omitted value is not a normal, negative, or zero value

The clinical specialty or specialties relevant to this scenario.

  • Maximum length: 1000 characters

Field schema

{
  "title": "Specialty",
  "maxLength": 1000,
  "x-usim": {
    "authoring": {
      "editor": "specialty",
      "group": "Scenario context",
      "order": 4
    }
  },
  "type": "string",
  "description": "The clinical specialty or specialties relevant to this scenario."
}

Learner level

metadata.level

string · Optional; an omitted value is not a normal, negative, or zero value

The intended learner level and experience.

  • Maximum length: 1000 characters

Field schema

{
  "title": "Learner level",
  "maxLength": 1000,
  "x-usim": {
    "authoring": {
      "editor": "level",
      "group": "Scenario context",
      "order": 5
    }
  },
  "type": "string",
  "description": "The intended learner level and experience."
}

Suggested duration · minutes

metadata.durationMinutes

number · Optional; an omitted value is not a normal, negative, or zero value

The suggested scenario duration in minutes; this does not control the simulation clock.

  • Minimum: 1
  • Maximum: 1440

Field schema

{
  "title": "Suggested duration · minutes",
  "minimum": 1,
  "maximum": 1440,
  "x-usim": {
    "unit": "min",
    "authoring": {
      "group": "Scenario context",
      "order": 6
    }
  },
  "type": "number",
  "description": "The suggested scenario duration in minutes; this does not control the simulation clock."
}

Learner title

metadata.learnerTitle

string · Optional; an omitted value is not a normal, negative, or zero value

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.

  • Maximum length: 160 characters

Field schema

{
  "title": "Learner title",
  "maxLength": 160,
  "x-usim": {
    "authoring": {
      "group": "Learner-facing details",
      "span": "full",
      "defaultOpen": true,
      "order": 7
    }
  },
  "type": "string",
  "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."
}

Learner description

metadata.learnerDescription

string · Optional; an omitted value is not a normal, negative, or zero value

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.

  • Maximum length: 2000 characters

Field schema

{
  "title": "Learner description",
  "maxLength": 2000,
  "x-usim": {
    "authoring": {
      "editor": "textarea",
      "group": "Learner-facing details",
      "span": "full",
      "order": 8
    }
  },
  "type": "string",
  "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."
}

Cover photo

metadata.coverPhoto

object · Optional; an omitted value is not a normal, negative, or zero value

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.

Field schema

{
  "title": "Cover photo",
  "additionalProperties": false,
  "x-usim": {
    "authoring": {
      "editor": "cover-photo",
      "group": "Learner-facing details",
      "span": "full",
      "order": 9
    },
    "import": false
  },
  "type": "object",
  "required": [
    "dataUrl",
    "description"
  ],
  "properties": {
    "dataUrl": {
      "title": "Cover photo",
      "maxLength": 12582912,
      "pattern": "^data:image/(png|jpeg|webp);base64,[A-Za-z0-9+/]+={0,2}$",
      "type": "string",
      "description": "Embedded PNG, JPEG, or WebP data URL populated by the cover photo upload control."
    },
    "description": {
      "title": "Photo description",
      "maxLength": 1000,
      "x-usim": {
        "authoring": {}
      },
      "type": "string",
      "description": "Accessible description of the cover photo for learners who cannot see it. Describe visible content without revealing the teaching point."
    }
  },
  "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."
}

Cover photo

metadata.coverPhoto.dataUrl

string · Required when the parent is present

Embedded PNG, JPEG, or WebP data URL populated by the cover photo upload control.

  • Maximum length: 12582912 characters
  • Pattern: ^data:image/(png|jpeg|webp);base64,[A-Za-z0-9+/]+={0,2}$

Field schema

{
  "title": "Cover photo",
  "maxLength": 12582912,
  "pattern": "^data:image/(png|jpeg|webp);base64,[A-Za-z0-9+/]+={0,2}$",
  "type": "string",
  "description": "Embedded PNG, JPEG, or WebP data URL populated by the cover photo upload control."
}

Photo description

metadata.coverPhoto.description

string · Required when the parent is present

Accessible description of the cover photo for learners who cannot see it. Describe visible content without revealing the teaching point.

  • Maximum length: 1000 characters

Field schema

{
  "title": "Photo description",
  "maxLength": 1000,
  "x-usim": {
    "authoring": {}
  },
  "type": "string",
  "description": "Accessible description of the cover photo for learners who cannot see it. Describe visible content without revealing the teaching point."
}

Patients

patients

array · Required when the parent is present

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

Field schema

{
  "minItems": 1,
  "title": "Patients",
  "type": "array",
  "items": {
    "additionalProperties": false,
    "x-usim": {
      "authoring": {}
    },
    "type": "object",
    "required": [
      "id",
      "name",
      "context"
    ],
    "properties": {
      "id": {
        "title": "Identifier",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "x-usim": {
          "authoring": {
            "hidden": true
          }
        },
        "type": "string",
        "description": "Stable patient identifier used by observations, actions, and other scenario references."
      },
      "name": {
        "title": "Patient name",
        "maxLength": 160,
        "x-usim": {
          "authoring": {
            "order": 0
          }
        },
        "type": "string",
        "description": "The fictional patient's display name."
      },
      "preferredName": {
        "title": "Preferred name",
        "maxLength": 160,
        "x-usim": {
          "authoring": {
            "order": 3,
            "section": "communication"
          }
        },
        "type": "string",
        "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."
      },
      "baselineFunction": {
        "title": "Baseline function",
        "maxLength": 2000,
        "x-usim": {
          "authoring": {
            "editor": "textarea",
            "order": 4,
            "section": "demographics",
            "detail": "expanded",
            "span": "full"
          }
        },
        "type": "string",
        "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."
      },
      "communication": {
        "title": "Communication",
        "additionalProperties": false,
        "x-usim": {
          "authoring": {
            "columns": 2,
            "order": 40,
            "defaultOpen": false
          }
        },
        "type": "object",
        "properties": {
          "preferredLanguage": {
            "title": "Preferred language",
            "maxLength": 160,
            "x-usim": {
              "authoring": {
                "order": 0
              }
            },
            "type": "string",
            "description": "The patient's preferred language for this encounter. Do not infer fluency from ethnicity or name."
          },
          "interpreterNeeds": {
            "title": "Interpreter needs",
            "maxLength": 1000,
            "x-usim": {
              "authoring": {
                "editor": "textarea",
                "order": 2
              }
            },
            "type": "string",
            "description": "Whether and how a qualified interpreter is needed, including spoken or signed language. Omitted means unspecified."
          },
          "method": {
            "title": "Communication method",
            "maxLength": 500,
            "x-usim": {
              "authoring": {
                "order": 1
              }
            },
            "type": "string",
            "description": "How the patient communicates, such as speech, ASL, writing, or an augmentative device."
          },
          "supports": {
            "title": "Communication supports",
            "maxLength": 2000,
            "x-usim": {
              "authoring": {
                "editor": "textarea",
                "order": 3
              }
            },
            "type": "string",
            "description": "Specific supports and interaction preferences, such as hearing aids, facing the patient, or caregiver participation."
          }
        },
        "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."
      },
      "demographics": {
        "title": "Demographics",
        "additionalProperties": false,
        "x-usim": {
          "authoring": {
            "editor": "demographics",
            "order": 5
          }
        },
        "type": "object",
        "properties": {
          "age": {
            "additionalProperties": false,
            "title": "Age",
            "type": "object",
            "required": [
              "value",
              "unit"
            ],
            "properties": {
              "value": {
                "minimum": 0,
                "type": "number",
                "description": "The authored age in the selected unit.",
                "title": "Value"
              },
              "unit": {
                "anyOf": [
                  {
                    "const": "days",
                    "type": "string",
                    "description": "The required literal value \"days\"."
                  },
                  {
                    "const": "months",
                    "type": "string",
                    "description": "The required literal value \"months\"."
                  },
                  {
                    "const": "years",
                    "type": "string",
                    "description": "The required literal value \"years\"."
                  }
                ],
                "description": "Age unit; preserve days or months when appropriate.",
                "title": "Unit"
              }
            },
            "x-usim": {
              "authoring": {
                "editor": "age",
                "order": 0,
                "detail": "simple"
              }
            },
            "description": "Patient age with an explicit unit. Retain days or months for young infants."
          },
          "weight": {
            "additionalProperties": false,
            "title": "Weight",
            "type": "object",
            "required": [
              "value",
              "unit"
            ],
            "properties": {
              "value": {
                "minimum": 0,
                "maximum": 1000,
                "type": "number",
                "description": "Authored weight in kilograms.",
                "title": "Value"
              },
              "unit": {
                "const": "kg",
                "type": "string",
                "description": "Canonical mass unit.",
                "title": "Unit"
              }
            },
            "description": "Patient weight, stored in kilograms. The editor can also display pounds.",
            "x-usim": {
              "authoring": {
                "order": 3,
                "detail": "simple"
              }
            }
          },
          "height": {
            "additionalProperties": false,
            "title": "Height",
            "type": "object",
            "required": [
              "value",
              "unit"
            ],
            "properties": {
              "value": {
                "minimum": 0,
                "maximum": 400,
                "type": "number",
                "description": "Authored height in centimeters.",
                "title": "Value"
              },
              "unit": {
                "const": "cm",
                "type": "string",
                "description": "Canonical length unit.",
                "title": "Unit"
              }
            },
            "description": "Patient height, stored in centimeters. The editor can also display feet and inches.",
            "x-usim": {
              "authoring": {
                "order": 2,
                "detail": "simple"
              }
            }
          },
          "gender": {
            "title": "Gender",
            "maxLength": 160,
            "x-usim": {
              "authoring": {
                "editor": "gender",
                "order": 1,
                "detail": "simple"
              }
            },
            "type": "string",
            "description": "The patient's authored gender description."
          },
          "pronouns": {
            "title": "Pronouns",
            "maxLength": 160,
            "x-usim": {
              "authoring": {
                "suggestions": [
                  "She/her",
                  "He/him",
                  "They/them",
                  "She/they",
                  "He/they",
                  "Use name",
                  "Not specified"
                ],
                "order": 4,
                "detail": "expanded"
              }
            },
            "type": "string",
            "description": "The patient's authored pronouns. Never infer these from name, appearance, gender, or sex assigned at birth."
          },
          "sexualOrientation": {
            "title": "Sexual orientation",
            "maxLength": 160,
            "x-usim": {
              "authoring": {
                "suggestions": [
                  "Straight / heterosexual",
                  "Gay",
                  "Lesbian",
                  "Bisexual",
                  "Pansexual",
                  "Asexual",
                  "Queer",
                  "Questioning",
                  "Not specified"
                ],
                "order": 5,
                "detail": "expanded"
              }
            },
            "type": "string",
            "description": "Optional self-described sexual orientation. This does not specify sexual practices, anatomy, relationships, or pregnancy potential."
          },
          "sexAssignedAtBirth": {
            "title": "Sex assigned at birth",
            "maxLength": 160,
            "x-usim": {
              "authoring": {
                "suggestions": [
                  "Female",
                  "Male",
                  "Intersex",
                  "Unknown",
                  "Not specified"
                ],
                "order": 6,
                "detail": "expanded"
              }
            },
            "type": "string",
            "description": "Optional authored sex assigned at birth, separate from gender. Does not establish current anatomy, reproductive history, or treatment."
          },
          "heightUnit": {
            "type": "string",
            "title": "Height display unit",
            "enum": [
              "cm",
              "in",
              "ft-in"
            ],
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "description": "Preferred height display unit in the scenario editor; the measurement remains stored in centimeters."
          },
          "weightUnit": {
            "type": "string",
            "title": "Weight display unit",
            "enum": [
              "kg",
              "lb"
            ],
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "description": "Preferred weight display unit in the scenario editor; the measurement remains stored in kilograms."
          }
        },
        "description": "Optional age, gender, pronouns, sexual orientation, sex assigned at birth, height, and weight. Unspecified fields remain unknown; identity does not determine clinical behavior."
      },
      "history": {
        "title": "History",
        "x-usim": {
          "authoring": {
            "editor": "history",
            "order": 7
          }
        },
        "type": "array",
        "items": {
          "anyOf": [
            {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "id",
                "content",
                "disclosure",
                "category"
              ],
              "properties": {
                "id": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "authoring": {
                      "hidden": true
                    }
                  },
                  "type": "string",
                  "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
                },
                "content": {
                  "type": "string",
                  "title": "Content",
                  "description": "The Content for this entry. Omit optional information that has not been specified."
                },
                "disclosure": {
                  "anyOf": [
                    {
                      "additionalProperties": false,
                      "type": "object",
                      "required": [
                        "audience",
                        "mode"
                      ],
                      "properties": {
                        "audience": {
                          "minItems": 1,
                          "uniqueItems": true,
                          "type": "array",
                          "items": {
                            "anyOf": [
                              {
                                "const": "learner",
                                "type": "string",
                                "description": "The required literal value \"learner\"."
                              },
                              {
                                "const": "facilitator",
                                "type": "string",
                                "description": "The required literal value \"facilitator\"."
                              }
                            ],
                            "title": "Audience",
                            "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                          },
                          "title": "Audience",
                          "description": "Authorized output audiences. UI hints do not replace output filtering."
                        },
                        "mode": {
                          "anyOf": [
                            {
                              "const": "initial",
                              "type": "string",
                              "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                            },
                            {
                              "const": "facilitator",
                              "type": "string",
                              "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                            }
                          ],
                          "title": "Mode",
                          "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                        }
                      },
                      "description": "Structured disclosure details. Omitted optional values remain unspecified."
                    },
                    {
                      "additionalProperties": false,
                      "type": "object",
                      "required": [
                        "audience",
                        "mode",
                        "resourceId"
                      ],
                      "properties": {
                        "audience": {
                          "minItems": 1,
                          "uniqueItems": true,
                          "type": "array",
                          "items": {
                            "anyOf": [
                              {
                                "const": "learner",
                                "type": "string",
                                "description": "The required literal value \"learner\"."
                              },
                              {
                                "const": "facilitator",
                                "type": "string",
                                "description": "The required literal value \"facilitator\"."
                              }
                            ],
                            "title": "Audience",
                            "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                          },
                          "title": "Audience",
                          "description": "Authorized output audiences. UI hints do not replace output filtering."
                        },
                        "mode": {
                          "const": "on-resource-response",
                          "type": "string",
                          "title": "Mode",
                          "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                        },
                        "resourceId": {
                          "minLength": 1,
                          "maxLength": 128,
                          "pattern": "\\S",
                          "title": "Identifier",
                          "x-usim": {
                            "reference": {
                              "collection": "resources",
                              "label": "name"
                            }
                          },
                          "type": "string",
                          "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
                        }
                      },
                      "description": "Structured disclosure details. Omitted optional values remain unspecified."
                    },
                    {
                      "additionalProperties": false,
                      "type": "object",
                      "required": [
                        "audience",
                        "mode",
                        "actionId"
                      ],
                      "properties": {
                        "audience": {
                          "minItems": 1,
                          "uniqueItems": true,
                          "type": "array",
                          "items": {
                            "anyOf": [
                              {
                                "const": "learner",
                                "type": "string",
                                "description": "The required literal value \"learner\"."
                              },
                              {
                                "const": "facilitator",
                                "type": "string",
                                "description": "The required literal value \"facilitator\"."
                              }
                            ],
                            "title": "Audience",
                            "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                          },
                          "title": "Audience",
                          "description": "Authorized output audiences. UI hints do not replace output filtering."
                        },
                        "mode": {
                          "const": "on-action",
                          "type": "string",
                          "title": "Mode",
                          "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                        },
                        "actionId": {
                          "minLength": 1,
                          "maxLength": 128,
                          "pattern": "\\S",
                          "title": "Identifier",
                          "x-usim": {
                            "reference": {
                              "collection": "events.actions",
                              "label": "label"
                            }
                          },
                          "type": "string",
                          "description": "Successful completion of this action reveals the entry."
                        }
                      },
                      "description": "Structured disclosure details. Omitted optional values remain unspecified."
                    },
                    {
                      "additionalProperties": false,
                      "type": "object",
                      "required": [
                        "audience",
                        "mode",
                        "conditionId"
                      ],
                      "properties": {
                        "audience": {
                          "minItems": 1,
                          "uniqueItems": true,
                          "type": "array",
                          "items": {
                            "anyOf": [
                              {
                                "const": "learner",
                                "type": "string",
                                "description": "The required literal value \"learner\"."
                              },
                              {
                                "const": "facilitator",
                                "type": "string",
                                "description": "The required literal value \"facilitator\"."
                              }
                            ],
                            "title": "Audience",
                            "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                          },
                          "title": "Audience",
                          "description": "Authorized output audiences. UI hints do not replace output filtering."
                        },
                        "mode": {
                          "const": "on-condition",
                          "type": "string",
                          "title": "Mode",
                          "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                        },
                        "conditionId": {
                          "minLength": 1,
                          "maxLength": 128,
                          "pattern": "\\S",
                          "title": "Identifier",
                          "x-usim": {
                            "reference": {
                              "collection": "events.conditions",
                              "label": "id"
                            }
                          },
                          "type": "string",
                          "description": "Reveal when the condition first becomes true; reject unrelated trigger fields."
                        }
                      },
                      "description": "Structured disclosure details. Omitted optional values remain unspecified."
                    }
                  ],
                  "title": "Disclosure",
                  "description": "Select one of the declared Disclosure alternatives; use the fields belonging to that alternative."
                },
                "occurredAtSeconds": {
                  "type": "number",
                  "title": "Occurred at seconds",
                  "description": "Time relative to scenario start; negative values describe pre-arrival events."
                },
                "category": {
                  "anyOf": [
                    {
                      "const": "chief-complaint",
                      "type": "string",
                      "description": "The required literal value \"chief-complaint\"."
                    },
                    {
                      "const": "present-illness",
                      "type": "string",
                      "description": "The required literal value \"present-illness\"."
                    },
                    {
                      "const": "medical",
                      "type": "string",
                      "description": "The required literal value \"medical\"."
                    },
                    {
                      "const": "surgical",
                      "type": "string",
                      "description": "The required literal value \"surgical\"."
                    },
                    {
                      "const": "medication",
                      "type": "string",
                      "description": "The required literal value \"medication\"."
                    },
                    {
                      "const": "family",
                      "type": "string",
                      "description": "The required literal value \"family\"."
                    },
                    {
                      "const": "social",
                      "type": "string",
                      "description": "The required literal value \"social\"."
                    }
                  ],
                  "title": "Category",
                  "description": "Select one of the declared Category alternatives; use the fields belonging to that alternative."
                }
              },
              "description": "Separate entries for chief-complaint, present-illness, medical, surgical, medication, allergy, family, and social history."
            },
            {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "id",
                "content",
                "disclosure",
                "category"
              ],
              "properties": {
                "id": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "authoring": {
                      "hidden": true
                    }
                  },
                  "type": "string",
                  "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
                },
                "content": {
                  "type": "string",
                  "title": "Content",
                  "description": "The Content for this entry. Omit optional information that has not been specified."
                },
                "disclosure": {
                  "anyOf": [
                    {
                      "additionalProperties": false,
                      "type": "object",
                      "required": [
                        "audience",
                        "mode"
                      ],
                      "properties": {
                        "audience": {
                          "minItems": 1,
                          "uniqueItems": true,
                          "type": "array",
                          "items": {
                            "anyOf": [
                              {
                                "const": "learner",
                                "type": "string",
                                "description": "The required literal value \"learner\"."
                              },
                              {
                                "const": "facilitator",
                                "type": "string",
                                "description": "The required literal value \"facilitator\"."
                              }
                            ],
                            "title": "Audience",
                            "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                          },
                          "title": "Audience",
                          "description": "Authorized output audiences. UI hints do not replace output filtering."
                        },
                        "mode": {
                          "anyOf": [
                            {
                              "const": "initial",
                              "type": "string",
                              "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                            },
                            {
                              "const": "facilitator",
                              "type": "string",
                              "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                            }
                          ],
                          "title": "Mode",
                          "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                        }
                      },
                      "description": "Structured disclosure details. Omitted optional values remain unspecified."
                    },
                    {
                      "additionalProperties": false,
                      "type": "object",
                      "required": [
                        "audience",
                        "mode",
                        "resourceId"
                      ],
                      "properties": {
                        "audience": {
                          "minItems": 1,
                          "uniqueItems": true,
                          "type": "array",
                          "items": {
                            "anyOf": [
                              {
                                "const": "learner",
                                "type": "string",
                                "description": "The required literal value \"learner\"."
                              },
                              {
                                "const": "facilitator",
                                "type": "string",
                                "description": "The required literal value \"facilitator\"."
                              }
                            ],
                            "title": "Audience",
                            "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                          },
                          "title": "Audience",
                          "description": "Authorized output audiences. UI hints do not replace output filtering."
                        },
                        "mode": {
                          "const": "on-resource-response",
                          "type": "string",
                          "title": "Mode",
                          "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                        },
                        "resourceId": {
                          "minLength": 1,
                          "maxLength": 128,
                          "pattern": "\\S",
                          "title": "Identifier",
                          "x-usim": {
                            "reference": {
                              "collection": "resources",
                              "label": "name"
                            }
                          },
                          "type": "string",
                          "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
                        }
                      },
                      "description": "Structured disclosure details. Omitted optional values remain unspecified."
                    },
                    {
                      "additionalProperties": false,
                      "type": "object",
                      "required": [
                        "audience",
                        "mode",
                        "actionId"
                      ],
                      "properties": {
                        "audience": {
                          "minItems": 1,
                          "uniqueItems": true,
                          "type": "array",
                          "items": {
                            "anyOf": [
                              {
                                "const": "learner",
                                "type": "string",
                                "description": "The required literal value \"learner\"."
                              },
                              {
                                "const": "facilitator",
                                "type": "string",
                                "description": "The required literal value \"facilitator\"."
                              }
                            ],
                            "title": "Audience",
                            "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                          },
                          "title": "Audience",
                          "description": "Authorized output audiences. UI hints do not replace output filtering."
                        },
                        "mode": {
                          "const": "on-action",
                          "type": "string",
                          "title": "Mode",
                          "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                        },
                        "actionId": {
                          "minLength": 1,
                          "maxLength": 128,
                          "pattern": "\\S",
                          "title": "Identifier",
                          "x-usim": {
                            "reference": {
                              "collection": "events.actions",
                              "label": "label"
                            }
                          },
                          "type": "string",
                          "description": "Successful completion of this action reveals the entry."
                        }
                      },
                      "description": "Structured disclosure details. Omitted optional values remain unspecified."
                    },
                    {
                      "additionalProperties": false,
                      "type": "object",
                      "required": [
                        "audience",
                        "mode",
                        "conditionId"
                      ],
                      "properties": {
                        "audience": {
                          "minItems": 1,
                          "uniqueItems": true,
                          "type": "array",
                          "items": {
                            "anyOf": [
                              {
                                "const": "learner",
                                "type": "string",
                                "description": "The required literal value \"learner\"."
                              },
                              {
                                "const": "facilitator",
                                "type": "string",
                                "description": "The required literal value \"facilitator\"."
                              }
                            ],
                            "title": "Audience",
                            "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                          },
                          "title": "Audience",
                          "description": "Authorized output audiences. UI hints do not replace output filtering."
                        },
                        "mode": {
                          "const": "on-condition",
                          "type": "string",
                          "title": "Mode",
                          "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                        },
                        "conditionId": {
                          "minLength": 1,
                          "maxLength": 128,
                          "pattern": "\\S",
                          "title": "Identifier",
                          "x-usim": {
                            "reference": {
                              "collection": "events.conditions",
                              "label": "id"
                            }
                          },
                          "type": "string",
                          "description": "Reveal when the condition first becomes true; reject unrelated trigger fields."
                        }
                      },
                      "description": "Structured disclosure details. Omitted optional values remain unspecified."
                    }
                  ],
                  "title": "Disclosure",
                  "description": "Select one of the declared Disclosure alternatives; use the fields belonging to that alternative."
                },
                "occurredAtSeconds": {
                  "type": "number",
                  "title": "Occurred at seconds",
                  "description": "Time relative to scenario start; negative values describe pre-arrival events."
                },
                "category": {
                  "const": "allergy",
                  "type": "string",
                  "title": "Category",
                  "description": "The required literal value \"allergy\"."
                },
                "allergy": {
                  "additionalProperties": false,
                  "type": "object",
                  "required": [
                    "substance"
                  ],
                  "properties": {
                    "substance": {
                      "maxLength": 1000,
                      "type": "string",
                      "title": "Substance",
                      "description": "The Substance for this entry. Omit optional information that has not been specified."
                    },
                    "reaction": {
                      "maxLength": 1000,
                      "type": "string",
                      "title": "Reaction",
                      "description": "The Reaction for this entry. Omit optional information that has not been specified."
                    },
                    "severity": {
                      "anyOf": [
                        {
                          "const": "mild",
                          "type": "string",
                          "description": "The required literal value \"mild\"."
                        },
                        {
                          "const": "moderate",
                          "type": "string",
                          "description": "The required literal value \"moderate\"."
                        },
                        {
                          "const": "severe",
                          "type": "string",
                          "description": "The required literal value \"severe\"."
                        },
                        {
                          "const": "unknown",
                          "type": "string",
                          "description": "The required literal value \"unknown\"."
                        }
                      ],
                      "title": "Severity",
                      "description": "Select one of the declared Severity alternatives; use the fields belonging to that alternative."
                    }
                  },
                  "title": "Allergy",
                  "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."
                }
              },
              "description": "Separate entries for chief-complaint, present-illness, medical, surgical, medication, allergy, family, and social history."
            }
          ],
          "description": "Separate entries for chief-complaint, present-illness, medical, surgical, medication, allergy, family, and social history."
        },
        "description": "The history available about this patient, including symptoms, background, medications, and allergies."
      },
      "reviewOfSystems": {
        "type": "array",
        "items": {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "system",
            "observationIds"
          ],
          "properties": {
            "system": {
              "type": "string",
              "title": "System",
              "description": "The System for this entry. Omit optional information that has not been specified."
            },
            "observationIds": {
              "minItems": 0,
              "uniqueItems": true,
              "type": "array",
              "items": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "observations",
                    "label": "code"
                  }
                },
                "type": "string",
                "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
              },
              "title": "Observation ids",
              "description": "Entries for Observation ids. An empty list means no entries have been authored."
            }
          },
          "description": "Groups symptom observations by authored system heading without duplicating their values."
        },
        "title": "Structured system references",
        "x-usim": {
          "authoring": {
            "group": "Additional patient definitions",
            "defaultOpen": false,
            "order": 30,
            "span": "full",
            "hidden": true
          }
        },
        "description": "Entries for Structured system references. An empty list means no entries have been authored."
      },
      "variables": {
        "title": "Physiologic variables",
        "x-usim": {
          "authoring": {
            "editor": "variables",
            "addLabel": "Add variable",
            "order": 9
          }
        },
        "type": "array",
        "items": {
          "additionalProperties": false,
          "title": "Physiologic variable",
          "type": "object",
          "required": [
            "id",
            "concept",
            "unit"
          ],
          "properties": {
            "id": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "authoring": {
                  "hidden": true
                }
              },
              "type": "string",
              "description": "Stable variable identifier used by effects and observations."
            },
            "concept": {
              "title": "Concept",
              "type": "string",
              "description": "The meaning of the variable, such as usim:hr for heart rate."
            },
            "value": {
              "title": "Initial value",
              "type": "number",
              "description": "The initial numeric value in the declared unit."
            },
            "unit": {
              "title": "Unit",
              "type": "string",
              "description": "The unit of this value; core concepts use the standard unit defined by the specification."
            }
          },
          "allOf": [
            {
              "if": {
                "properties": {
                  "concept": {
                    "const": "usim:hr"
                  }
                },
                "required": [
                  "concept"
                ]
              },
              "then": {
                "properties": {
                  "unit": {
                    "const": "beats/min"
                  },
                  "value": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1000
                  }
                }
              }
            },
            {
              "if": {
                "properties": {
                  "concept": {
                    "const": "usim:sbp"
                  }
                },
                "required": [
                  "concept"
                ]
              },
              "then": {
                "properties": {
                  "unit": {
                    "const": "mmHg"
                  },
                  "value": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1000
                  }
                }
              }
            },
            {
              "if": {
                "properties": {
                  "concept": {
                    "const": "usim:dbp"
                  }
                },
                "required": [
                  "concept"
                ]
              },
              "then": {
                "properties": {
                  "unit": {
                    "const": "mmHg"
                  },
                  "value": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1000
                  }
                }
              }
            },
            {
              "if": {
                "properties": {
                  "concept": {
                    "const": "usim:rr"
                  }
                },
                "required": [
                  "concept"
                ]
              },
              "then": {
                "properties": {
                  "unit": {
                    "const": "breaths/min"
                  },
                  "value": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1000
                  }
                }
              }
            },
            {
              "if": {
                "properties": {
                  "concept": {
                    "const": "usim:spo2"
                  }
                },
                "required": [
                  "concept"
                ]
              },
              "then": {
                "properties": {
                  "unit": {
                    "const": "%"
                  },
                  "value": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 100
                  }
                }
              }
            },
            {
              "if": {
                "properties": {
                  "concept": {
                    "const": "usim:temperature"
                  }
                },
                "required": [
                  "concept"
                ]
              },
              "then": {
                "properties": {
                  "unit": {
                    "const": "Cel"
                  },
                  "value": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1000
                  }
                }
              }
            },
            {
              "if": {
                "properties": {
                  "concept": {
                    "const": "usim:etco2"
                  }
                },
                "required": [
                  "concept"
                ]
              },
              "then": {
                "properties": {
                  "unit": {
                    "const": "mmHg"
                  },
                  "value": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1000
                  }
                }
              }
            },
            {
              "if": {
                "properties": {
                  "concept": {
                    "const": "usim:artSbp"
                  }
                },
                "required": [
                  "concept"
                ]
              },
              "then": {
                "properties": {
                  "unit": {
                    "const": "mmHg"
                  },
                  "value": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1000
                  }
                }
              }
            },
            {
              "if": {
                "properties": {
                  "concept": {
                    "const": "usim:artDbp"
                  }
                },
                "required": [
                  "concept"
                ]
              },
              "then": {
                "properties": {
                  "unit": {
                    "const": "mmHg"
                  },
                  "value": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1000
                  }
                }
              }
            }
          ],
          "description": "One numeric physiologic variable belonging to this patient."
        },
        "description": "Numeric physiologic state with explicit concepts and units; observations describe when values are measured or disclosed."
      },
      "monitor": {
        "title": "Monitor",
        "additionalProperties": false,
        "x-usim": {
          "authoring": {
            "editor": "monitor",
            "order": 8
          }
        },
        "type": "object",
        "properties": {
          "rhythm": {
            "type": "string",
            "title": "Monitor rhythm",
            "enum": [
              "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"
            ],
            "description": "The ECG rhythm displayed on the monitor. Select the rhythm separately from whether the patient has a palpable pulse."
          },
          "pulsePresent": {
            "title": "Pulse present",
            "type": "boolean",
            "description": "Whether a palpable pulse is present. Use this to distinguish perfusing and pulseless presentations of the displayed rhythm."
          },
          "connections": {
            "title": "Monitor connections",
            "additionalProperties": false,
            "x-usim": {
              "authoring": {}
            },
            "type": "object",
            "properties": {
              "ecg": {
                "title": "ECG",
                "type": "boolean",
                "description": "ECG: connected exposes the available measurement; disconnected hides it without changing physiology."
              },
              "bloodPressure": {
                "title": "Blood pressure cuff",
                "type": "boolean",
                "description": "Blood pressure cuff: connected exposes the available measurement; disconnected hides it without changing physiology."
              },
              "spo2": {
                "title": "Pulse oximetry",
                "type": "boolean",
                "description": "Pulse oximetry: connected exposes the available measurement; disconnected hides it without changing physiology."
              },
              "respiration": {
                "title": "Respiratory monitoring",
                "type": "boolean",
                "description": "Respiratory monitoring: connected exposes the available measurement; disconnected hides it without changing physiology."
              },
              "temperature": {
                "title": "Temperature probe",
                "type": "boolean",
                "description": "Temperature probe: connected exposes the available measurement; disconnected hides it without changing physiology."
              },
              "capnography": {
                "title": "Capnography",
                "type": "boolean",
                "description": "Capnography: connected exposes the available measurement; disconnected hides it without changing physiology."
              },
              "arterialPressure": {
                "title": "Arterial pressure",
                "type": "boolean",
                "description": "Arterial pressure: connected exposes the available measurement; disconnected hides it without changing physiology."
              }
            },
            "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."
          }
        },
        "description": "The monitor configuration used to present patient observations."
      },
      "airway": {
        "anyOf": [
          {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "status"
            ],
            "properties": {
              "status": {
                "const": "natural",
                "type": "string",
                "title": "Status",
                "description": "The required literal value \"natural\"."
              }
            },
            "description": "Non-natural airway requires a device reference; presence does not imply correct placement or function."
          },
          {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "status",
              "deviceId"
            ],
            "properties": {
              "status": {
                "anyOf": [
                  {
                    "const": "adjunct",
                    "type": "string",
                    "description": "The required literal value \"adjunct\"."
                  },
                  {
                    "const": "intubated",
                    "type": "string",
                    "description": "The required literal value \"intubated\"."
                  },
                  {
                    "const": "surgical",
                    "type": "string",
                    "description": "The required literal value \"surgical\"."
                  }
                ],
                "title": "Status",
                "description": "Select one of the declared Status alternatives; use the fields belonging to that alternative."
              },
              "deviceId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "resources",
                    "label": "name"
                  }
                },
                "type": "string",
                "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
              }
            },
            "description": "Non-natural airway requires a device reference; presence does not imply correct placement or function."
          }
        ],
        "title": "Airway support",
        "x-usim": {
          "authoring": {
            "group": "Additional patient definitions",
            "defaultOpen": false,
            "order": 30,
            "span": "full",
            "hidden": true
          }
        },
        "description": "Non-natural airway requires a device reference; presence does not imply correct placement or function."
      },
      "context": {
        "title": "Patient context",
        "maxLength": 8000,
        "x-usim": {
          "authoring": {
            "editor": "textarea",
            "order": 1
          }
        },
        "type": "string",
        "description": "The patient's opening situation and the context available at the start of the scenario."
      },
      "photo": {
        "title": "Patient photo",
        "additionalProperties": false,
        "x-usim": {
          "authoring": {
            "editor": "patient-photo",
            "span": "full",
            "order": 2
          }
        },
        "type": "object",
        "required": [
          "dataUrl",
          "description"
        ],
        "properties": {
          "dataUrl": {
            "title": "Photo",
            "maxLength": 12582912,
            "x-usim": {
              "authoring": {}
            },
            "type": "string",
            "description": "The patient photo encoded as a data URL. Use the photo upload control to populate it."
          },
          "description": {
            "title": "Photo description",
            "maxLength": 1000,
            "x-usim": {
              "authoring": {}
            },
            "type": "string",
            "description": "Describe the patient's appearance for readers who cannot see the photo."
          }
        },
        "description": "An optional embedded patient photo that travels with the scenario. Upload a PNG, JPEG, or WebP image."
      }
    },
    "description": "One fictional patient and their authored presentation, history, examination, and observations."
  },
  "description": "The fictional patient's presentation, history, examination, and starting observations.",
  "x-usim": {
    "execution": {
      "capability": "multiple-patients",
      "minimumItems": 2
    }
  }
}

*

patients.*

object · Required when the parent is present

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

Field schema

{
  "additionalProperties": false,
  "x-usim": {
    "authoring": {}
  },
  "type": "object",
  "required": [
    "id",
    "name",
    "context"
  ],
  "properties": {
    "id": {
      "title": "Identifier",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "x-usim": {
        "authoring": {
          "hidden": true
        }
      },
      "type": "string",
      "description": "Stable patient identifier used by observations, actions, and other scenario references."
    },
    "name": {
      "title": "Patient name",
      "maxLength": 160,
      "x-usim": {
        "authoring": {
          "order": 0
        }
      },
      "type": "string",
      "description": "The fictional patient's display name."
    },
    "preferredName": {
      "title": "Preferred name",
      "maxLength": 160,
      "x-usim": {
        "authoring": {
          "order": 3,
          "section": "communication"
        }
      },
      "type": "string",
      "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."
    },
    "baselineFunction": {
      "title": "Baseline function",
      "maxLength": 2000,
      "x-usim": {
        "authoring": {
          "editor": "textarea",
          "order": 4,
          "section": "demographics",
          "detail": "expanded",
          "span": "full"
        }
      },
      "type": "string",
      "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."
    },
    "communication": {
      "title": "Communication",
      "additionalProperties": false,
      "x-usim": {
        "authoring": {
          "columns": 2,
          "order": 40,
          "defaultOpen": false
        }
      },
      "type": "object",
      "properties": {
        "preferredLanguage": {
          "title": "Preferred language",
          "maxLength": 160,
          "x-usim": {
            "authoring": {
              "order": 0
            }
          },
          "type": "string",
          "description": "The patient's preferred language for this encounter. Do not infer fluency from ethnicity or name."
        },
        "interpreterNeeds": {
          "title": "Interpreter needs",
          "maxLength": 1000,
          "x-usim": {
            "authoring": {
              "editor": "textarea",
              "order": 2
            }
          },
          "type": "string",
          "description": "Whether and how a qualified interpreter is needed, including spoken or signed language. Omitted means unspecified."
        },
        "method": {
          "title": "Communication method",
          "maxLength": 500,
          "x-usim": {
            "authoring": {
              "order": 1
            }
          },
          "type": "string",
          "description": "How the patient communicates, such as speech, ASL, writing, or an augmentative device."
        },
        "supports": {
          "title": "Communication supports",
          "maxLength": 2000,
          "x-usim": {
            "authoring": {
              "editor": "textarea",
              "order": 3
            }
          },
          "type": "string",
          "description": "Specific supports and interaction preferences, such as hearing aids, facing the patient, or caregiver participation."
        }
      },
      "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."
    },
    "demographics": {
      "title": "Demographics",
      "additionalProperties": false,
      "x-usim": {
        "authoring": {
          "editor": "demographics",
          "order": 5
        }
      },
      "type": "object",
      "properties": {
        "age": {
          "additionalProperties": false,
          "title": "Age",
          "type": "object",
          "required": [
            "value",
            "unit"
          ],
          "properties": {
            "value": {
              "minimum": 0,
              "type": "number",
              "description": "The authored age in the selected unit.",
              "title": "Value"
            },
            "unit": {
              "anyOf": [
                {
                  "const": "days",
                  "type": "string",
                  "description": "The required literal value \"days\"."
                },
                {
                  "const": "months",
                  "type": "string",
                  "description": "The required literal value \"months\"."
                },
                {
                  "const": "years",
                  "type": "string",
                  "description": "The required literal value \"years\"."
                }
              ],
              "description": "Age unit; preserve days or months when appropriate.",
              "title": "Unit"
            }
          },
          "x-usim": {
            "authoring": {
              "editor": "age",
              "order": 0,
              "detail": "simple"
            }
          },
          "description": "Patient age with an explicit unit. Retain days or months for young infants."
        },
        "weight": {
          "additionalProperties": false,
          "title": "Weight",
          "type": "object",
          "required": [
            "value",
            "unit"
          ],
          "properties": {
            "value": {
              "minimum": 0,
              "maximum": 1000,
              "type": "number",
              "description": "Authored weight in kilograms.",
              "title": "Value"
            },
            "unit": {
              "const": "kg",
              "type": "string",
              "description": "Canonical mass unit.",
              "title": "Unit"
            }
          },
          "description": "Patient weight, stored in kilograms. The editor can also display pounds.",
          "x-usim": {
            "authoring": {
              "order": 3,
              "detail": "simple"
            }
          }
        },
        "height": {
          "additionalProperties": false,
          "title": "Height",
          "type": "object",
          "required": [
            "value",
            "unit"
          ],
          "properties": {
            "value": {
              "minimum": 0,
              "maximum": 400,
              "type": "number",
              "description": "Authored height in centimeters.",
              "title": "Value"
            },
            "unit": {
              "const": "cm",
              "type": "string",
              "description": "Canonical length unit.",
              "title": "Unit"
            }
          },
          "description": "Patient height, stored in centimeters. The editor can also display feet and inches.",
          "x-usim": {
            "authoring": {
              "order": 2,
              "detail": "simple"
            }
          }
        },
        "gender": {
          "title": "Gender",
          "maxLength": 160,
          "x-usim": {
            "authoring": {
              "editor": "gender",
              "order": 1,
              "detail": "simple"
            }
          },
          "type": "string",
          "description": "The patient's authored gender description."
        },
        "pronouns": {
          "title": "Pronouns",
          "maxLength": 160,
          "x-usim": {
            "authoring": {
              "suggestions": [
                "She/her",
                "He/him",
                "They/them",
                "She/they",
                "He/they",
                "Use name",
                "Not specified"
              ],
              "order": 4,
              "detail": "expanded"
            }
          },
          "type": "string",
          "description": "The patient's authored pronouns. Never infer these from name, appearance, gender, or sex assigned at birth."
        },
        "sexualOrientation": {
          "title": "Sexual orientation",
          "maxLength": 160,
          "x-usim": {
            "authoring": {
              "suggestions": [
                "Straight / heterosexual",
                "Gay",
                "Lesbian",
                "Bisexual",
                "Pansexual",
                "Asexual",
                "Queer",
                "Questioning",
                "Not specified"
              ],
              "order": 5,
              "detail": "expanded"
            }
          },
          "type": "string",
          "description": "Optional self-described sexual orientation. This does not specify sexual practices, anatomy, relationships, or pregnancy potential."
        },
        "sexAssignedAtBirth": {
          "title": "Sex assigned at birth",
          "maxLength": 160,
          "x-usim": {
            "authoring": {
              "suggestions": [
                "Female",
                "Male",
                "Intersex",
                "Unknown",
                "Not specified"
              ],
              "order": 6,
              "detail": "expanded"
            }
          },
          "type": "string",
          "description": "Optional authored sex assigned at birth, separate from gender. Does not establish current anatomy, reproductive history, or treatment."
        },
        "heightUnit": {
          "type": "string",
          "title": "Height display unit",
          "enum": [
            "cm",
            "in",
            "ft-in"
          ],
          "x-usim": {
            "authoring": {
              "hidden": true
            }
          },
          "description": "Preferred height display unit in the scenario editor; the measurement remains stored in centimeters."
        },
        "weightUnit": {
          "type": "string",
          "title": "Weight display unit",
          "enum": [
            "kg",
            "lb"
          ],
          "x-usim": {
            "authoring": {
              "hidden": true
            }
          },
          "description": "Preferred weight display unit in the scenario editor; the measurement remains stored in kilograms."
        }
      },
      "description": "Optional age, gender, pronouns, sexual orientation, sex assigned at birth, height, and weight. Unspecified fields remain unknown; identity does not determine clinical behavior."
    },
    "history": {
      "title": "History",
      "x-usim": {
        "authoring": {
          "editor": "history",
          "order": 7
        }
      },
      "type": "array",
      "items": {
        "anyOf": [
          {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "id",
              "content",
              "disclosure",
              "category"
            ],
            "properties": {
              "id": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "authoring": {
                    "hidden": true
                  }
                },
                "type": "string",
                "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
              },
              "content": {
                "type": "string",
                "title": "Content",
                "description": "The Content for this entry. Omit optional information that has not been specified."
              },
              "disclosure": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "type": "object",
                    "required": [
                      "audience",
                      "mode"
                    ],
                    "properties": {
                      "audience": {
                        "minItems": 1,
                        "uniqueItems": true,
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "const": "learner",
                              "type": "string",
                              "description": "The required literal value \"learner\"."
                            },
                            {
                              "const": "facilitator",
                              "type": "string",
                              "description": "The required literal value \"facilitator\"."
                            }
                          ],
                          "title": "Audience",
                          "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                        },
                        "title": "Audience",
                        "description": "Authorized output audiences. UI hints do not replace output filtering."
                      },
                      "mode": {
                        "anyOf": [
                          {
                            "const": "initial",
                            "type": "string",
                            "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                          },
                          {
                            "const": "facilitator",
                            "type": "string",
                            "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                          }
                        ],
                        "title": "Mode",
                        "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                      }
                    },
                    "description": "Structured disclosure details. Omitted optional values remain unspecified."
                  },
                  {
                    "additionalProperties": false,
                    "type": "object",
                    "required": [
                      "audience",
                      "mode",
                      "resourceId"
                    ],
                    "properties": {
                      "audience": {
                        "minItems": 1,
                        "uniqueItems": true,
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "const": "learner",
                              "type": "string",
                              "description": "The required literal value \"learner\"."
                            },
                            {
                              "const": "facilitator",
                              "type": "string",
                              "description": "The required literal value \"facilitator\"."
                            }
                          ],
                          "title": "Audience",
                          "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                        },
                        "title": "Audience",
                        "description": "Authorized output audiences. UI hints do not replace output filtering."
                      },
                      "mode": {
                        "const": "on-resource-response",
                        "type": "string",
                        "title": "Mode",
                        "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                      },
                      "resourceId": {
                        "minLength": 1,
                        "maxLength": 128,
                        "pattern": "\\S",
                        "title": "Identifier",
                        "x-usim": {
                          "reference": {
                            "collection": "resources",
                            "label": "name"
                          }
                        },
                        "type": "string",
                        "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
                      }
                    },
                    "description": "Structured disclosure details. Omitted optional values remain unspecified."
                  },
                  {
                    "additionalProperties": false,
                    "type": "object",
                    "required": [
                      "audience",
                      "mode",
                      "actionId"
                    ],
                    "properties": {
                      "audience": {
                        "minItems": 1,
                        "uniqueItems": true,
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "const": "learner",
                              "type": "string",
                              "description": "The required literal value \"learner\"."
                            },
                            {
                              "const": "facilitator",
                              "type": "string",
                              "description": "The required literal value \"facilitator\"."
                            }
                          ],
                          "title": "Audience",
                          "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                        },
                        "title": "Audience",
                        "description": "Authorized output audiences. UI hints do not replace output filtering."
                      },
                      "mode": {
                        "const": "on-action",
                        "type": "string",
                        "title": "Mode",
                        "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                      },
                      "actionId": {
                        "minLength": 1,
                        "maxLength": 128,
                        "pattern": "\\S",
                        "title": "Identifier",
                        "x-usim": {
                          "reference": {
                            "collection": "events.actions",
                            "label": "label"
                          }
                        },
                        "type": "string",
                        "description": "Successful completion of this action reveals the entry."
                      }
                    },
                    "description": "Structured disclosure details. Omitted optional values remain unspecified."
                  },
                  {
                    "additionalProperties": false,
                    "type": "object",
                    "required": [
                      "audience",
                      "mode",
                      "conditionId"
                    ],
                    "properties": {
                      "audience": {
                        "minItems": 1,
                        "uniqueItems": true,
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "const": "learner",
                              "type": "string",
                              "description": "The required literal value \"learner\"."
                            },
                            {
                              "const": "facilitator",
                              "type": "string",
                              "description": "The required literal value \"facilitator\"."
                            }
                          ],
                          "title": "Audience",
                          "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                        },
                        "title": "Audience",
                        "description": "Authorized output audiences. UI hints do not replace output filtering."
                      },
                      "mode": {
                        "const": "on-condition",
                        "type": "string",
                        "title": "Mode",
                        "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                      },
                      "conditionId": {
                        "minLength": 1,
                        "maxLength": 128,
                        "pattern": "\\S",
                        "title": "Identifier",
                        "x-usim": {
                          "reference": {
                            "collection": "events.conditions",
                            "label": "id"
                          }
                        },
                        "type": "string",
                        "description": "Reveal when the condition first becomes true; reject unrelated trigger fields."
                      }
                    },
                    "description": "Structured disclosure details. Omitted optional values remain unspecified."
                  }
                ],
                "title": "Disclosure",
                "description": "Select one of the declared Disclosure alternatives; use the fields belonging to that alternative."
              },
              "occurredAtSeconds": {
                "type": "number",
                "title": "Occurred at seconds",
                "description": "Time relative to scenario start; negative values describe pre-arrival events."
              },
              "category": {
                "anyOf": [
                  {
                    "const": "chief-complaint",
                    "type": "string",
                    "description": "The required literal value \"chief-complaint\"."
                  },
                  {
                    "const": "present-illness",
                    "type": "string",
                    "description": "The required literal value \"present-illness\"."
                  },
                  {
                    "const": "medical",
                    "type": "string",
                    "description": "The required literal value \"medical\"."
                  },
                  {
                    "const": "surgical",
                    "type": "string",
                    "description": "The required literal value \"surgical\"."
                  },
                  {
                    "const": "medication",
                    "type": "string",
                    "description": "The required literal value \"medication\"."
                  },
                  {
                    "const": "family",
                    "type": "string",
                    "description": "The required literal value \"family\"."
                  },
                  {
                    "const": "social",
                    "type": "string",
                    "description": "The required literal value \"social\"."
                  }
                ],
                "title": "Category",
                "description": "Select one of the declared Category alternatives; use the fields belonging to that alternative."
              }
            },
            "description": "Separate entries for chief-complaint, present-illness, medical, surgical, medication, allergy, family, and social history."
          },
          {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "id",
              "content",
              "disclosure",
              "category"
            ],
            "properties": {
              "id": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "authoring": {
                    "hidden": true
                  }
                },
                "type": "string",
                "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
              },
              "content": {
                "type": "string",
                "title": "Content",
                "description": "The Content for this entry. Omit optional information that has not been specified."
              },
              "disclosure": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "type": "object",
                    "required": [
                      "audience",
                      "mode"
                    ],
                    "properties": {
                      "audience": {
                        "minItems": 1,
                        "uniqueItems": true,
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "const": "learner",
                              "type": "string",
                              "description": "The required literal value \"learner\"."
                            },
                            {
                              "const": "facilitator",
                              "type": "string",
                              "description": "The required literal value \"facilitator\"."
                            }
                          ],
                          "title": "Audience",
                          "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                        },
                        "title": "Audience",
                        "description": "Authorized output audiences. UI hints do not replace output filtering."
                      },
                      "mode": {
                        "anyOf": [
                          {
                            "const": "initial",
                            "type": "string",
                            "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                          },
                          {
                            "const": "facilitator",
                            "type": "string",
                            "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                          }
                        ],
                        "title": "Mode",
                        "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                      }
                    },
                    "description": "Structured disclosure details. Omitted optional values remain unspecified."
                  },
                  {
                    "additionalProperties": false,
                    "type": "object",
                    "required": [
                      "audience",
                      "mode",
                      "resourceId"
                    ],
                    "properties": {
                      "audience": {
                        "minItems": 1,
                        "uniqueItems": true,
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "const": "learner",
                              "type": "string",
                              "description": "The required literal value \"learner\"."
                            },
                            {
                              "const": "facilitator",
                              "type": "string",
                              "description": "The required literal value \"facilitator\"."
                            }
                          ],
                          "title": "Audience",
                          "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                        },
                        "title": "Audience",
                        "description": "Authorized output audiences. UI hints do not replace output filtering."
                      },
                      "mode": {
                        "const": "on-resource-response",
                        "type": "string",
                        "title": "Mode",
                        "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                      },
                      "resourceId": {
                        "minLength": 1,
                        "maxLength": 128,
                        "pattern": "\\S",
                        "title": "Identifier",
                        "x-usim": {
                          "reference": {
                            "collection": "resources",
                            "label": "name"
                          }
                        },
                        "type": "string",
                        "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
                      }
                    },
                    "description": "Structured disclosure details. Omitted optional values remain unspecified."
                  },
                  {
                    "additionalProperties": false,
                    "type": "object",
                    "required": [
                      "audience",
                      "mode",
                      "actionId"
                    ],
                    "properties": {
                      "audience": {
                        "minItems": 1,
                        "uniqueItems": true,
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "const": "learner",
                              "type": "string",
                              "description": "The required literal value \"learner\"."
                            },
                            {
                              "const": "facilitator",
                              "type": "string",
                              "description": "The required literal value \"facilitator\"."
                            }
                          ],
                          "title": "Audience",
                          "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                        },
                        "title": "Audience",
                        "description": "Authorized output audiences. UI hints do not replace output filtering."
                      },
                      "mode": {
                        "const": "on-action",
                        "type": "string",
                        "title": "Mode",
                        "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                      },
                      "actionId": {
                        "minLength": 1,
                        "maxLength": 128,
                        "pattern": "\\S",
                        "title": "Identifier",
                        "x-usim": {
                          "reference": {
                            "collection": "events.actions",
                            "label": "label"
                          }
                        },
                        "type": "string",
                        "description": "Successful completion of this action reveals the entry."
                      }
                    },
                    "description": "Structured disclosure details. Omitted optional values remain unspecified."
                  },
                  {
                    "additionalProperties": false,
                    "type": "object",
                    "required": [
                      "audience",
                      "mode",
                      "conditionId"
                    ],
                    "properties": {
                      "audience": {
                        "minItems": 1,
                        "uniqueItems": true,
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "const": "learner",
                              "type": "string",
                              "description": "The required literal value \"learner\"."
                            },
                            {
                              "const": "facilitator",
                              "type": "string",
                              "description": "The required literal value \"facilitator\"."
                            }
                          ],
                          "title": "Audience",
                          "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                        },
                        "title": "Audience",
                        "description": "Authorized output audiences. UI hints do not replace output filtering."
                      },
                      "mode": {
                        "const": "on-condition",
                        "type": "string",
                        "title": "Mode",
                        "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                      },
                      "conditionId": {
                        "minLength": 1,
                        "maxLength": 128,
                        "pattern": "\\S",
                        "title": "Identifier",
                        "x-usim": {
                          "reference": {
                            "collection": "events.conditions",
                            "label": "id"
                          }
                        },
                        "type": "string",
                        "description": "Reveal when the condition first becomes true; reject unrelated trigger fields."
                      }
                    },
                    "description": "Structured disclosure details. Omitted optional values remain unspecified."
                  }
                ],
                "title": "Disclosure",
                "description": "Select one of the declared Disclosure alternatives; use the fields belonging to that alternative."
              },
              "occurredAtSeconds": {
                "type": "number",
                "title": "Occurred at seconds",
                "description": "Time relative to scenario start; negative values describe pre-arrival events."
              },
              "category": {
                "const": "allergy",
                "type": "string",
                "title": "Category",
                "description": "The required literal value \"allergy\"."
              },
              "allergy": {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "substance"
                ],
                "properties": {
                  "substance": {
                    "maxLength": 1000,
                    "type": "string",
                    "title": "Substance",
                    "description": "The Substance for this entry. Omit optional information that has not been specified."
                  },
                  "reaction": {
                    "maxLength": 1000,
                    "type": "string",
                    "title": "Reaction",
                    "description": "The Reaction for this entry. Omit optional information that has not been specified."
                  },
                  "severity": {
                    "anyOf": [
                      {
                        "const": "mild",
                        "type": "string",
                        "description": "The required literal value \"mild\"."
                      },
                      {
                        "const": "moderate",
                        "type": "string",
                        "description": "The required literal value \"moderate\"."
                      },
                      {
                        "const": "severe",
                        "type": "string",
                        "description": "The required literal value \"severe\"."
                      },
                      {
                        "const": "unknown",
                        "type": "string",
                        "description": "The required literal value \"unknown\"."
                      }
                    ],
                    "title": "Severity",
                    "description": "Select one of the declared Severity alternatives; use the fields belonging to that alternative."
                  }
                },
                "title": "Allergy",
                "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."
              }
            },
            "description": "Separate entries for chief-complaint, present-illness, medical, surgical, medication, allergy, family, and social history."
          }
        ],
        "description": "Separate entries for chief-complaint, present-illness, medical, surgical, medication, allergy, family, and social history."
      },
      "description": "The history available about this patient, including symptoms, background, medications, and allergies."
    },
    "reviewOfSystems": {
      "type": "array",
      "items": {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "system",
          "observationIds"
        ],
        "properties": {
          "system": {
            "type": "string",
            "title": "System",
            "description": "The System for this entry. Omit optional information that has not been specified."
          },
          "observationIds": {
            "minItems": 0,
            "uniqueItems": true,
            "type": "array",
            "items": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "observations",
                  "label": "code"
                }
              },
              "type": "string",
              "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
            },
            "title": "Observation ids",
            "description": "Entries for Observation ids. An empty list means no entries have been authored."
          }
        },
        "description": "Groups symptom observations by authored system heading without duplicating their values."
      },
      "title": "Structured system references",
      "x-usim": {
        "authoring": {
          "group": "Additional patient definitions",
          "defaultOpen": false,
          "order": 30,
          "span": "full",
          "hidden": true
        }
      },
      "description": "Entries for Structured system references. An empty list means no entries have been authored."
    },
    "variables": {
      "title": "Physiologic variables",
      "x-usim": {
        "authoring": {
          "editor": "variables",
          "addLabel": "Add variable",
          "order": 9
        }
      },
      "type": "array",
      "items": {
        "additionalProperties": false,
        "title": "Physiologic variable",
        "type": "object",
        "required": [
          "id",
          "concept",
          "unit"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Stable variable identifier used by effects and observations."
          },
          "concept": {
            "title": "Concept",
            "type": "string",
            "description": "The meaning of the variable, such as usim:hr for heart rate."
          },
          "value": {
            "title": "Initial value",
            "type": "number",
            "description": "The initial numeric value in the declared unit."
          },
          "unit": {
            "title": "Unit",
            "type": "string",
            "description": "The unit of this value; core concepts use the standard unit defined by the specification."
          }
        },
        "allOf": [
          {
            "if": {
              "properties": {
                "concept": {
                  "const": "usim:hr"
                }
              },
              "required": [
                "concept"
              ]
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "beats/min"
                },
                "value": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1000
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "concept": {
                  "const": "usim:sbp"
                }
              },
              "required": [
                "concept"
              ]
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "mmHg"
                },
                "value": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1000
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "concept": {
                  "const": "usim:dbp"
                }
              },
              "required": [
                "concept"
              ]
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "mmHg"
                },
                "value": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1000
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "concept": {
                  "const": "usim:rr"
                }
              },
              "required": [
                "concept"
              ]
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "breaths/min"
                },
                "value": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1000
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "concept": {
                  "const": "usim:spo2"
                }
              },
              "required": [
                "concept"
              ]
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "%"
                },
                "value": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 100
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "concept": {
                  "const": "usim:temperature"
                }
              },
              "required": [
                "concept"
              ]
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "Cel"
                },
                "value": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1000
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "concept": {
                  "const": "usim:etco2"
                }
              },
              "required": [
                "concept"
              ]
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "mmHg"
                },
                "value": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1000
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "concept": {
                  "const": "usim:artSbp"
                }
              },
              "required": [
                "concept"
              ]
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "mmHg"
                },
                "value": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1000
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "concept": {
                  "const": "usim:artDbp"
                }
              },
              "required": [
                "concept"
              ]
            },
            "then": {
              "properties": {
                "unit": {
                  "const": "mmHg"
                },
                "value": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1000
                }
              }
            }
          }
        ],
        "description": "One numeric physiologic variable belonging to this patient."
      },
      "description": "Numeric physiologic state with explicit concepts and units; observations describe when values are measured or disclosed."
    },
    "monitor": {
      "title": "Monitor",
      "additionalProperties": false,
      "x-usim": {
        "authoring": {
          "editor": "monitor",
          "order": 8
        }
      },
      "type": "object",
      "properties": {
        "rhythm": {
          "type": "string",
          "title": "Monitor rhythm",
          "enum": [
            "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"
          ],
          "description": "The ECG rhythm displayed on the monitor. Select the rhythm separately from whether the patient has a palpable pulse."
        },
        "pulsePresent": {
          "title": "Pulse present",
          "type": "boolean",
          "description": "Whether a palpable pulse is present. Use this to distinguish perfusing and pulseless presentations of the displayed rhythm."
        },
        "connections": {
          "title": "Monitor connections",
          "additionalProperties": false,
          "x-usim": {
            "authoring": {}
          },
          "type": "object",
          "properties": {
            "ecg": {
              "title": "ECG",
              "type": "boolean",
              "description": "ECG: connected exposes the available measurement; disconnected hides it without changing physiology."
            },
            "bloodPressure": {
              "title": "Blood pressure cuff",
              "type": "boolean",
              "description": "Blood pressure cuff: connected exposes the available measurement; disconnected hides it without changing physiology."
            },
            "spo2": {
              "title": "Pulse oximetry",
              "type": "boolean",
              "description": "Pulse oximetry: connected exposes the available measurement; disconnected hides it without changing physiology."
            },
            "respiration": {
              "title": "Respiratory monitoring",
              "type": "boolean",
              "description": "Respiratory monitoring: connected exposes the available measurement; disconnected hides it without changing physiology."
            },
            "temperature": {
              "title": "Temperature probe",
              "type": "boolean",
              "description": "Temperature probe: connected exposes the available measurement; disconnected hides it without changing physiology."
            },
            "capnography": {
              "title": "Capnography",
              "type": "boolean",
              "description": "Capnography: connected exposes the available measurement; disconnected hides it without changing physiology."
            },
            "arterialPressure": {
              "title": "Arterial pressure",
              "type": "boolean",
              "description": "Arterial pressure: connected exposes the available measurement; disconnected hides it without changing physiology."
            }
          },
          "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."
        }
      },
      "description": "The monitor configuration used to present patient observations."
    },
    "airway": {
      "anyOf": [
        {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "status"
          ],
          "properties": {
            "status": {
              "const": "natural",
              "type": "string",
              "title": "Status",
              "description": "The required literal value \"natural\"."
            }
          },
          "description": "Non-natural airway requires a device reference; presence does not imply correct placement or function."
        },
        {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "status",
            "deviceId"
          ],
          "properties": {
            "status": {
              "anyOf": [
                {
                  "const": "adjunct",
                  "type": "string",
                  "description": "The required literal value \"adjunct\"."
                },
                {
                  "const": "intubated",
                  "type": "string",
                  "description": "The required literal value \"intubated\"."
                },
                {
                  "const": "surgical",
                  "type": "string",
                  "description": "The required literal value \"surgical\"."
                }
              ],
              "title": "Status",
              "description": "Select one of the declared Status alternatives; use the fields belonging to that alternative."
            },
            "deviceId": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "resources",
                  "label": "name"
                }
              },
              "type": "string",
              "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
            }
          },
          "description": "Non-natural airway requires a device reference; presence does not imply correct placement or function."
        }
      ],
      "title": "Airway support",
      "x-usim": {
        "authoring": {
          "group": "Additional patient definitions",
          "defaultOpen": false,
          "order": 30,
          "span": "full",
          "hidden": true
        }
      },
      "description": "Non-natural airway requires a device reference; presence does not imply correct placement or function."
    },
    "context": {
      "title": "Patient context",
      "maxLength": 8000,
      "x-usim": {
        "authoring": {
          "editor": "textarea",
          "order": 1
        }
      },
      "type": "string",
      "description": "The patient's opening situation and the context available at the start of the scenario."
    },
    "photo": {
      "title": "Patient photo",
      "additionalProperties": false,
      "x-usim": {
        "authoring": {
          "editor": "patient-photo",
          "span": "full",
          "order": 2
        }
      },
      "type": "object",
      "required": [
        "dataUrl",
        "description"
      ],
      "properties": {
        "dataUrl": {
          "title": "Photo",
          "maxLength": 12582912,
          "x-usim": {
            "authoring": {}
          },
          "type": "string",
          "description": "The patient photo encoded as a data URL. Use the photo upload control to populate it."
        },
        "description": {
          "title": "Photo description",
          "maxLength": 1000,
          "x-usim": {
            "authoring": {}
          },
          "type": "string",
          "description": "Describe the patient's appearance for readers who cannot see the photo."
        }
      },
      "description": "An optional embedded patient photo that travels with the scenario. Upload a PNG, JPEG, or WebP image."
    }
  },
  "description": "One fictional patient and their authored presentation, history, examination, and observations."
}

Identifier

patients.*.id

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "title": "Identifier",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "Stable patient identifier used by observations, actions, and other scenario references."
}

Patient name

patients.*.name

string · Required when the parent is present

The fictional patient's display name.

  • Maximum length: 160 characters

Field schema

{
  "title": "Patient name",
  "maxLength": 160,
  "x-usim": {
    "authoring": {
      "order": 0
    }
  },
  "type": "string",
  "description": "The fictional patient's display name."
}

Preferred name

patients.*.preferredName

string · Optional; an omitted value is not a normal, negative, or zero value

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.

  • Maximum length: 160 characters

Field schema

{
  "title": "Preferred name",
  "maxLength": 160,
  "x-usim": {
    "authoring": {
      "order": 3,
      "section": "communication"
    }
  },
  "type": "string",
  "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."
}

Baseline function

patients.*.baselineFunction

string · Optional; an omitted value is not a normal, negative, or zero value

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.

  • Maximum length: 2000 characters

Field schema

{
  "title": "Baseline function",
  "maxLength": 2000,
  "x-usim": {
    "authoring": {
      "editor": "textarea",
      "order": 4,
      "section": "demographics",
      "detail": "expanded",
      "span": "full"
    }
  },
  "type": "string",
  "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."
}

Communication

patients.*.communication

object · Optional; an omitted value is not a normal, negative, or zero value

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.

Field schema

{
  "title": "Communication",
  "additionalProperties": false,
  "x-usim": {
    "authoring": {
      "columns": 2,
      "order": 40,
      "defaultOpen": false
    }
  },
  "type": "object",
  "properties": {
    "preferredLanguage": {
      "title": "Preferred language",
      "maxLength": 160,
      "x-usim": {
        "authoring": {
          "order": 0
        }
      },
      "type": "string",
      "description": "The patient's preferred language for this encounter. Do not infer fluency from ethnicity or name."
    },
    "interpreterNeeds": {
      "title": "Interpreter needs",
      "maxLength": 1000,
      "x-usim": {
        "authoring": {
          "editor": "textarea",
          "order": 2
        }
      },
      "type": "string",
      "description": "Whether and how a qualified interpreter is needed, including spoken or signed language. Omitted means unspecified."
    },
    "method": {
      "title": "Communication method",
      "maxLength": 500,
      "x-usim": {
        "authoring": {
          "order": 1
        }
      },
      "type": "string",
      "description": "How the patient communicates, such as speech, ASL, writing, or an augmentative device."
    },
    "supports": {
      "title": "Communication supports",
      "maxLength": 2000,
      "x-usim": {
        "authoring": {
          "editor": "textarea",
          "order": 3
        }
      },
      "type": "string",
      "description": "Specific supports and interaction preferences, such as hearing aids, facing the patient, or caregiver participation."
    }
  },
  "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."
}

Preferred language

patients.*.communication.preferredLanguage

string · Optional; an omitted value is not a normal, negative, or zero value

The patient's preferred language for this encounter. Do not infer fluency from ethnicity or name.

  • Maximum length: 160 characters

Field schema

{
  "title": "Preferred language",
  "maxLength": 160,
  "x-usim": {
    "authoring": {
      "order": 0
    }
  },
  "type": "string",
  "description": "The patient's preferred language for this encounter. Do not infer fluency from ethnicity or name."
}

Interpreter needs

patients.*.communication.interpreterNeeds

string · Optional; an omitted value is not a normal, negative, or zero value

Whether and how a qualified interpreter is needed, including spoken or signed language. Omitted means unspecified.

  • Maximum length: 1000 characters

Field schema

{
  "title": "Interpreter needs",
  "maxLength": 1000,
  "x-usim": {
    "authoring": {
      "editor": "textarea",
      "order": 2
    }
  },
  "type": "string",
  "description": "Whether and how a qualified interpreter is needed, including spoken or signed language. Omitted means unspecified."
}

Communication method

patients.*.communication.method

string · Optional; an omitted value is not a normal, negative, or zero value

How the patient communicates, such as speech, ASL, writing, or an augmentative device.

  • Maximum length: 500 characters

Field schema

{
  "title": "Communication method",
  "maxLength": 500,
  "x-usim": {
    "authoring": {
      "order": 1
    }
  },
  "type": "string",
  "description": "How the patient communicates, such as speech, ASL, writing, or an augmentative device."
}

Communication supports

patients.*.communication.supports

string · Optional; an omitted value is not a normal, negative, or zero value

Specific supports and interaction preferences, such as hearing aids, facing the patient, or caregiver participation.

  • Maximum length: 2000 characters

Field schema

{
  "title": "Communication supports",
  "maxLength": 2000,
  "x-usim": {
    "authoring": {
      "editor": "textarea",
      "order": 3
    }
  },
  "type": "string",
  "description": "Specific supports and interaction preferences, such as hearing aids, facing the patient, or caregiver participation."
}

Demographics

patients.*.demographics

object · Optional; an omitted value is not a normal, negative, or zero value

Optional age, gender, pronouns, sexual orientation, sex assigned at birth, height, and weight. Unspecified fields remain unknown; identity does not determine clinical behavior.

Field schema

{
  "title": "Demographics",
  "additionalProperties": false,
  "x-usim": {
    "authoring": {
      "editor": "demographics",
      "order": 5
    }
  },
  "type": "object",
  "properties": {
    "age": {
      "additionalProperties": false,
      "title": "Age",
      "type": "object",
      "required": [
        "value",
        "unit"
      ],
      "properties": {
        "value": {
          "minimum": 0,
          "type": "number",
          "description": "The authored age in the selected unit.",
          "title": "Value"
        },
        "unit": {
          "anyOf": [
            {
              "const": "days",
              "type": "string",
              "description": "The required literal value \"days\"."
            },
            {
              "const": "months",
              "type": "string",
              "description": "The required literal value \"months\"."
            },
            {
              "const": "years",
              "type": "string",
              "description": "The required literal value \"years\"."
            }
          ],
          "description": "Age unit; preserve days or months when appropriate.",
          "title": "Unit"
        }
      },
      "x-usim": {
        "authoring": {
          "editor": "age",
          "order": 0,
          "detail": "simple"
        }
      },
      "description": "Patient age with an explicit unit. Retain days or months for young infants."
    },
    "weight": {
      "additionalProperties": false,
      "title": "Weight",
      "type": "object",
      "required": [
        "value",
        "unit"
      ],
      "properties": {
        "value": {
          "minimum": 0,
          "maximum": 1000,
          "type": "number",
          "description": "Authored weight in kilograms.",
          "title": "Value"
        },
        "unit": {
          "const": "kg",
          "type": "string",
          "description": "Canonical mass unit.",
          "title": "Unit"
        }
      },
      "description": "Patient weight, stored in kilograms. The editor can also display pounds.",
      "x-usim": {
        "authoring": {
          "order": 3,
          "detail": "simple"
        }
      }
    },
    "height": {
      "additionalProperties": false,
      "title": "Height",
      "type": "object",
      "required": [
        "value",
        "unit"
      ],
      "properties": {
        "value": {
          "minimum": 0,
          "maximum": 400,
          "type": "number",
          "description": "Authored height in centimeters.",
          "title": "Value"
        },
        "unit": {
          "const": "cm",
          "type": "string",
          "description": "Canonical length unit.",
          "title": "Unit"
        }
      },
      "description": "Patient height, stored in centimeters. The editor can also display feet and inches.",
      "x-usim": {
        "authoring": {
          "order": 2,
          "detail": "simple"
        }
      }
    },
    "gender": {
      "title": "Gender",
      "maxLength": 160,
      "x-usim": {
        "authoring": {
          "editor": "gender",
          "order": 1,
          "detail": "simple"
        }
      },
      "type": "string",
      "description": "The patient's authored gender description."
    },
    "pronouns": {
      "title": "Pronouns",
      "maxLength": 160,
      "x-usim": {
        "authoring": {
          "suggestions": [
            "She/her",
            "He/him",
            "They/them",
            "She/they",
            "He/they",
            "Use name",
            "Not specified"
          ],
          "order": 4,
          "detail": "expanded"
        }
      },
      "type": "string",
      "description": "The patient's authored pronouns. Never infer these from name, appearance, gender, or sex assigned at birth."
    },
    "sexualOrientation": {
      "title": "Sexual orientation",
      "maxLength": 160,
      "x-usim": {
        "authoring": {
          "suggestions": [
            "Straight / heterosexual",
            "Gay",
            "Lesbian",
            "Bisexual",
            "Pansexual",
            "Asexual",
            "Queer",
            "Questioning",
            "Not specified"
          ],
          "order": 5,
          "detail": "expanded"
        }
      },
      "type": "string",
      "description": "Optional self-described sexual orientation. This does not specify sexual practices, anatomy, relationships, or pregnancy potential."
    },
    "sexAssignedAtBirth": {
      "title": "Sex assigned at birth",
      "maxLength": 160,
      "x-usim": {
        "authoring": {
          "suggestions": [
            "Female",
            "Male",
            "Intersex",
            "Unknown",
            "Not specified"
          ],
          "order": 6,
          "detail": "expanded"
        }
      },
      "type": "string",
      "description": "Optional authored sex assigned at birth, separate from gender. Does not establish current anatomy, reproductive history, or treatment."
    },
    "heightUnit": {
      "type": "string",
      "title": "Height display unit",
      "enum": [
        "cm",
        "in",
        "ft-in"
      ],
      "x-usim": {
        "authoring": {
          "hidden": true
        }
      },
      "description": "Preferred height display unit in the scenario editor; the measurement remains stored in centimeters."
    },
    "weightUnit": {
      "type": "string",
      "title": "Weight display unit",
      "enum": [
        "kg",
        "lb"
      ],
      "x-usim": {
        "authoring": {
          "hidden": true
        }
      },
      "description": "Preferred weight display unit in the scenario editor; the measurement remains stored in kilograms."
    }
  },
  "description": "Optional age, gender, pronouns, sexual orientation, sex assigned at birth, height, and weight. Unspecified fields remain unknown; identity does not determine clinical behavior."
}

Age

patients.*.demographics.age

object · Optional; an omitted value is not a normal, negative, or zero value

Patient age with an explicit unit. Retain days or months for young infants.

Field schema

{
  "additionalProperties": false,
  "title": "Age",
  "type": "object",
  "required": [
    "value",
    "unit"
  ],
  "properties": {
    "value": {
      "minimum": 0,
      "type": "number",
      "description": "The authored age in the selected unit.",
      "title": "Value"
    },
    "unit": {
      "anyOf": [
        {
          "const": "days",
          "type": "string",
          "description": "The required literal value \"days\"."
        },
        {
          "const": "months",
          "type": "string",
          "description": "The required literal value \"months\"."
        },
        {
          "const": "years",
          "type": "string",
          "description": "The required literal value \"years\"."
        }
      ],
      "description": "Age unit; preserve days or months when appropriate.",
      "title": "Unit"
    }
  },
  "x-usim": {
    "authoring": {
      "editor": "age",
      "order": 0,
      "detail": "simple"
    }
  },
  "description": "Patient age with an explicit unit. Retain days or months for young infants."
}

Value

patients.*.demographics.age.value

number · Required when the parent is present

The authored age in the selected unit.

  • Minimum: 0

Field schema

{
  "minimum": 0,
  "type": "number",
  "description": "The authored age in the selected unit.",
  "title": "Value"
}

Unit

patients.*.demographics.age.unit

Value · Required when the parent is present

Age unit; preserve days or months when appropriate.

Allowed values: days, months, years

Field schema

{
  "anyOf": [
    {
      "const": "days",
      "type": "string",
      "description": "The required literal value \"days\"."
    },
    {
      "const": "months",
      "type": "string",
      "description": "The required literal value \"months\"."
    },
    {
      "const": "years",
      "type": "string",
      "description": "The required literal value \"years\"."
    }
  ],
  "description": "Age unit; preserve days or months when appropriate.",
  "title": "Unit"
}

Weight

patients.*.demographics.weight

object · Optional; an omitted value is not a normal, negative, or zero value

Patient weight, stored in kilograms. The editor can also display pounds.

Field schema

{
  "additionalProperties": false,
  "title": "Weight",
  "type": "object",
  "required": [
    "value",
    "unit"
  ],
  "properties": {
    "value": {
      "minimum": 0,
      "maximum": 1000,
      "type": "number",
      "description": "Authored weight in kilograms.",
      "title": "Value"
    },
    "unit": {
      "const": "kg",
      "type": "string",
      "description": "Canonical mass unit.",
      "title": "Unit"
    }
  },
  "description": "Patient weight, stored in kilograms. The editor can also display pounds.",
  "x-usim": {
    "authoring": {
      "order": 3,
      "detail": "simple"
    }
  }
}

Value

patients.*.demographics.weight.value

number · Required when the parent is present

Authored weight in kilograms.

  • Minimum: 0
  • Maximum: 1000

Field schema

{
  "minimum": 0,
  "maximum": 1000,
  "type": "number",
  "description": "Authored weight in kilograms.",
  "title": "Value"
}

Unit

patients.*.demographics.weight.unit

string · Required when the parent is present

Canonical mass unit.

Field schema

{
  "const": "kg",
  "type": "string",
  "description": "Canonical mass unit.",
  "title": "Unit"
}

Height

patients.*.demographics.height

object · Optional; an omitted value is not a normal, negative, or zero value

Patient height, stored in centimeters. The editor can also display feet and inches.

Field schema

{
  "additionalProperties": false,
  "title": "Height",
  "type": "object",
  "required": [
    "value",
    "unit"
  ],
  "properties": {
    "value": {
      "minimum": 0,
      "maximum": 400,
      "type": "number",
      "description": "Authored height in centimeters.",
      "title": "Value"
    },
    "unit": {
      "const": "cm",
      "type": "string",
      "description": "Canonical length unit.",
      "title": "Unit"
    }
  },
  "description": "Patient height, stored in centimeters. The editor can also display feet and inches.",
  "x-usim": {
    "authoring": {
      "order": 2,
      "detail": "simple"
    }
  }
}

Value

patients.*.demographics.height.value

number · Required when the parent is present

Authored height in centimeters.

  • Minimum: 0
  • Maximum: 400

Field schema

{
  "minimum": 0,
  "maximum": 400,
  "type": "number",
  "description": "Authored height in centimeters.",
  "title": "Value"
}

Unit

patients.*.demographics.height.unit

string · Required when the parent is present

Canonical length unit.

Field schema

{
  "const": "cm",
  "type": "string",
  "description": "Canonical length unit.",
  "title": "Unit"
}

Gender

patients.*.demographics.gender

string · Optional; an omitted value is not a normal, negative, or zero value

The patient's authored gender description.

  • Maximum length: 160 characters

Field schema

{
  "title": "Gender",
  "maxLength": 160,
  "x-usim": {
    "authoring": {
      "editor": "gender",
      "order": 1,
      "detail": "simple"
    }
  },
  "type": "string",
  "description": "The patient's authored gender description."
}

Pronouns

patients.*.demographics.pronouns

string · Optional; an omitted value is not a normal, negative, or zero value

The patient's authored pronouns. Never infer these from name, appearance, gender, or sex assigned at birth.

  • Maximum length: 160 characters

Field schema

{
  "title": "Pronouns",
  "maxLength": 160,
  "x-usim": {
    "authoring": {
      "suggestions": [
        "She/her",
        "He/him",
        "They/them",
        "She/they",
        "He/they",
        "Use name",
        "Not specified"
      ],
      "order": 4,
      "detail": "expanded"
    }
  },
  "type": "string",
  "description": "The patient's authored pronouns. Never infer these from name, appearance, gender, or sex assigned at birth."
}

Sexual orientation

patients.*.demographics.sexualOrientation

string · Optional; an omitted value is not a normal, negative, or zero value

Optional self-described sexual orientation. This does not specify sexual practices, anatomy, relationships, or pregnancy potential.

  • Maximum length: 160 characters

Field schema

{
  "title": "Sexual orientation",
  "maxLength": 160,
  "x-usim": {
    "authoring": {
      "suggestions": [
        "Straight / heterosexual",
        "Gay",
        "Lesbian",
        "Bisexual",
        "Pansexual",
        "Asexual",
        "Queer",
        "Questioning",
        "Not specified"
      ],
      "order": 5,
      "detail": "expanded"
    }
  },
  "type": "string",
  "description": "Optional self-described sexual orientation. This does not specify sexual practices, anatomy, relationships, or pregnancy potential."
}

Sex assigned at birth

patients.*.demographics.sexAssignedAtBirth

string · Optional; an omitted value is not a normal, negative, or zero value

Optional authored sex assigned at birth, separate from gender. Does not establish current anatomy, reproductive history, or treatment.

  • Maximum length: 160 characters

Field schema

{
  "title": "Sex assigned at birth",
  "maxLength": 160,
  "x-usim": {
    "authoring": {
      "suggestions": [
        "Female",
        "Male",
        "Intersex",
        "Unknown",
        "Not specified"
      ],
      "order": 6,
      "detail": "expanded"
    }
  },
  "type": "string",
  "description": "Optional authored sex assigned at birth, separate from gender. Does not establish current anatomy, reproductive history, or treatment."
}

Height display unit

patients.*.demographics.heightUnit

string · Optional; an omitted value is not a normal, negative, or zero value

Preferred height display unit in the scenario editor; the measurement remains stored in centimeters.

Allowed values: cm, in, ft-in

Field schema

{
  "type": "string",
  "title": "Height display unit",
  "enum": [
    "cm",
    "in",
    "ft-in"
  ],
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "description": "Preferred height display unit in the scenario editor; the measurement remains stored in centimeters."
}

Weight display unit

patients.*.demographics.weightUnit

string · Optional; an omitted value is not a normal, negative, or zero value

Preferred weight display unit in the scenario editor; the measurement remains stored in kilograms.

Allowed values: kg, lb

Field schema

{
  "type": "string",
  "title": "Weight display unit",
  "enum": [
    "kg",
    "lb"
  ],
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "description": "Preferred weight display unit in the scenario editor; the measurement remains stored in kilograms."
}

History

patients.*.history

array · Optional; an omitted value is not a normal, negative, or zero value

The history available about this patient, including symptoms, background, medications, and allergies.

Field schema

{
  "title": "History",
  "x-usim": {
    "authoring": {
      "editor": "history",
      "order": 7
    }
  },
  "type": "array",
  "items": {
    "anyOf": [
      {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "content",
          "disclosure",
          "category"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
          },
          "content": {
            "type": "string",
            "title": "Content",
            "description": "The Content for this entry. Omit optional information that has not been specified."
          },
          "disclosure": {
            "anyOf": [
              {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "audience",
                  "mode"
                ],
                "properties": {
                  "audience": {
                    "minItems": 1,
                    "uniqueItems": true,
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "const": "learner",
                          "type": "string",
                          "description": "The required literal value \"learner\"."
                        },
                        {
                          "const": "facilitator",
                          "type": "string",
                          "description": "The required literal value \"facilitator\"."
                        }
                      ],
                      "title": "Audience",
                      "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                    },
                    "title": "Audience",
                    "description": "Authorized output audiences. UI hints do not replace output filtering."
                  },
                  "mode": {
                    "anyOf": [
                      {
                        "const": "initial",
                        "type": "string",
                        "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                      },
                      {
                        "const": "facilitator",
                        "type": "string",
                        "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                      }
                    ],
                    "title": "Mode",
                    "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                  }
                },
                "description": "Structured disclosure details. Omitted optional values remain unspecified."
              },
              {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "audience",
                  "mode",
                  "resourceId"
                ],
                "properties": {
                  "audience": {
                    "minItems": 1,
                    "uniqueItems": true,
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "const": "learner",
                          "type": "string",
                          "description": "The required literal value \"learner\"."
                        },
                        {
                          "const": "facilitator",
                          "type": "string",
                          "description": "The required literal value \"facilitator\"."
                        }
                      ],
                      "title": "Audience",
                      "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                    },
                    "title": "Audience",
                    "description": "Authorized output audiences. UI hints do not replace output filtering."
                  },
                  "mode": {
                    "const": "on-resource-response",
                    "type": "string",
                    "title": "Mode",
                    "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                  },
                  "resourceId": {
                    "minLength": 1,
                    "maxLength": 128,
                    "pattern": "\\S",
                    "title": "Identifier",
                    "x-usim": {
                      "reference": {
                        "collection": "resources",
                        "label": "name"
                      }
                    },
                    "type": "string",
                    "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
                  }
                },
                "description": "Structured disclosure details. Omitted optional values remain unspecified."
              },
              {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "audience",
                  "mode",
                  "actionId"
                ],
                "properties": {
                  "audience": {
                    "minItems": 1,
                    "uniqueItems": true,
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "const": "learner",
                          "type": "string",
                          "description": "The required literal value \"learner\"."
                        },
                        {
                          "const": "facilitator",
                          "type": "string",
                          "description": "The required literal value \"facilitator\"."
                        }
                      ],
                      "title": "Audience",
                      "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                    },
                    "title": "Audience",
                    "description": "Authorized output audiences. UI hints do not replace output filtering."
                  },
                  "mode": {
                    "const": "on-action",
                    "type": "string",
                    "title": "Mode",
                    "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                  },
                  "actionId": {
                    "minLength": 1,
                    "maxLength": 128,
                    "pattern": "\\S",
                    "title": "Identifier",
                    "x-usim": {
                      "reference": {
                        "collection": "events.actions",
                        "label": "label"
                      }
                    },
                    "type": "string",
                    "description": "Successful completion of this action reveals the entry."
                  }
                },
                "description": "Structured disclosure details. Omitted optional values remain unspecified."
              },
              {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "audience",
                  "mode",
                  "conditionId"
                ],
                "properties": {
                  "audience": {
                    "minItems": 1,
                    "uniqueItems": true,
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "const": "learner",
                          "type": "string",
                          "description": "The required literal value \"learner\"."
                        },
                        {
                          "const": "facilitator",
                          "type": "string",
                          "description": "The required literal value \"facilitator\"."
                        }
                      ],
                      "title": "Audience",
                      "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                    },
                    "title": "Audience",
                    "description": "Authorized output audiences. UI hints do not replace output filtering."
                  },
                  "mode": {
                    "const": "on-condition",
                    "type": "string",
                    "title": "Mode",
                    "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                  },
                  "conditionId": {
                    "minLength": 1,
                    "maxLength": 128,
                    "pattern": "\\S",
                    "title": "Identifier",
                    "x-usim": {
                      "reference": {
                        "collection": "events.conditions",
                        "label": "id"
                      }
                    },
                    "type": "string",
                    "description": "Reveal when the condition first becomes true; reject unrelated trigger fields."
                  }
                },
                "description": "Structured disclosure details. Omitted optional values remain unspecified."
              }
            ],
            "title": "Disclosure",
            "description": "Select one of the declared Disclosure alternatives; use the fields belonging to that alternative."
          },
          "occurredAtSeconds": {
            "type": "number",
            "title": "Occurred at seconds",
            "description": "Time relative to scenario start; negative values describe pre-arrival events."
          },
          "category": {
            "anyOf": [
              {
                "const": "chief-complaint",
                "type": "string",
                "description": "The required literal value \"chief-complaint\"."
              },
              {
                "const": "present-illness",
                "type": "string",
                "description": "The required literal value \"present-illness\"."
              },
              {
                "const": "medical",
                "type": "string",
                "description": "The required literal value \"medical\"."
              },
              {
                "const": "surgical",
                "type": "string",
                "description": "The required literal value \"surgical\"."
              },
              {
                "const": "medication",
                "type": "string",
                "description": "The required literal value \"medication\"."
              },
              {
                "const": "family",
                "type": "string",
                "description": "The required literal value \"family\"."
              },
              {
                "const": "social",
                "type": "string",
                "description": "The required literal value \"social\"."
              }
            ],
            "title": "Category",
            "description": "Select one of the declared Category alternatives; use the fields belonging to that alternative."
          }
        },
        "description": "Separate entries for chief-complaint, present-illness, medical, surgical, medication, allergy, family, and social history."
      },
      {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "content",
          "disclosure",
          "category"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
          },
          "content": {
            "type": "string",
            "title": "Content",
            "description": "The Content for this entry. Omit optional information that has not been specified."
          },
          "disclosure": {
            "anyOf": [
              {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "audience",
                  "mode"
                ],
                "properties": {
                  "audience": {
                    "minItems": 1,
                    "uniqueItems": true,
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "const": "learner",
                          "type": "string",
                          "description": "The required literal value \"learner\"."
                        },
                        {
                          "const": "facilitator",
                          "type": "string",
                          "description": "The required literal value \"facilitator\"."
                        }
                      ],
                      "title": "Audience",
                      "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                    },
                    "title": "Audience",
                    "description": "Authorized output audiences. UI hints do not replace output filtering."
                  },
                  "mode": {
                    "anyOf": [
                      {
                        "const": "initial",
                        "type": "string",
                        "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                      },
                      {
                        "const": "facilitator",
                        "type": "string",
                        "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                      }
                    ],
                    "title": "Mode",
                    "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                  }
                },
                "description": "Structured disclosure details. Omitted optional values remain unspecified."
              },
              {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "audience",
                  "mode",
                  "resourceId"
                ],
                "properties": {
                  "audience": {
                    "minItems": 1,
                    "uniqueItems": true,
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "const": "learner",
                          "type": "string",
                          "description": "The required literal value \"learner\"."
                        },
                        {
                          "const": "facilitator",
                          "type": "string",
                          "description": "The required literal value \"facilitator\"."
                        }
                      ],
                      "title": "Audience",
                      "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                    },
                    "title": "Audience",
                    "description": "Authorized output audiences. UI hints do not replace output filtering."
                  },
                  "mode": {
                    "const": "on-resource-response",
                    "type": "string",
                    "title": "Mode",
                    "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                  },
                  "resourceId": {
                    "minLength": 1,
                    "maxLength": 128,
                    "pattern": "\\S",
                    "title": "Identifier",
                    "x-usim": {
                      "reference": {
                        "collection": "resources",
                        "label": "name"
                      }
                    },
                    "type": "string",
                    "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
                  }
                },
                "description": "Structured disclosure details. Omitted optional values remain unspecified."
              },
              {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "audience",
                  "mode",
                  "actionId"
                ],
                "properties": {
                  "audience": {
                    "minItems": 1,
                    "uniqueItems": true,
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "const": "learner",
                          "type": "string",
                          "description": "The required literal value \"learner\"."
                        },
                        {
                          "const": "facilitator",
                          "type": "string",
                          "description": "The required literal value \"facilitator\"."
                        }
                      ],
                      "title": "Audience",
                      "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                    },
                    "title": "Audience",
                    "description": "Authorized output audiences. UI hints do not replace output filtering."
                  },
                  "mode": {
                    "const": "on-action",
                    "type": "string",
                    "title": "Mode",
                    "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                  },
                  "actionId": {
                    "minLength": 1,
                    "maxLength": 128,
                    "pattern": "\\S",
                    "title": "Identifier",
                    "x-usim": {
                      "reference": {
                        "collection": "events.actions",
                        "label": "label"
                      }
                    },
                    "type": "string",
                    "description": "Successful completion of this action reveals the entry."
                  }
                },
                "description": "Structured disclosure details. Omitted optional values remain unspecified."
              },
              {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "audience",
                  "mode",
                  "conditionId"
                ],
                "properties": {
                  "audience": {
                    "minItems": 1,
                    "uniqueItems": true,
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "const": "learner",
                          "type": "string",
                          "description": "The required literal value \"learner\"."
                        },
                        {
                          "const": "facilitator",
                          "type": "string",
                          "description": "The required literal value \"facilitator\"."
                        }
                      ],
                      "title": "Audience",
                      "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                    },
                    "title": "Audience",
                    "description": "Authorized output audiences. UI hints do not replace output filtering."
                  },
                  "mode": {
                    "const": "on-condition",
                    "type": "string",
                    "title": "Mode",
                    "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                  },
                  "conditionId": {
                    "minLength": 1,
                    "maxLength": 128,
                    "pattern": "\\S",
                    "title": "Identifier",
                    "x-usim": {
                      "reference": {
                        "collection": "events.conditions",
                        "label": "id"
                      }
                    },
                    "type": "string",
                    "description": "Reveal when the condition first becomes true; reject unrelated trigger fields."
                  }
                },
                "description": "Structured disclosure details. Omitted optional values remain unspecified."
              }
            ],
            "title": "Disclosure",
            "description": "Select one of the declared Disclosure alternatives; use the fields belonging to that alternative."
          },
          "occurredAtSeconds": {
            "type": "number",
            "title": "Occurred at seconds",
            "description": "Time relative to scenario start; negative values describe pre-arrival events."
          },
          "category": {
            "const": "allergy",
            "type": "string",
            "title": "Category",
            "description": "The required literal value \"allergy\"."
          },
          "allergy": {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "substance"
            ],
            "properties": {
              "substance": {
                "maxLength": 1000,
                "type": "string",
                "title": "Substance",
                "description": "The Substance for this entry. Omit optional information that has not been specified."
              },
              "reaction": {
                "maxLength": 1000,
                "type": "string",
                "title": "Reaction",
                "description": "The Reaction for this entry. Omit optional information that has not been specified."
              },
              "severity": {
                "anyOf": [
                  {
                    "const": "mild",
                    "type": "string",
                    "description": "The required literal value \"mild\"."
                  },
                  {
                    "const": "moderate",
                    "type": "string",
                    "description": "The required literal value \"moderate\"."
                  },
                  {
                    "const": "severe",
                    "type": "string",
                    "description": "The required literal value \"severe\"."
                  },
                  {
                    "const": "unknown",
                    "type": "string",
                    "description": "The required literal value \"unknown\"."
                  }
                ],
                "title": "Severity",
                "description": "Select one of the declared Severity alternatives; use the fields belonging to that alternative."
              }
            },
            "title": "Allergy",
            "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."
          }
        },
        "description": "Separate entries for chief-complaint, present-illness, medical, surgical, medication, allergy, family, and social history."
      }
    ],
    "description": "Separate entries for chief-complaint, present-illness, medical, surgical, medication, allergy, family, and social history."
  },
  "description": "The history available about this patient, including symptoms, background, medications, and allergies."
}

*

patients.*.history.*

Value · Required when the parent is present

Separate entries for chief-complaint, present-illness, medical, surgical, medication, allergy, family, and social history.

Field schema

{
  "anyOf": [
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "id",
        "content",
        "disclosure",
        "category"
      ],
      "properties": {
        "id": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "authoring": {
              "hidden": true
            }
          },
          "type": "string",
          "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
        },
        "content": {
          "type": "string",
          "title": "Content",
          "description": "The Content for this entry. Omit optional information that has not been specified."
        },
        "disclosure": {
          "anyOf": [
            {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "audience",
                "mode"
              ],
              "properties": {
                "audience": {
                  "minItems": 1,
                  "uniqueItems": true,
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "const": "learner",
                        "type": "string",
                        "description": "The required literal value \"learner\"."
                      },
                      {
                        "const": "facilitator",
                        "type": "string",
                        "description": "The required literal value \"facilitator\"."
                      }
                    ],
                    "title": "Audience",
                    "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                  },
                  "title": "Audience",
                  "description": "Authorized output audiences. UI hints do not replace output filtering."
                },
                "mode": {
                  "anyOf": [
                    {
                      "const": "initial",
                      "type": "string",
                      "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                    },
                    {
                      "const": "facilitator",
                      "type": "string",
                      "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                    }
                  ],
                  "title": "Mode",
                  "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                }
              },
              "description": "Structured disclosure details. Omitted optional values remain unspecified."
            },
            {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "audience",
                "mode",
                "resourceId"
              ],
              "properties": {
                "audience": {
                  "minItems": 1,
                  "uniqueItems": true,
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "const": "learner",
                        "type": "string",
                        "description": "The required literal value \"learner\"."
                      },
                      {
                        "const": "facilitator",
                        "type": "string",
                        "description": "The required literal value \"facilitator\"."
                      }
                    ],
                    "title": "Audience",
                    "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                  },
                  "title": "Audience",
                  "description": "Authorized output audiences. UI hints do not replace output filtering."
                },
                "mode": {
                  "const": "on-resource-response",
                  "type": "string",
                  "title": "Mode",
                  "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                },
                "resourceId": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "reference": {
                      "collection": "resources",
                      "label": "name"
                    }
                  },
                  "type": "string",
                  "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
                }
              },
              "description": "Structured disclosure details. Omitted optional values remain unspecified."
            },
            {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "audience",
                "mode",
                "actionId"
              ],
              "properties": {
                "audience": {
                  "minItems": 1,
                  "uniqueItems": true,
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "const": "learner",
                        "type": "string",
                        "description": "The required literal value \"learner\"."
                      },
                      {
                        "const": "facilitator",
                        "type": "string",
                        "description": "The required literal value \"facilitator\"."
                      }
                    ],
                    "title": "Audience",
                    "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                  },
                  "title": "Audience",
                  "description": "Authorized output audiences. UI hints do not replace output filtering."
                },
                "mode": {
                  "const": "on-action",
                  "type": "string",
                  "title": "Mode",
                  "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                },
                "actionId": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "reference": {
                      "collection": "events.actions",
                      "label": "label"
                    }
                  },
                  "type": "string",
                  "description": "Successful completion of this action reveals the entry."
                }
              },
              "description": "Structured disclosure details. Omitted optional values remain unspecified."
            },
            {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "audience",
                "mode",
                "conditionId"
              ],
              "properties": {
                "audience": {
                  "minItems": 1,
                  "uniqueItems": true,
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "const": "learner",
                        "type": "string",
                        "description": "The required literal value \"learner\"."
                      },
                      {
                        "const": "facilitator",
                        "type": "string",
                        "description": "The required literal value \"facilitator\"."
                      }
                    ],
                    "title": "Audience",
                    "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                  },
                  "title": "Audience",
                  "description": "Authorized output audiences. UI hints do not replace output filtering."
                },
                "mode": {
                  "const": "on-condition",
                  "type": "string",
                  "title": "Mode",
                  "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                },
                "conditionId": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "reference": {
                      "collection": "events.conditions",
                      "label": "id"
                    }
                  },
                  "type": "string",
                  "description": "Reveal when the condition first becomes true; reject unrelated trigger fields."
                }
              },
              "description": "Structured disclosure details. Omitted optional values remain unspecified."
            }
          ],
          "title": "Disclosure",
          "description": "Select one of the declared Disclosure alternatives; use the fields belonging to that alternative."
        },
        "occurredAtSeconds": {
          "type": "number",
          "title": "Occurred at seconds",
          "description": "Time relative to scenario start; negative values describe pre-arrival events."
        },
        "category": {
          "anyOf": [
            {
              "const": "chief-complaint",
              "type": "string",
              "description": "The required literal value \"chief-complaint\"."
            },
            {
              "const": "present-illness",
              "type": "string",
              "description": "The required literal value \"present-illness\"."
            },
            {
              "const": "medical",
              "type": "string",
              "description": "The required literal value \"medical\"."
            },
            {
              "const": "surgical",
              "type": "string",
              "description": "The required literal value \"surgical\"."
            },
            {
              "const": "medication",
              "type": "string",
              "description": "The required literal value \"medication\"."
            },
            {
              "const": "family",
              "type": "string",
              "description": "The required literal value \"family\"."
            },
            {
              "const": "social",
              "type": "string",
              "description": "The required literal value \"social\"."
            }
          ],
          "title": "Category",
          "description": "Select one of the declared Category alternatives; use the fields belonging to that alternative."
        }
      },
      "description": "Separate entries for chief-complaint, present-illness, medical, surgical, medication, allergy, family, and social history."
    },
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "id",
        "content",
        "disclosure",
        "category"
      ],
      "properties": {
        "id": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "authoring": {
              "hidden": true
            }
          },
          "type": "string",
          "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
        },
        "content": {
          "type": "string",
          "title": "Content",
          "description": "The Content for this entry. Omit optional information that has not been specified."
        },
        "disclosure": {
          "anyOf": [
            {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "audience",
                "mode"
              ],
              "properties": {
                "audience": {
                  "minItems": 1,
                  "uniqueItems": true,
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "const": "learner",
                        "type": "string",
                        "description": "The required literal value \"learner\"."
                      },
                      {
                        "const": "facilitator",
                        "type": "string",
                        "description": "The required literal value \"facilitator\"."
                      }
                    ],
                    "title": "Audience",
                    "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                  },
                  "title": "Audience",
                  "description": "Authorized output audiences. UI hints do not replace output filtering."
                },
                "mode": {
                  "anyOf": [
                    {
                      "const": "initial",
                      "type": "string",
                      "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                    },
                    {
                      "const": "facilitator",
                      "type": "string",
                      "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                    }
                  ],
                  "title": "Mode",
                  "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                }
              },
              "description": "Structured disclosure details. Omitted optional values remain unspecified."
            },
            {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "audience",
                "mode",
                "resourceId"
              ],
              "properties": {
                "audience": {
                  "minItems": 1,
                  "uniqueItems": true,
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "const": "learner",
                        "type": "string",
                        "description": "The required literal value \"learner\"."
                      },
                      {
                        "const": "facilitator",
                        "type": "string",
                        "description": "The required literal value \"facilitator\"."
                      }
                    ],
                    "title": "Audience",
                    "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                  },
                  "title": "Audience",
                  "description": "Authorized output audiences. UI hints do not replace output filtering."
                },
                "mode": {
                  "const": "on-resource-response",
                  "type": "string",
                  "title": "Mode",
                  "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                },
                "resourceId": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "reference": {
                      "collection": "resources",
                      "label": "name"
                    }
                  },
                  "type": "string",
                  "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
                }
              },
              "description": "Structured disclosure details. Omitted optional values remain unspecified."
            },
            {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "audience",
                "mode",
                "actionId"
              ],
              "properties": {
                "audience": {
                  "minItems": 1,
                  "uniqueItems": true,
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "const": "learner",
                        "type": "string",
                        "description": "The required literal value \"learner\"."
                      },
                      {
                        "const": "facilitator",
                        "type": "string",
                        "description": "The required literal value \"facilitator\"."
                      }
                    ],
                    "title": "Audience",
                    "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                  },
                  "title": "Audience",
                  "description": "Authorized output audiences. UI hints do not replace output filtering."
                },
                "mode": {
                  "const": "on-action",
                  "type": "string",
                  "title": "Mode",
                  "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                },
                "actionId": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "reference": {
                      "collection": "events.actions",
                      "label": "label"
                    }
                  },
                  "type": "string",
                  "description": "Successful completion of this action reveals the entry."
                }
              },
              "description": "Structured disclosure details. Omitted optional values remain unspecified."
            },
            {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "audience",
                "mode",
                "conditionId"
              ],
              "properties": {
                "audience": {
                  "minItems": 1,
                  "uniqueItems": true,
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "const": "learner",
                        "type": "string",
                        "description": "The required literal value \"learner\"."
                      },
                      {
                        "const": "facilitator",
                        "type": "string",
                        "description": "The required literal value \"facilitator\"."
                      }
                    ],
                    "title": "Audience",
                    "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                  },
                  "title": "Audience",
                  "description": "Authorized output audiences. UI hints do not replace output filtering."
                },
                "mode": {
                  "const": "on-condition",
                  "type": "string",
                  "title": "Mode",
                  "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                },
                "conditionId": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "reference": {
                      "collection": "events.conditions",
                      "label": "id"
                    }
                  },
                  "type": "string",
                  "description": "Reveal when the condition first becomes true; reject unrelated trigger fields."
                }
              },
              "description": "Structured disclosure details. Omitted optional values remain unspecified."
            }
          ],
          "title": "Disclosure",
          "description": "Select one of the declared Disclosure alternatives; use the fields belonging to that alternative."
        },
        "occurredAtSeconds": {
          "type": "number",
          "title": "Occurred at seconds",
          "description": "Time relative to scenario start; negative values describe pre-arrival events."
        },
        "category": {
          "const": "allergy",
          "type": "string",
          "title": "Category",
          "description": "The required literal value \"allergy\"."
        },
        "allergy": {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "substance"
          ],
          "properties": {
            "substance": {
              "maxLength": 1000,
              "type": "string",
              "title": "Substance",
              "description": "The Substance for this entry. Omit optional information that has not been specified."
            },
            "reaction": {
              "maxLength": 1000,
              "type": "string",
              "title": "Reaction",
              "description": "The Reaction for this entry. Omit optional information that has not been specified."
            },
            "severity": {
              "anyOf": [
                {
                  "const": "mild",
                  "type": "string",
                  "description": "The required literal value \"mild\"."
                },
                {
                  "const": "moderate",
                  "type": "string",
                  "description": "The required literal value \"moderate\"."
                },
                {
                  "const": "severe",
                  "type": "string",
                  "description": "The required literal value \"severe\"."
                },
                {
                  "const": "unknown",
                  "type": "string",
                  "description": "The required literal value \"unknown\"."
                }
              ],
              "title": "Severity",
              "description": "Select one of the declared Severity alternatives; use the fields belonging to that alternative."
            }
          },
          "title": "Allergy",
          "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."
        }
      },
      "description": "Separate entries for chief-complaint, present-illness, medical, surgical, medication, allergy, family, and social history."
    }
  ],
  "description": "Separate entries for chief-complaint, present-illness, medical, surgical, medication, allergy, family, and social history."
}

Identifier

patients.*.history.*.id

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
}

Content

patients.*.history.*.content

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "title": "Content",
  "description": "The Content for this entry. Omit optional information that has not been specified."
}

Disclosure

patients.*.history.*.disclosure

Value · Required when the parent is present

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

Field schema

{
  "anyOf": [
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "audience",
        "mode"
      ],
      "properties": {
        "audience": {
          "minItems": 1,
          "uniqueItems": true,
          "type": "array",
          "items": {
            "anyOf": [
              {
                "const": "learner",
                "type": "string",
                "description": "The required literal value \"learner\"."
              },
              {
                "const": "facilitator",
                "type": "string",
                "description": "The required literal value \"facilitator\"."
              }
            ],
            "title": "Audience",
            "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
          },
          "title": "Audience",
          "description": "Authorized output audiences. UI hints do not replace output filtering."
        },
        "mode": {
          "anyOf": [
            {
              "const": "initial",
              "type": "string",
              "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
            },
            {
              "const": "facilitator",
              "type": "string",
              "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
            }
          ],
          "title": "Mode",
          "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
        }
      },
      "description": "Structured disclosure details. Omitted optional values remain unspecified."
    },
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "audience",
        "mode",
        "resourceId"
      ],
      "properties": {
        "audience": {
          "minItems": 1,
          "uniqueItems": true,
          "type": "array",
          "items": {
            "anyOf": [
              {
                "const": "learner",
                "type": "string",
                "description": "The required literal value \"learner\"."
              },
              {
                "const": "facilitator",
                "type": "string",
                "description": "The required literal value \"facilitator\"."
              }
            ],
            "title": "Audience",
            "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
          },
          "title": "Audience",
          "description": "Authorized output audiences. UI hints do not replace output filtering."
        },
        "mode": {
          "const": "on-resource-response",
          "type": "string",
          "title": "Mode",
          "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
        },
        "resourceId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "resources",
              "label": "name"
            }
          },
          "type": "string",
          "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
        }
      },
      "description": "Structured disclosure details. Omitted optional values remain unspecified."
    },
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "audience",
        "mode",
        "actionId"
      ],
      "properties": {
        "audience": {
          "minItems": 1,
          "uniqueItems": true,
          "type": "array",
          "items": {
            "anyOf": [
              {
                "const": "learner",
                "type": "string",
                "description": "The required literal value \"learner\"."
              },
              {
                "const": "facilitator",
                "type": "string",
                "description": "The required literal value \"facilitator\"."
              }
            ],
            "title": "Audience",
            "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
          },
          "title": "Audience",
          "description": "Authorized output audiences. UI hints do not replace output filtering."
        },
        "mode": {
          "const": "on-action",
          "type": "string",
          "title": "Mode",
          "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
        },
        "actionId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "events.actions",
              "label": "label"
            }
          },
          "type": "string",
          "description": "Successful completion of this action reveals the entry."
        }
      },
      "description": "Structured disclosure details. Omitted optional values remain unspecified."
    },
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "audience",
        "mode",
        "conditionId"
      ],
      "properties": {
        "audience": {
          "minItems": 1,
          "uniqueItems": true,
          "type": "array",
          "items": {
            "anyOf": [
              {
                "const": "learner",
                "type": "string",
                "description": "The required literal value \"learner\"."
              },
              {
                "const": "facilitator",
                "type": "string",
                "description": "The required literal value \"facilitator\"."
              }
            ],
            "title": "Audience",
            "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
          },
          "title": "Audience",
          "description": "Authorized output audiences. UI hints do not replace output filtering."
        },
        "mode": {
          "const": "on-condition",
          "type": "string",
          "title": "Mode",
          "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
        },
        "conditionId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "events.conditions",
              "label": "id"
            }
          },
          "type": "string",
          "description": "Reveal when the condition first becomes true; reject unrelated trigger fields."
        }
      },
      "description": "Structured disclosure details. Omitted optional values remain unspecified."
    }
  ],
  "title": "Disclosure",
  "description": "Select one of the declared Disclosure alternatives; use the fields belonging to that alternative."
}

Audience

patients.*.history.*.disclosure.audience

array · Required when the parent is present

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

Field schema

{
  "minItems": 1,
  "uniqueItems": true,
  "type": "array",
  "items": {
    "anyOf": [
      {
        "const": "learner",
        "type": "string",
        "description": "The required literal value \"learner\"."
      },
      {
        "const": "facilitator",
        "type": "string",
        "description": "The required literal value \"facilitator\"."
      }
    ],
    "title": "Audience",
    "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
  },
  "title": "Audience",
  "description": "Authorized output audiences. UI hints do not replace output filtering."
}

Audience

patients.*.history.*.disclosure.audience.*

Value · Required when the parent is present

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

Allowed values: learner, facilitator

Field schema

{
  "anyOf": [
    {
      "const": "learner",
      "type": "string",
      "description": "The required literal value \"learner\"."
    },
    {
      "const": "facilitator",
      "type": "string",
      "description": "The required literal value \"facilitator\"."
    }
  ],
  "title": "Audience",
  "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
}

Mode

patients.*.history.*.disclosure.mode

Value · Required when the parent is present

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

Allowed values: initial, facilitator

Field schema

{
  "anyOf": [
    {
      "const": "initial",
      "type": "string",
      "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
    },
    {
      "const": "facilitator",
      "type": "string",
      "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
    }
  ],
  "title": "Mode",
  "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
}

Identifier

patients.*.history.*.disclosure.resourceId

string · Optional; an omitted value is not a normal, negative, or zero value

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References resources using name as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "resources",
      "label": "name"
    }
  },
  "type": "string",
  "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
}

Identifier

patients.*.history.*.disclosure.actionId

string · Optional; an omitted value is not a normal, negative, or zero value

Successful completion of this action reveals the entry.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References events.actions using label as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "events.actions",
      "label": "label"
    }
  },
  "type": "string",
  "description": "Successful completion of this action reveals the entry."
}

Identifier

patients.*.history.*.disclosure.conditionId

string · Optional; an omitted value is not a normal, negative, or zero value

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References events.conditions using id as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "events.conditions",
      "label": "id"
    }
  },
  "type": "string",
  "description": "Reveal when the condition first becomes true; reject unrelated trigger fields."
}

Occurred at seconds

patients.*.history.*.occurredAtSeconds

number · Optional; an omitted value is not a normal, negative, or zero value

Time relative to scenario start; negative values describe pre-arrival events.

Field schema

{
  "type": "number",
  "title": "Occurred at seconds",
  "description": "Time relative to scenario start; negative values describe pre-arrival events."
}

Category

patients.*.history.*.category

Value · Required when the parent is present

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

Allowed values: chief-complaint, present-illness, medical, surgical, medication, family, social

Field schema

{
  "anyOf": [
    {
      "const": "chief-complaint",
      "type": "string",
      "description": "The required literal value \"chief-complaint\"."
    },
    {
      "const": "present-illness",
      "type": "string",
      "description": "The required literal value \"present-illness\"."
    },
    {
      "const": "medical",
      "type": "string",
      "description": "The required literal value \"medical\"."
    },
    {
      "const": "surgical",
      "type": "string",
      "description": "The required literal value \"surgical\"."
    },
    {
      "const": "medication",
      "type": "string",
      "description": "The required literal value \"medication\"."
    },
    {
      "const": "family",
      "type": "string",
      "description": "The required literal value \"family\"."
    },
    {
      "const": "social",
      "type": "string",
      "description": "The required literal value \"social\"."
    }
  ],
  "title": "Category",
  "description": "Select one of the declared Category alternatives; use the fields belonging to that alternative."
}

Allergy

patients.*.history.*.allergy

object · Optional; an omitted value is not a normal, negative, or zero value

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.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "substance"
  ],
  "properties": {
    "substance": {
      "maxLength": 1000,
      "type": "string",
      "title": "Substance",
      "description": "The Substance for this entry. Omit optional information that has not been specified."
    },
    "reaction": {
      "maxLength": 1000,
      "type": "string",
      "title": "Reaction",
      "description": "The Reaction for this entry. Omit optional information that has not been specified."
    },
    "severity": {
      "anyOf": [
        {
          "const": "mild",
          "type": "string",
          "description": "The required literal value \"mild\"."
        },
        {
          "const": "moderate",
          "type": "string",
          "description": "The required literal value \"moderate\"."
        },
        {
          "const": "severe",
          "type": "string",
          "description": "The required literal value \"severe\"."
        },
        {
          "const": "unknown",
          "type": "string",
          "description": "The required literal value \"unknown\"."
        }
      ],
      "title": "Severity",
      "description": "Select one of the declared Severity alternatives; use the fields belonging to that alternative."
    }
  },
  "title": "Allergy",
  "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."
}

Substance

patients.*.history.*.allergy.substance

string · Required when the parent is present

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

  • Maximum length: 1000 characters

Field schema

{
  "maxLength": 1000,
  "type": "string",
  "title": "Substance",
  "description": "The Substance for this entry. Omit optional information that has not been specified."
}

Reaction

patients.*.history.*.allergy.reaction

string · Optional; an omitted value is not a normal, negative, or zero value

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

  • Maximum length: 1000 characters

Field schema

{
  "maxLength": 1000,
  "type": "string",
  "title": "Reaction",
  "description": "The Reaction for this entry. Omit optional information that has not been specified."
}

Severity

patients.*.history.*.allergy.severity

Value · Optional; an omitted value is not a normal, negative, or zero value

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

Allowed values: mild, moderate, severe, unknown

Field schema

{
  "anyOf": [
    {
      "const": "mild",
      "type": "string",
      "description": "The required literal value \"mild\"."
    },
    {
      "const": "moderate",
      "type": "string",
      "description": "The required literal value \"moderate\"."
    },
    {
      "const": "severe",
      "type": "string",
      "description": "The required literal value \"severe\"."
    },
    {
      "const": "unknown",
      "type": "string",
      "description": "The required literal value \"unknown\"."
    }
  ],
  "title": "Severity",
  "description": "Select one of the declared Severity alternatives; use the fields belonging to that alternative."
}

Structured system references

patients.*.reviewOfSystems

array · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "array",
  "items": {
    "additionalProperties": false,
    "type": "object",
    "required": [
      "system",
      "observationIds"
    ],
    "properties": {
      "system": {
        "type": "string",
        "title": "System",
        "description": "The System for this entry. Omit optional information that has not been specified."
      },
      "observationIds": {
        "minItems": 0,
        "uniqueItems": true,
        "type": "array",
        "items": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "observations",
              "label": "code"
            }
          },
          "type": "string",
          "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
        },
        "title": "Observation ids",
        "description": "Entries for Observation ids. An empty list means no entries have been authored."
      }
    },
    "description": "Groups symptom observations by authored system heading without duplicating their values."
  },
  "title": "Structured system references",
  "x-usim": {
    "authoring": {
      "group": "Additional patient definitions",
      "defaultOpen": false,
      "order": 30,
      "span": "full",
      "hidden": true
    }
  },
  "description": "Entries for Structured system references. An empty list means no entries have been authored."
}

*

patients.*.reviewOfSystems.*

object · Required when the parent is present

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

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "system",
    "observationIds"
  ],
  "properties": {
    "system": {
      "type": "string",
      "title": "System",
      "description": "The System for this entry. Omit optional information that has not been specified."
    },
    "observationIds": {
      "minItems": 0,
      "uniqueItems": true,
      "type": "array",
      "items": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "reference": {
            "collection": "observations",
            "label": "code"
          }
        },
        "type": "string",
        "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
      },
      "title": "Observation ids",
      "description": "Entries for Observation ids. An empty list means no entries have been authored."
    }
  },
  "description": "Groups symptom observations by authored system heading without duplicating their values."
}

System

patients.*.reviewOfSystems.*.system

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "title": "System",
  "description": "The System for this entry. Omit optional information that has not been specified."
}

Observation ids

patients.*.reviewOfSystems.*.observationIds

array · Required when the parent is present

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

Field schema

{
  "minItems": 0,
  "uniqueItems": true,
  "type": "array",
  "items": {
    "minLength": 1,
    "maxLength": 128,
    "pattern": "\\S",
    "title": "Identifier",
    "x-usim": {
      "reference": {
        "collection": "observations",
        "label": "code"
      }
    },
    "type": "string",
    "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
  },
  "title": "Observation ids",
  "description": "Entries for Observation ids. An empty list means no entries have been authored."
}

Identifier

patients.*.reviewOfSystems.*.observationIds.*

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References observations using code as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "observations",
      "label": "code"
    }
  },
  "type": "string",
  "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
}

Physiologic variables

patients.*.variables

array · Optional; an omitted value is not a normal, negative, or zero value

Numeric physiologic state with explicit concepts and units; observations describe when values are measured or disclosed.

Field schema

{
  "title": "Physiologic variables",
  "x-usim": {
    "authoring": {
      "editor": "variables",
      "addLabel": "Add variable",
      "order": 9
    }
  },
  "type": "array",
  "items": {
    "additionalProperties": false,
    "title": "Physiologic variable",
    "type": "object",
    "required": [
      "id",
      "concept",
      "unit"
    ],
    "properties": {
      "id": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "authoring": {
            "hidden": true
          }
        },
        "type": "string",
        "description": "Stable variable identifier used by effects and observations."
      },
      "concept": {
        "title": "Concept",
        "type": "string",
        "description": "The meaning of the variable, such as usim:hr for heart rate."
      },
      "value": {
        "title": "Initial value",
        "type": "number",
        "description": "The initial numeric value in the declared unit."
      },
      "unit": {
        "title": "Unit",
        "type": "string",
        "description": "The unit of this value; core concepts use the standard unit defined by the specification."
      }
    },
    "allOf": [
      {
        "if": {
          "properties": {
            "concept": {
              "const": "usim:hr"
            }
          },
          "required": [
            "concept"
          ]
        },
        "then": {
          "properties": {
            "unit": {
              "const": "beats/min"
            },
            "value": {
              "type": "number",
              "minimum": 0,
              "maximum": 1000
            }
          }
        }
      },
      {
        "if": {
          "properties": {
            "concept": {
              "const": "usim:sbp"
            }
          },
          "required": [
            "concept"
          ]
        },
        "then": {
          "properties": {
            "unit": {
              "const": "mmHg"
            },
            "value": {
              "type": "number",
              "minimum": 0,
              "maximum": 1000
            }
          }
        }
      },
      {
        "if": {
          "properties": {
            "concept": {
              "const": "usim:dbp"
            }
          },
          "required": [
            "concept"
          ]
        },
        "then": {
          "properties": {
            "unit": {
              "const": "mmHg"
            },
            "value": {
              "type": "number",
              "minimum": 0,
              "maximum": 1000
            }
          }
        }
      },
      {
        "if": {
          "properties": {
            "concept": {
              "const": "usim:rr"
            }
          },
          "required": [
            "concept"
          ]
        },
        "then": {
          "properties": {
            "unit": {
              "const": "breaths/min"
            },
            "value": {
              "type": "number",
              "minimum": 0,
              "maximum": 1000
            }
          }
        }
      },
      {
        "if": {
          "properties": {
            "concept": {
              "const": "usim:spo2"
            }
          },
          "required": [
            "concept"
          ]
        },
        "then": {
          "properties": {
            "unit": {
              "const": "%"
            },
            "value": {
              "type": "number",
              "minimum": 0,
              "maximum": 100
            }
          }
        }
      },
      {
        "if": {
          "properties": {
            "concept": {
              "const": "usim:temperature"
            }
          },
          "required": [
            "concept"
          ]
        },
        "then": {
          "properties": {
            "unit": {
              "const": "Cel"
            },
            "value": {
              "type": "number",
              "minimum": 0,
              "maximum": 1000
            }
          }
        }
      },
      {
        "if": {
          "properties": {
            "concept": {
              "const": "usim:etco2"
            }
          },
          "required": [
            "concept"
          ]
        },
        "then": {
          "properties": {
            "unit": {
              "const": "mmHg"
            },
            "value": {
              "type": "number",
              "minimum": 0,
              "maximum": 1000
            }
          }
        }
      },
      {
        "if": {
          "properties": {
            "concept": {
              "const": "usim:artSbp"
            }
          },
          "required": [
            "concept"
          ]
        },
        "then": {
          "properties": {
            "unit": {
              "const": "mmHg"
            },
            "value": {
              "type": "number",
              "minimum": 0,
              "maximum": 1000
            }
          }
        }
      },
      {
        "if": {
          "properties": {
            "concept": {
              "const": "usim:artDbp"
            }
          },
          "required": [
            "concept"
          ]
        },
        "then": {
          "properties": {
            "unit": {
              "const": "mmHg"
            },
            "value": {
              "type": "number",
              "minimum": 0,
              "maximum": 1000
            }
          }
        }
      }
    ],
    "description": "One numeric physiologic variable belonging to this patient."
  },
  "description": "Numeric physiologic state with explicit concepts and units; observations describe when values are measured or disclosed."
}

Physiologic variable

patients.*.variables.*

object · Required when the parent is present

One numeric physiologic variable belonging to this patient.

Field schema

{
  "additionalProperties": false,
  "title": "Physiologic variable",
  "type": "object",
  "required": [
    "id",
    "concept",
    "unit"
  ],
  "properties": {
    "id": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "authoring": {
          "hidden": true
        }
      },
      "type": "string",
      "description": "Stable variable identifier used by effects and observations."
    },
    "concept": {
      "title": "Concept",
      "type": "string",
      "description": "The meaning of the variable, such as usim:hr for heart rate."
    },
    "value": {
      "title": "Initial value",
      "type": "number",
      "description": "The initial numeric value in the declared unit."
    },
    "unit": {
      "title": "Unit",
      "type": "string",
      "description": "The unit of this value; core concepts use the standard unit defined by the specification."
    }
  },
  "allOf": [
    {
      "if": {
        "properties": {
          "concept": {
            "const": "usim:hr"
          }
        },
        "required": [
          "concept"
        ]
      },
      "then": {
        "properties": {
          "unit": {
            "const": "beats/min"
          },
          "value": {
            "type": "number",
            "minimum": 0,
            "maximum": 1000
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "concept": {
            "const": "usim:sbp"
          }
        },
        "required": [
          "concept"
        ]
      },
      "then": {
        "properties": {
          "unit": {
            "const": "mmHg"
          },
          "value": {
            "type": "number",
            "minimum": 0,
            "maximum": 1000
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "concept": {
            "const": "usim:dbp"
          }
        },
        "required": [
          "concept"
        ]
      },
      "then": {
        "properties": {
          "unit": {
            "const": "mmHg"
          },
          "value": {
            "type": "number",
            "minimum": 0,
            "maximum": 1000
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "concept": {
            "const": "usim:rr"
          }
        },
        "required": [
          "concept"
        ]
      },
      "then": {
        "properties": {
          "unit": {
            "const": "breaths/min"
          },
          "value": {
            "type": "number",
            "minimum": 0,
            "maximum": 1000
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "concept": {
            "const": "usim:spo2"
          }
        },
        "required": [
          "concept"
        ]
      },
      "then": {
        "properties": {
          "unit": {
            "const": "%"
          },
          "value": {
            "type": "number",
            "minimum": 0,
            "maximum": 100
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "concept": {
            "const": "usim:temperature"
          }
        },
        "required": [
          "concept"
        ]
      },
      "then": {
        "properties": {
          "unit": {
            "const": "Cel"
          },
          "value": {
            "type": "number",
            "minimum": 0,
            "maximum": 1000
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "concept": {
            "const": "usim:etco2"
          }
        },
        "required": [
          "concept"
        ]
      },
      "then": {
        "properties": {
          "unit": {
            "const": "mmHg"
          },
          "value": {
            "type": "number",
            "minimum": 0,
            "maximum": 1000
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "concept": {
            "const": "usim:artSbp"
          }
        },
        "required": [
          "concept"
        ]
      },
      "then": {
        "properties": {
          "unit": {
            "const": "mmHg"
          },
          "value": {
            "type": "number",
            "minimum": 0,
            "maximum": 1000
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "concept": {
            "const": "usim:artDbp"
          }
        },
        "required": [
          "concept"
        ]
      },
      "then": {
        "properties": {
          "unit": {
            "const": "mmHg"
          },
          "value": {
            "type": "number",
            "minimum": 0,
            "maximum": 1000
          }
        }
      }
    }
  ],
  "description": "One numeric physiologic variable belonging to this patient."
}

Identifier

patients.*.variables.*.id

string · Required when the parent is present

Stable variable identifier used by effects and observations.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "Stable variable identifier used by effects and observations."
}

Concept

patients.*.variables.*.concept

string · Required when the parent is present

The meaning of the variable, such as usim:hr for heart rate.

Field schema

{
  "title": "Concept",
  "type": "string",
  "description": "The meaning of the variable, such as usim:hr for heart rate."
}

Initial value

patients.*.variables.*.value

number · Optional; an omitted value is not a normal, negative, or zero value

The initial numeric value in the declared unit.

Field schema

{
  "title": "Initial value",
  "type": "number",
  "description": "The initial numeric value in the declared unit."
}

Unit

patients.*.variables.*.unit

string · Required when the parent is present

The unit of this value; core concepts use the standard unit defined by the specification.

Field schema

{
  "title": "Unit",
  "type": "string",
  "description": "The unit of this value; core concepts use the standard unit defined by the specification."
}

Monitor

patients.*.monitor

object · Optional; an omitted value is not a normal, negative, or zero value

The monitor configuration used to present patient observations.

Field schema

{
  "title": "Monitor",
  "additionalProperties": false,
  "x-usim": {
    "authoring": {
      "editor": "monitor",
      "order": 8
    }
  },
  "type": "object",
  "properties": {
    "rhythm": {
      "type": "string",
      "title": "Monitor rhythm",
      "enum": [
        "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"
      ],
      "description": "The ECG rhythm displayed on the monitor. Select the rhythm separately from whether the patient has a palpable pulse."
    },
    "pulsePresent": {
      "title": "Pulse present",
      "type": "boolean",
      "description": "Whether a palpable pulse is present. Use this to distinguish perfusing and pulseless presentations of the displayed rhythm."
    },
    "connections": {
      "title": "Monitor connections",
      "additionalProperties": false,
      "x-usim": {
        "authoring": {}
      },
      "type": "object",
      "properties": {
        "ecg": {
          "title": "ECG",
          "type": "boolean",
          "description": "ECG: connected exposes the available measurement; disconnected hides it without changing physiology."
        },
        "bloodPressure": {
          "title": "Blood pressure cuff",
          "type": "boolean",
          "description": "Blood pressure cuff: connected exposes the available measurement; disconnected hides it without changing physiology."
        },
        "spo2": {
          "title": "Pulse oximetry",
          "type": "boolean",
          "description": "Pulse oximetry: connected exposes the available measurement; disconnected hides it without changing physiology."
        },
        "respiration": {
          "title": "Respiratory monitoring",
          "type": "boolean",
          "description": "Respiratory monitoring: connected exposes the available measurement; disconnected hides it without changing physiology."
        },
        "temperature": {
          "title": "Temperature probe",
          "type": "boolean",
          "description": "Temperature probe: connected exposes the available measurement; disconnected hides it without changing physiology."
        },
        "capnography": {
          "title": "Capnography",
          "type": "boolean",
          "description": "Capnography: connected exposes the available measurement; disconnected hides it without changing physiology."
        },
        "arterialPressure": {
          "title": "Arterial pressure",
          "type": "boolean",
          "description": "Arterial pressure: connected exposes the available measurement; disconnected hides it without changing physiology."
        }
      },
      "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."
    }
  },
  "description": "The monitor configuration used to present patient observations."
}

Monitor rhythm

patients.*.monitor.rhythm

string · Optional; an omitted value is not a normal, negative, or zero value

The ECG rhythm displayed on the monitor. Select the rhythm separately from whether the patient has a palpable pulse.

Allowed values: 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

Field schema

{
  "type": "string",
  "title": "Monitor rhythm",
  "enum": [
    "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"
  ],
  "description": "The ECG rhythm displayed on the monitor. Select the rhythm separately from whether the patient has a palpable pulse."
}

Pulse present

patients.*.monitor.pulsePresent

boolean · Optional; an omitted value is not a normal, negative, or zero value

Whether a palpable pulse is present. Use this to distinguish perfusing and pulseless presentations of the displayed rhythm.

Field schema

{
  "title": "Pulse present",
  "type": "boolean",
  "description": "Whether a palpable pulse is present. Use this to distinguish perfusing and pulseless presentations of the displayed rhythm."
}

Monitor connections

patients.*.monitor.connections

object · Optional; an omitted value is not a normal, negative, or zero value

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.

Field schema

{
  "title": "Monitor connections",
  "additionalProperties": false,
  "x-usim": {
    "authoring": {}
  },
  "type": "object",
  "properties": {
    "ecg": {
      "title": "ECG",
      "type": "boolean",
      "description": "ECG: connected exposes the available measurement; disconnected hides it without changing physiology."
    },
    "bloodPressure": {
      "title": "Blood pressure cuff",
      "type": "boolean",
      "description": "Blood pressure cuff: connected exposes the available measurement; disconnected hides it without changing physiology."
    },
    "spo2": {
      "title": "Pulse oximetry",
      "type": "boolean",
      "description": "Pulse oximetry: connected exposes the available measurement; disconnected hides it without changing physiology."
    },
    "respiration": {
      "title": "Respiratory monitoring",
      "type": "boolean",
      "description": "Respiratory monitoring: connected exposes the available measurement; disconnected hides it without changing physiology."
    },
    "temperature": {
      "title": "Temperature probe",
      "type": "boolean",
      "description": "Temperature probe: connected exposes the available measurement; disconnected hides it without changing physiology."
    },
    "capnography": {
      "title": "Capnography",
      "type": "boolean",
      "description": "Capnography: connected exposes the available measurement; disconnected hides it without changing physiology."
    },
    "arterialPressure": {
      "title": "Arterial pressure",
      "type": "boolean",
      "description": "Arterial pressure: connected exposes the available measurement; disconnected hides it without changing physiology."
    }
  },
  "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."
}

ECG

patients.*.monitor.connections.ecg

boolean · Optional; an omitted value is not a normal, negative, or zero value

ECG: connected exposes the available measurement; disconnected hides it without changing physiology.

Field schema

{
  "title": "ECG",
  "type": "boolean",
  "description": "ECG: connected exposes the available measurement; disconnected hides it without changing physiology."
}

Blood pressure cuff

patients.*.monitor.connections.bloodPressure

boolean · Optional; an omitted value is not a normal, negative, or zero value

Blood pressure cuff: connected exposes the available measurement; disconnected hides it without changing physiology.

Field schema

{
  "title": "Blood pressure cuff",
  "type": "boolean",
  "description": "Blood pressure cuff: connected exposes the available measurement; disconnected hides it without changing physiology."
}

Pulse oximetry

patients.*.monitor.connections.spo2

boolean · Optional; an omitted value is not a normal, negative, or zero value

Pulse oximetry: connected exposes the available measurement; disconnected hides it without changing physiology.

Field schema

{
  "title": "Pulse oximetry",
  "type": "boolean",
  "description": "Pulse oximetry: connected exposes the available measurement; disconnected hides it without changing physiology."
}

Respiratory monitoring

patients.*.monitor.connections.respiration

boolean · Optional; an omitted value is not a normal, negative, or zero value

Respiratory monitoring: connected exposes the available measurement; disconnected hides it without changing physiology.

Field schema

{
  "title": "Respiratory monitoring",
  "type": "boolean",
  "description": "Respiratory monitoring: connected exposes the available measurement; disconnected hides it without changing physiology."
}

Temperature probe

patients.*.monitor.connections.temperature

boolean · Optional; an omitted value is not a normal, negative, or zero value

Temperature probe: connected exposes the available measurement; disconnected hides it without changing physiology.

Field schema

{
  "title": "Temperature probe",
  "type": "boolean",
  "description": "Temperature probe: connected exposes the available measurement; disconnected hides it without changing physiology."
}

Capnography

patients.*.monitor.connections.capnography

boolean · Optional; an omitted value is not a normal, negative, or zero value

Capnography: connected exposes the available measurement; disconnected hides it without changing physiology.

Field schema

{
  "title": "Capnography",
  "type": "boolean",
  "description": "Capnography: connected exposes the available measurement; disconnected hides it without changing physiology."
}

Arterial pressure

patients.*.monitor.connections.arterialPressure

boolean · Optional; an omitted value is not a normal, negative, or zero value

Arterial pressure: connected exposes the available measurement; disconnected hides it without changing physiology.

Field schema

{
  "title": "Arterial pressure",
  "type": "boolean",
  "description": "Arterial pressure: connected exposes the available measurement; disconnected hides it without changing physiology."
}

Airway support

patients.*.airway

Value · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "anyOf": [
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "status"
      ],
      "properties": {
        "status": {
          "const": "natural",
          "type": "string",
          "title": "Status",
          "description": "The required literal value \"natural\"."
        }
      },
      "description": "Non-natural airway requires a device reference; presence does not imply correct placement or function."
    },
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "status",
        "deviceId"
      ],
      "properties": {
        "status": {
          "anyOf": [
            {
              "const": "adjunct",
              "type": "string",
              "description": "The required literal value \"adjunct\"."
            },
            {
              "const": "intubated",
              "type": "string",
              "description": "The required literal value \"intubated\"."
            },
            {
              "const": "surgical",
              "type": "string",
              "description": "The required literal value \"surgical\"."
            }
          ],
          "title": "Status",
          "description": "Select one of the declared Status alternatives; use the fields belonging to that alternative."
        },
        "deviceId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "resources",
              "label": "name"
            }
          },
          "type": "string",
          "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
        }
      },
      "description": "Non-natural airway requires a device reference; presence does not imply correct placement or function."
    }
  ],
  "title": "Airway support",
  "x-usim": {
    "authoring": {
      "group": "Additional patient definitions",
      "defaultOpen": false,
      "order": 30,
      "span": "full",
      "hidden": true
    }
  },
  "description": "Non-natural airway requires a device reference; presence does not imply correct placement or function."
}

Status

patients.*.airway.status

string · Required when the parent is present

The required literal value "natural".

Field schema

{
  "const": "natural",
  "type": "string",
  "title": "Status",
  "description": "The required literal value \"natural\"."
}

Identifier

patients.*.airway.deviceId

string · Optional; an omitted value is not a normal, negative, or zero value

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References resources using name as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "resources",
      "label": "name"
    }
  },
  "type": "string",
  "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
}

Patient context

patients.*.context

string · Required when the parent is present

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

  • Maximum length: 8000 characters

Field schema

{
  "title": "Patient context",
  "maxLength": 8000,
  "x-usim": {
    "authoring": {
      "editor": "textarea",
      "order": 1
    }
  },
  "type": "string",
  "description": "The patient's opening situation and the context available at the start of the scenario."
}

Patient photo

patients.*.photo

object · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "title": "Patient photo",
  "additionalProperties": false,
  "x-usim": {
    "authoring": {
      "editor": "patient-photo",
      "span": "full",
      "order": 2
    }
  },
  "type": "object",
  "required": [
    "dataUrl",
    "description"
  ],
  "properties": {
    "dataUrl": {
      "title": "Photo",
      "maxLength": 12582912,
      "x-usim": {
        "authoring": {}
      },
      "type": "string",
      "description": "The patient photo encoded as a data URL. Use the photo upload control to populate it."
    },
    "description": {
      "title": "Photo description",
      "maxLength": 1000,
      "x-usim": {
        "authoring": {}
      },
      "type": "string",
      "description": "Describe the patient's appearance for readers who cannot see the photo."
    }
  },
  "description": "An optional embedded patient photo that travels with the scenario. Upload a PNG, JPEG, or WebP image."
}

Photo

patients.*.photo.dataUrl

string · Required when the parent is present

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

  • Maximum length: 12582912 characters

Field schema

{
  "title": "Photo",
  "maxLength": 12582912,
  "x-usim": {
    "authoring": {}
  },
  "type": "string",
  "description": "The patient photo encoded as a data URL. Use the photo upload control to populate it."
}

Photo description

patients.*.photo.description

string · Required when the parent is present

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

  • Maximum length: 1000 characters

Field schema

{
  "title": "Photo description",
  "maxLength": 1000,
  "x-usim": {
    "authoring": {}
  },
  "type": "string",
  "description": "Describe the patient's appearance for readers who cannot see the photo."
}

assets

assets

array · Optional; an omitted value is not a normal, negative, or zero value

Portable media manifest referenced by diagnostics and role outputs.

Field schema

{
  "type": "array",
  "items": {
    "anyOf": [
      {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "mediaType",
          "description",
          "license",
          "attribution",
          "path",
          "sha256"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Stable asset reference used by results and outputs."
          },
          "mediaType": {
            "type": "string",
            "description": "Declared content type must match decoded asset type; unsupported active content is rejected."
          },
          "description": {
            "type": "string",
            "description": "Accessible description of the learner-visible content without hidden diagnostic explanation."
          },
          "license": {
            "type": "string",
            "description": "Reuse terms for this asset, with attribution in a separate field."
          },
          "attribution": {
            "type": "string",
            "description": "Creator and source credit."
          },
          "label": {
            "type": "string",
            "description": "The label for this entry. Omit optional information that has not been specified."
          },
          "transcriptAssetId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "assets",
                "label": "description"
              }
            },
            "type": "string",
            "description": "Packaged accessible transcript; role filtering matches the original media."
          },
          "path": {
            "pattern": "^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\).+$",
            "type": "string",
            "description": "Path under assets/ within the package. Reject absolute paths, .. segments, symlinks, duplicate paths, and external fetches."
          },
          "sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "type": "string",
            "description": "Digest verified against bytes before use; integrity does not prove safety or authorship."
          }
        },
        "description": "Structured assets details. Omitted optional values remain unspecified."
      },
      {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "mediaType",
          "description",
          "license",
          "attribution",
          "dataUrl",
          "sha256"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Stable asset reference used by results and outputs."
          },
          "mediaType": {
            "type": "string",
            "description": "Declared content type must match decoded asset type; unsupported active content is rejected."
          },
          "description": {
            "type": "string",
            "description": "Accessible description of the learner-visible content without hidden diagnostic explanation."
          },
          "license": {
            "type": "string",
            "description": "Reuse terms for this asset, with attribution in a separate field."
          },
          "attribution": {
            "type": "string",
            "description": "Creator and source credit."
          },
          "label": {
            "type": "string",
            "description": "The label for this entry. Omit optional information that has not been specified."
          },
          "transcriptAssetId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "assets",
                "label": "description"
              }
            },
            "type": "string",
            "description": "Packaged accessible transcript; role filtering matches the original media."
          },
          "dataUrl": {
            "pattern": "^data:[^,]+;base64,",
            "type": "string",
            "description": "The data url for this entry. Omit optional information that has not been specified."
          },
          "sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "type": "string",
            "description": "Digest verified against bytes before use; integrity does not prove safety or authorship."
          }
        },
        "x-usim": {
          "import": false
        },
        "description": "Structured assets details. Omitted optional values remain unspecified."
      },
      {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "mediaType",
          "description",
          "license",
          "attribution",
          "uri"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Stable asset reference used by results and outputs."
          },
          "mediaType": {
            "type": "string",
            "description": "Declared content type must match decoded asset type; unsupported active content is rejected."
          },
          "description": {
            "type": "string",
            "description": "Accessible description of the learner-visible content without hidden diagnostic explanation."
          },
          "license": {
            "type": "string",
            "description": "Reuse terms for this asset, with attribution in a separate field."
          },
          "attribution": {
            "type": "string",
            "description": "Creator and source credit."
          },
          "label": {
            "type": "string",
            "description": "The label for this entry. Omit optional information that has not been specified."
          },
          "transcriptAssetId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "assets",
                "label": "description"
              }
            },
            "type": "string",
            "description": "Packaged accessible transcript; role filtering matches the original media."
          },
          "uri": {
            "minLength": 1,
            "type": "string",
            "description": "The uri for this entry. Omit optional information that has not been specified."
          },
          "sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "type": "string",
            "description": "Digest verified against bytes before use; integrity does not prove safety or authorship."
          }
        },
        "description": "Structured assets details. Omitted optional values remain unspecified."
      }
    ],
    "description": "Select one of the declared assets alternatives; use the fields belonging to that alternative."
  },
  "description": "Portable media manifest referenced by diagnostics and role outputs."
}

*

assets.*

Value · Required when the parent is present

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

Field schema

{
  "anyOf": [
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "id",
        "mediaType",
        "description",
        "license",
        "attribution",
        "path",
        "sha256"
      ],
      "properties": {
        "id": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "authoring": {
              "hidden": true
            }
          },
          "type": "string",
          "description": "Stable asset reference used by results and outputs."
        },
        "mediaType": {
          "type": "string",
          "description": "Declared content type must match decoded asset type; unsupported active content is rejected."
        },
        "description": {
          "type": "string",
          "description": "Accessible description of the learner-visible content without hidden diagnostic explanation."
        },
        "license": {
          "type": "string",
          "description": "Reuse terms for this asset, with attribution in a separate field."
        },
        "attribution": {
          "type": "string",
          "description": "Creator and source credit."
        },
        "label": {
          "type": "string",
          "description": "The label for this entry. Omit optional information that has not been specified."
        },
        "transcriptAssetId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "assets",
              "label": "description"
            }
          },
          "type": "string",
          "description": "Packaged accessible transcript; role filtering matches the original media."
        },
        "path": {
          "pattern": "^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\).+$",
          "type": "string",
          "description": "Path under assets/ within the package. Reject absolute paths, .. segments, symlinks, duplicate paths, and external fetches."
        },
        "sha256": {
          "pattern": "^[a-f0-9]{64}$",
          "type": "string",
          "description": "Digest verified against bytes before use; integrity does not prove safety or authorship."
        }
      },
      "description": "Structured assets details. Omitted optional values remain unspecified."
    },
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "id",
        "mediaType",
        "description",
        "license",
        "attribution",
        "dataUrl",
        "sha256"
      ],
      "properties": {
        "id": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "authoring": {
              "hidden": true
            }
          },
          "type": "string",
          "description": "Stable asset reference used by results and outputs."
        },
        "mediaType": {
          "type": "string",
          "description": "Declared content type must match decoded asset type; unsupported active content is rejected."
        },
        "description": {
          "type": "string",
          "description": "Accessible description of the learner-visible content without hidden diagnostic explanation."
        },
        "license": {
          "type": "string",
          "description": "Reuse terms for this asset, with attribution in a separate field."
        },
        "attribution": {
          "type": "string",
          "description": "Creator and source credit."
        },
        "label": {
          "type": "string",
          "description": "The label for this entry. Omit optional information that has not been specified."
        },
        "transcriptAssetId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "assets",
              "label": "description"
            }
          },
          "type": "string",
          "description": "Packaged accessible transcript; role filtering matches the original media."
        },
        "dataUrl": {
          "pattern": "^data:[^,]+;base64,",
          "type": "string",
          "description": "The data url for this entry. Omit optional information that has not been specified."
        },
        "sha256": {
          "pattern": "^[a-f0-9]{64}$",
          "type": "string",
          "description": "Digest verified against bytes before use; integrity does not prove safety or authorship."
        }
      },
      "x-usim": {
        "import": false
      },
      "description": "Structured assets details. Omitted optional values remain unspecified."
    },
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "id",
        "mediaType",
        "description",
        "license",
        "attribution",
        "uri"
      ],
      "properties": {
        "id": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "authoring": {
              "hidden": true
            }
          },
          "type": "string",
          "description": "Stable asset reference used by results and outputs."
        },
        "mediaType": {
          "type": "string",
          "description": "Declared content type must match decoded asset type; unsupported active content is rejected."
        },
        "description": {
          "type": "string",
          "description": "Accessible description of the learner-visible content without hidden diagnostic explanation."
        },
        "license": {
          "type": "string",
          "description": "Reuse terms for this asset, with attribution in a separate field."
        },
        "attribution": {
          "type": "string",
          "description": "Creator and source credit."
        },
        "label": {
          "type": "string",
          "description": "The label for this entry. Omit optional information that has not been specified."
        },
        "transcriptAssetId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "assets",
              "label": "description"
            }
          },
          "type": "string",
          "description": "Packaged accessible transcript; role filtering matches the original media."
        },
        "uri": {
          "minLength": 1,
          "type": "string",
          "description": "The uri for this entry. Omit optional information that has not been specified."
        },
        "sha256": {
          "pattern": "^[a-f0-9]{64}$",
          "type": "string",
          "description": "Digest verified against bytes before use; integrity does not prove safety or authorship."
        }
      },
      "description": "Structured assets details. Omitted optional values remain unspecified."
    }
  ],
  "description": "Select one of the declared assets alternatives; use the fields belonging to that alternative."
}

Identifier

assets.*.id

string · Required when the parent is present

Stable asset reference used by results and outputs.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "Stable asset reference used by results and outputs."
}

mediaType

assets.*.mediaType

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "Declared content type must match decoded asset type; unsupported active content is rejected."
}

description

assets.*.description

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "Accessible description of the learner-visible content without hidden diagnostic explanation."
}

license

assets.*.license

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "Reuse terms for this asset, with attribution in a separate field."
}

attribution

assets.*.attribution

string · Required when the parent is present

Creator and source credit.

Field schema

{
  "type": "string",
  "description": "Creator and source credit."
}

label

assets.*.label

string · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "string",
  "description": "The label for this entry. Omit optional information that has not been specified."
}

Identifier

assets.*.transcriptAssetId

string · Optional; an omitted value is not a normal, negative, or zero value

Packaged accessible transcript; role filtering matches the original media.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References assets using description as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "assets",
      "label": "description"
    }
  },
  "type": "string",
  "description": "Packaged accessible transcript; role filtering matches the original media."
}

path

assets.*.path

string · Optional; an omitted value is not a normal, negative, or zero value

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

  • Pattern: ^(?!/)(?!.*(?:^|/)\.\.(?:/|$))(?!.*\\).+$

Field schema

{
  "pattern": "^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\).+$",
  "type": "string",
  "description": "Path under assets/ within the package. Reject absolute paths, .. segments, symlinks, duplicate paths, and external fetches."
}

sha256

assets.*.sha256

string · Optional; an omitted value is not a normal, negative, or zero value

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

  • Pattern: ^[a-f0-9]{64}$

Field schema

{
  "pattern": "^[a-f0-9]{64}$",
  "type": "string",
  "description": "Digest verified against bytes before use; integrity does not prove safety or authorship."
}

dataUrl

assets.*.dataUrl

string · Optional; an omitted value is not a normal, negative, or zero value

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

  • Pattern: ^data:[^,]+;base64,

Field schema

{
  "pattern": "^data:[^,]+;base64,",
  "type": "string",
  "description": "The data url for this entry. Omit optional information that has not been specified."
}

uri

assets.*.uri

string · Optional; an omitted value is not a normal, negative, or zero value

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

  • Minimum length: 1

Field schema

{
  "minLength": 1,
  "type": "string",
  "description": "The uri for this entry. Omit optional information that has not been specified."
}

Observations

observations

array · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "title": "Observations",
  "x-usim": {
    "authoring": {
      "editor": "observations"
    }
  },
  "type": "array",
  "items": {
    "anyOf": [
      {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "patientId",
          "code",
          "kind",
          "disclosure",
          "status",
          "value",
          "unit"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Stable finding or measurement identity; a repeat collection creates a new observation ID."
          },
          "patientId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "patients",
                "label": "name"
              }
            },
            "type": "string",
            "description": "Patient to whom the observation belongs."
          },
          "code": {
            "type": "string",
            "description": "Namespaced concept, such as usim:general-appearance; codes do not imply external terminology certification."
          },
          "kind": {
            "anyOf": [
              {
                "const": "symptom",
                "type": "string",
                "description": "Separates reported experience, observed findings, and measured values."
              },
              {
                "const": "finding",
                "type": "string",
                "description": "Separates reported experience, observed findings, and measured values."
              },
              {
                "const": "measurement",
                "type": "string",
                "description": "Separates reported experience, observed findings, and measured values."
              }
            ],
            "description": "Separates reported experience, observed findings, and measured values."
          },
          "collectedAtSeconds": {
            "type": "number",
            "description": "Time of authored assessment or acquisition, possibly before baseline."
          },
          "availableAtSeconds": {
            "minimum": 0,
            "type": "number",
            "description": "Earliest simulated time for release; disclosure conditions must also be satisfied."
          },
          "method": {
            "type": "string",
            "description": "Method, location, or equipment used to obtain the finding."
          },
          "disclosure": {
            "anyOf": [
              {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "audience",
                  "mode"
                ],
                "properties": {
                  "audience": {
                    "minItems": 1,
                    "uniqueItems": true,
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "const": "learner",
                          "type": "string",
                          "description": "The required literal value \"learner\"."
                        },
                        {
                          "const": "facilitator",
                          "type": "string",
                          "description": "The required literal value \"facilitator\"."
                        }
                      ],
                      "title": "Audience",
                      "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                    },
                    "title": "Audience",
                    "description": "Authorized output audiences. UI hints do not replace output filtering."
                  },
                  "mode": {
                    "anyOf": [
                      {
                        "const": "initial",
                        "type": "string",
                        "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                      },
                      {
                        "const": "facilitator",
                        "type": "string",
                        "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                      }
                    ],
                    "title": "Mode",
                    "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                  }
                },
                "description": "Structured disclosure details. Omitted optional values remain unspecified."
              },
              {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "audience",
                  "mode",
                  "resourceId"
                ],
                "properties": {
                  "audience": {
                    "minItems": 1,
                    "uniqueItems": true,
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "const": "learner",
                          "type": "string",
                          "description": "The required literal value \"learner\"."
                        },
                        {
                          "const": "facilitator",
                          "type": "string",
                          "description": "The required literal value \"facilitator\"."
                        }
                      ],
                      "title": "Audience",
                      "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                    },
                    "title": "Audience",
                    "description": "Authorized output audiences. UI hints do not replace output filtering."
                  },
                  "mode": {
                    "const": "on-resource-response",
                    "type": "string",
                    "title": "Mode",
                    "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                  },
                  "resourceId": {
                    "minLength": 1,
                    "maxLength": 128,
                    "pattern": "\\S",
                    "title": "Identifier",
                    "x-usim": {
                      "reference": {
                        "collection": "resources",
                        "label": "name"
                      }
                    },
                    "type": "string",
                    "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
                  }
                },
                "description": "Structured disclosure details. Omitted optional values remain unspecified."
              },
              {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "audience",
                  "mode",
                  "actionId"
                ],
                "properties": {
                  "audience": {
                    "minItems": 1,
                    "uniqueItems": true,
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "const": "learner",
                          "type": "string",
                          "description": "The required literal value \"learner\"."
                        },
                        {
                          "const": "facilitator",
                          "type": "string",
                          "description": "The required literal value \"facilitator\"."
                        }
                      ],
                      "title": "Audience",
                      "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                    },
                    "title": "Audience",
                    "description": "Authorized output audiences. UI hints do not replace output filtering."
                  },
                  "mode": {
                    "const": "on-action",
                    "type": "string",
                    "title": "Mode",
                    "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                  },
                  "actionId": {
                    "minLength": 1,
                    "maxLength": 128,
                    "pattern": "\\S",
                    "title": "Identifier",
                    "x-usim": {
                      "reference": {
                        "collection": "events.actions",
                        "label": "label"
                      }
                    },
                    "type": "string",
                    "description": "Successful completion of this action reveals the entry."
                  }
                },
                "description": "Structured disclosure details. Omitted optional values remain unspecified."
              },
              {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "audience",
                  "mode",
                  "conditionId"
                ],
                "properties": {
                  "audience": {
                    "minItems": 1,
                    "uniqueItems": true,
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "const": "learner",
                          "type": "string",
                          "description": "The required literal value \"learner\"."
                        },
                        {
                          "const": "facilitator",
                          "type": "string",
                          "description": "The required literal value \"facilitator\"."
                        }
                      ],
                      "title": "Audience",
                      "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                    },
                    "title": "Audience",
                    "description": "Authorized output audiences. UI hints do not replace output filtering."
                  },
                  "mode": {
                    "const": "on-condition",
                    "type": "string",
                    "title": "Mode",
                    "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                  },
                  "conditionId": {
                    "minLength": 1,
                    "maxLength": 128,
                    "pattern": "\\S",
                    "title": "Identifier",
                    "x-usim": {
                      "reference": {
                        "collection": "events.conditions",
                        "label": "id"
                      }
                    },
                    "type": "string",
                    "description": "Reveal when the condition first becomes true; reject unrelated trigger fields."
                  }
                },
                "description": "Structured disclosure details. Omitted optional values remain unspecified."
              }
            ],
            "title": "Disclosure",
            "description": "Select one of the declared Disclosure alternatives; use the fields belonging to that alternative."
          },
          "reportedByActorId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "environment.actors",
                "label": "name"
              }
            },
            "type": "string",
            "description": "Identifies the patient actor, relative, or colleague supplying the history."
          },
          "reliabilityNote": {
            "type": "string",
            "description": "Facilitator context on conflicting or incomplete history; visibility follows the observation's disclosure policy."
          },
          "variableId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "patients.*.variables",
                "label": "id"
              }
            },
            "type": "string",
            "description": "On collection, snapshot this variable's current value into a new measurement; later trends do not rewrite past results."
          },
          "referenceInterval": {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "context"
            ],
            "properties": {
              "low": {
                "type": "number",
                "description": "Numeric low. Do not infer an omitted value."
              },
              "high": {
                "type": "number",
                "description": "Numeric high. Do not infer an omitted value."
              },
              "text": {
                "type": "string",
                "description": "The text for this entry. Omit optional information that has not been specified."
              },
              "unit": {
                "type": "string",
                "description": "The unit for this entry. Omit optional information that has not been specified."
              },
              "context": {
                "type": "string",
                "description": "The context for this entry. Omit optional information that has not been specified."
              }
            },
            "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."
          },
          "flag": {
            "anyOf": [
              {
                "const": "low",
                "type": "string",
                "description": "Explicit authored flag, never inferred from a generic source default."
              },
              {
                "const": "high",
                "type": "string",
                "description": "Explicit authored flag, never inferred from a generic source default."
              },
              {
                "const": "critical",
                "type": "string",
                "description": "Explicit authored flag, never inferred from a generic source default."
              },
              {
                "const": "none",
                "type": "string",
                "description": "Explicit authored flag, never inferred from a generic source default."
              },
              {
                "const": "not-interpreted",
                "type": "string",
                "description": "Explicit authored flag, never inferred from a generic source default."
              }
            ],
            "description": "Explicit authored flag, never inferred from a generic source default."
          },
          "status": {
            "const": "known",
            "type": "string",
            "description": "Known requires a value. Other statuses prohibit a value rather than using zero or an empty string as a sentinel."
          },
          "value": {
            "type": "number",
            "description": "Type must match the registered concept. Qualitative findings can be text or explicit booleans."
          },
          "unit": {
            "type": "string",
            "description": "Fixed by the concept definition; no inferred conversions."
          }
        },
        "description": "Structured observations details. Omitted optional values remain unspecified."
      },
      {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "patientId",
          "code",
          "kind",
          "disclosure",
          "status",
          "value"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Stable finding or measurement identity; a repeat collection creates a new observation ID."
          },
          "patientId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "patients",
                "label": "name"
              }
            },
            "type": "string",
            "description": "Patient to whom the observation belongs."
          },
          "code": {
            "type": "string",
            "description": "Namespaced concept, such as usim:general-appearance; codes do not imply external terminology certification."
          },
          "kind": {
            "anyOf": [
              {
                "const": "symptom",
                "type": "string",
                "description": "Separates reported experience, observed findings, and measured values."
              },
              {
                "const": "finding",
                "type": "string",
                "description": "Separates reported experience, observed findings, and measured values."
              },
              {
                "const": "measurement",
                "type": "string",
                "description": "Separates reported experience, observed findings, and measured values."
              }
            ],
            "description": "Separates reported experience, observed findings, and measured values."
          },
          "collectedAtSeconds": {
            "type": "number",
            "description": "Time of authored assessment or acquisition, possibly before baseline."
          },
          "availableAtSeconds": {
            "minimum": 0,
            "type": "number",
            "description": "Earliest simulated time for release; disclosure conditions must also be satisfied."
          },
          "method": {
            "type": "string",
            "description": "Method, location, or equipment used to obtain the finding."
          },
          "disclosure": {
            "anyOf": [
              {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "audience",
                  "mode"
                ],
                "properties": {
                  "audience": {
                    "minItems": 1,
                    "uniqueItems": true,
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "const": "learner",
                          "type": "string",
                          "description": "The required literal value \"learner\"."
                        },
                        {
                          "const": "facilitator",
                          "type": "string",
                          "description": "The required literal value \"facilitator\"."
                        }
                      ],
                      "title": "Audience",
                      "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                    },
                    "title": "Audience",
                    "description": "Authorized output audiences. UI hints do not replace output filtering."
                  },
                  "mode": {
                    "anyOf": [
                      {
                        "const": "initial",
                        "type": "string",
                        "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                      },
                      {
                        "const": "facilitator",
                        "type": "string",
                        "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                      }
                    ],
                    "title": "Mode",
                    "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                  }
                },
                "description": "Structured disclosure details. Omitted optional values remain unspecified."
              },
              {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "audience",
                  "mode",
                  "resourceId"
                ],
                "properties": {
                  "audience": {
                    "minItems": 1,
                    "uniqueItems": true,
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "const": "learner",
                          "type": "string",
                          "description": "The required literal value \"learner\"."
                        },
                        {
                          "const": "facilitator",
                          "type": "string",
                          "description": "The required literal value \"facilitator\"."
                        }
                      ],
                      "title": "Audience",
                      "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                    },
                    "title": "Audience",
                    "description": "Authorized output audiences. UI hints do not replace output filtering."
                  },
                  "mode": {
                    "const": "on-resource-response",
                    "type": "string",
                    "title": "Mode",
                    "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                  },
                  "resourceId": {
                    "minLength": 1,
                    "maxLength": 128,
                    "pattern": "\\S",
                    "title": "Identifier",
                    "x-usim": {
                      "reference": {
                        "collection": "resources",
                        "label": "name"
                      }
                    },
                    "type": "string",
                    "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
                  }
                },
                "description": "Structured disclosure details. Omitted optional values remain unspecified."
              },
              {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "audience",
                  "mode",
                  "actionId"
                ],
                "properties": {
                  "audience": {
                    "minItems": 1,
                    "uniqueItems": true,
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "const": "learner",
                          "type": "string",
                          "description": "The required literal value \"learner\"."
                        },
                        {
                          "const": "facilitator",
                          "type": "string",
                          "description": "The required literal value \"facilitator\"."
                        }
                      ],
                      "title": "Audience",
                      "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                    },
                    "title": "Audience",
                    "description": "Authorized output audiences. UI hints do not replace output filtering."
                  },
                  "mode": {
                    "const": "on-action",
                    "type": "string",
                    "title": "Mode",
                    "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                  },
                  "actionId": {
                    "minLength": 1,
                    "maxLength": 128,
                    "pattern": "\\S",
                    "title": "Identifier",
                    "x-usim": {
                      "reference": {
                        "collection": "events.actions",
                        "label": "label"
                      }
                    },
                    "type": "string",
                    "description": "Successful completion of this action reveals the entry."
                  }
                },
                "description": "Structured disclosure details. Omitted optional values remain unspecified."
              },
              {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "audience",
                  "mode",
                  "conditionId"
                ],
                "properties": {
                  "audience": {
                    "minItems": 1,
                    "uniqueItems": true,
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "const": "learner",
                          "type": "string",
                          "description": "The required literal value \"learner\"."
                        },
                        {
                          "const": "facilitator",
                          "type": "string",
                          "description": "The required literal value \"facilitator\"."
                        }
                      ],
                      "title": "Audience",
                      "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                    },
                    "title": "Audience",
                    "description": "Authorized output audiences. UI hints do not replace output filtering."
                  },
                  "mode": {
                    "const": "on-condition",
                    "type": "string",
                    "title": "Mode",
                    "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                  },
                  "conditionId": {
                    "minLength": 1,
                    "maxLength": 128,
                    "pattern": "\\S",
                    "title": "Identifier",
                    "x-usim": {
                      "reference": {
                        "collection": "events.conditions",
                        "label": "id"
                      }
                    },
                    "type": "string",
                    "description": "Reveal when the condition first becomes true; reject unrelated trigger fields."
                  }
                },
                "description": "Structured disclosure details. Omitted optional values remain unspecified."
              }
            ],
            "title": "Disclosure",
            "description": "Select one of the declared Disclosure alternatives; use the fields belonging to that alternative."
          },
          "reportedByActorId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "environment.actors",
                "label": "name"
              }
            },
            "type": "string",
            "description": "Identifies the patient actor, relative, or colleague supplying the history."
          },
          "reliabilityNote": {
            "type": "string",
            "description": "Facilitator context on conflicting or incomplete history; visibility follows the observation's disclosure policy."
          },
          "variableId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "patients.*.variables",
                "label": "id"
              }
            },
            "type": "string",
            "description": "On collection, snapshot this variable's current value into a new measurement; later trends do not rewrite past results."
          },
          "referenceInterval": {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "context"
            ],
            "properties": {
              "low": {
                "type": "number",
                "description": "Numeric low. Do not infer an omitted value."
              },
              "high": {
                "type": "number",
                "description": "Numeric high. Do not infer an omitted value."
              },
              "text": {
                "type": "string",
                "description": "The text for this entry. Omit optional information that has not been specified."
              },
              "unit": {
                "type": "string",
                "description": "The unit for this entry. Omit optional information that has not been specified."
              },
              "context": {
                "type": "string",
                "description": "The context for this entry. Omit optional information that has not been specified."
              }
            },
            "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."
          },
          "flag": {
            "anyOf": [
              {
                "const": "low",
                "type": "string",
                "description": "Explicit authored flag, never inferred from a generic source default."
              },
              {
                "const": "high",
                "type": "string",
                "description": "Explicit authored flag, never inferred from a generic source default."
              },
              {
                "const": "critical",
                "type": "string",
                "description": "Explicit authored flag, never inferred from a generic source default."
              },
              {
                "const": "none",
                "type": "string",
                "description": "Explicit authored flag, never inferred from a generic source default."
              },
              {
                "const": "not-interpreted",
                "type": "string",
                "description": "Explicit authored flag, never inferred from a generic source default."
              }
            ],
            "description": "Explicit authored flag, never inferred from a generic source default."
          },
          "status": {
            "const": "known",
            "type": "string",
            "description": "Known requires a value. Other statuses prohibit a value rather than using zero or an empty string as a sentinel."
          },
          "value": {
            "anyOf": [
              {
                "type": "string",
                "description": "Type must match the registered concept. Qualitative findings can be text or explicit booleans."
              },
              {
                "type": "boolean",
                "description": "Type must match the registered concept. Qualitative findings can be text or explicit booleans."
              }
            ],
            "description": "Type must match the registered concept. Qualitative findings can be text or explicit booleans."
          },
          "unit": {
            "type": "string",
            "description": "Fixed by the concept definition; no inferred conversions."
          }
        },
        "description": "Structured observations details. Omitted optional values remain unspecified."
      },
      {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "patientId",
          "code",
          "kind",
          "disclosure",
          "status"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Stable finding or measurement identity; a repeat collection creates a new observation ID."
          },
          "patientId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "patients",
                "label": "name"
              }
            },
            "type": "string",
            "description": "Patient to whom the observation belongs."
          },
          "code": {
            "type": "string",
            "description": "Namespaced concept, such as usim:general-appearance; codes do not imply external terminology certification."
          },
          "kind": {
            "anyOf": [
              {
                "const": "symptom",
                "type": "string",
                "description": "Separates reported experience, observed findings, and measured values."
              },
              {
                "const": "finding",
                "type": "string",
                "description": "Separates reported experience, observed findings, and measured values."
              },
              {
                "const": "measurement",
                "type": "string",
                "description": "Separates reported experience, observed findings, and measured values."
              }
            ],
            "description": "Separates reported experience, observed findings, and measured values."
          },
          "collectedAtSeconds": {
            "type": "number",
            "description": "Time of authored assessment or acquisition, possibly before baseline."
          },
          "availableAtSeconds": {
            "minimum": 0,
            "type": "number",
            "description": "Earliest simulated time for release; disclosure conditions must also be satisfied."
          },
          "method": {
            "type": "string",
            "description": "Method, location, or equipment used to obtain the finding."
          },
          "disclosure": {
            "anyOf": [
              {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "audience",
                  "mode"
                ],
                "properties": {
                  "audience": {
                    "minItems": 1,
                    "uniqueItems": true,
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "const": "learner",
                          "type": "string",
                          "description": "The required literal value \"learner\"."
                        },
                        {
                          "const": "facilitator",
                          "type": "string",
                          "description": "The required literal value \"facilitator\"."
                        }
                      ],
                      "title": "Audience",
                      "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                    },
                    "title": "Audience",
                    "description": "Authorized output audiences. UI hints do not replace output filtering."
                  },
                  "mode": {
                    "anyOf": [
                      {
                        "const": "initial",
                        "type": "string",
                        "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                      },
                      {
                        "const": "facilitator",
                        "type": "string",
                        "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                      }
                    ],
                    "title": "Mode",
                    "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                  }
                },
                "description": "Structured disclosure details. Omitted optional values remain unspecified."
              },
              {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "audience",
                  "mode",
                  "resourceId"
                ],
                "properties": {
                  "audience": {
                    "minItems": 1,
                    "uniqueItems": true,
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "const": "learner",
                          "type": "string",
                          "description": "The required literal value \"learner\"."
                        },
                        {
                          "const": "facilitator",
                          "type": "string",
                          "description": "The required literal value \"facilitator\"."
                        }
                      ],
                      "title": "Audience",
                      "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                    },
                    "title": "Audience",
                    "description": "Authorized output audiences. UI hints do not replace output filtering."
                  },
                  "mode": {
                    "const": "on-resource-response",
                    "type": "string",
                    "title": "Mode",
                    "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                  },
                  "resourceId": {
                    "minLength": 1,
                    "maxLength": 128,
                    "pattern": "\\S",
                    "title": "Identifier",
                    "x-usim": {
                      "reference": {
                        "collection": "resources",
                        "label": "name"
                      }
                    },
                    "type": "string",
                    "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
                  }
                },
                "description": "Structured disclosure details. Omitted optional values remain unspecified."
              },
              {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "audience",
                  "mode",
                  "actionId"
                ],
                "properties": {
                  "audience": {
                    "minItems": 1,
                    "uniqueItems": true,
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "const": "learner",
                          "type": "string",
                          "description": "The required literal value \"learner\"."
                        },
                        {
                          "const": "facilitator",
                          "type": "string",
                          "description": "The required literal value \"facilitator\"."
                        }
                      ],
                      "title": "Audience",
                      "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                    },
                    "title": "Audience",
                    "description": "Authorized output audiences. UI hints do not replace output filtering."
                  },
                  "mode": {
                    "const": "on-action",
                    "type": "string",
                    "title": "Mode",
                    "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                  },
                  "actionId": {
                    "minLength": 1,
                    "maxLength": 128,
                    "pattern": "\\S",
                    "title": "Identifier",
                    "x-usim": {
                      "reference": {
                        "collection": "events.actions",
                        "label": "label"
                      }
                    },
                    "type": "string",
                    "description": "Successful completion of this action reveals the entry."
                  }
                },
                "description": "Structured disclosure details. Omitted optional values remain unspecified."
              },
              {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "audience",
                  "mode",
                  "conditionId"
                ],
                "properties": {
                  "audience": {
                    "minItems": 1,
                    "uniqueItems": true,
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "const": "learner",
                          "type": "string",
                          "description": "The required literal value \"learner\"."
                        },
                        {
                          "const": "facilitator",
                          "type": "string",
                          "description": "The required literal value \"facilitator\"."
                        }
                      ],
                      "title": "Audience",
                      "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                    },
                    "title": "Audience",
                    "description": "Authorized output audiences. UI hints do not replace output filtering."
                  },
                  "mode": {
                    "const": "on-condition",
                    "type": "string",
                    "title": "Mode",
                    "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                  },
                  "conditionId": {
                    "minLength": 1,
                    "maxLength": 128,
                    "pattern": "\\S",
                    "title": "Identifier",
                    "x-usim": {
                      "reference": {
                        "collection": "events.conditions",
                        "label": "id"
                      }
                    },
                    "type": "string",
                    "description": "Reveal when the condition first becomes true; reject unrelated trigger fields."
                  }
                },
                "description": "Structured disclosure details. Omitted optional values remain unspecified."
              }
            ],
            "title": "Disclosure",
            "description": "Select one of the declared Disclosure alternatives; use the fields belonging to that alternative."
          },
          "reportedByActorId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "environment.actors",
                "label": "name"
              }
            },
            "type": "string",
            "description": "Identifies the patient actor, relative, or colleague supplying the history."
          },
          "reliabilityNote": {
            "type": "string",
            "description": "Facilitator context on conflicting or incomplete history; visibility follows the observation's disclosure policy."
          },
          "variableId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "patients.*.variables",
                "label": "id"
              }
            },
            "type": "string",
            "description": "On collection, snapshot this variable's current value into a new measurement; later trends do not rewrite past results."
          },
          "referenceInterval": {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "context"
            ],
            "properties": {
              "low": {
                "type": "number",
                "description": "Numeric low. Do not infer an omitted value."
              },
              "high": {
                "type": "number",
                "description": "Numeric high. Do not infer an omitted value."
              },
              "text": {
                "type": "string",
                "description": "The text for this entry. Omit optional information that has not been specified."
              },
              "unit": {
                "type": "string",
                "description": "The unit for this entry. Omit optional information that has not been specified."
              },
              "context": {
                "type": "string",
                "description": "The context for this entry. Omit optional information that has not been specified."
              }
            },
            "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."
          },
          "flag": {
            "anyOf": [
              {
                "const": "low",
                "type": "string",
                "description": "Explicit authored flag, never inferred from a generic source default."
              },
              {
                "const": "high",
                "type": "string",
                "description": "Explicit authored flag, never inferred from a generic source default."
              },
              {
                "const": "critical",
                "type": "string",
                "description": "Explicit authored flag, never inferred from a generic source default."
              },
              {
                "const": "none",
                "type": "string",
                "description": "Explicit authored flag, never inferred from a generic source default."
              },
              {
                "const": "not-interpreted",
                "type": "string",
                "description": "Explicit authored flag, never inferred from a generic source default."
              }
            ],
            "description": "Explicit authored flag, never inferred from a generic source default."
          },
          "status": {
            "anyOf": [
              {
                "const": "unknown",
                "type": "string",
                "description": "Known requires a value. Other statuses prohibit a value rather than using zero or an empty string as a sentinel."
              },
              {
                "const": "not-assessed",
                "type": "string",
                "description": "Known requires a value. Other statuses prohibit a value rather than using zero or an empty string as a sentinel."
              },
              {
                "const": "pending",
                "type": "string",
                "description": "Known requires a value. Other statuses prohibit a value rather than using zero or an empty string as a sentinel."
              },
              {
                "const": "unavailable",
                "type": "string",
                "description": "Known requires a value. Other statuses prohibit a value rather than using zero or an empty string as a sentinel."
              }
            ],
            "description": "Known requires a value. Other statuses prohibit a value rather than using zero or an empty string as a sentinel."
          },
          "unit": {
            "type": "string",
            "description": "Fixed by the concept definition; no inferred conversions."
          }
        },
        "description": "Structured observations details. Omitted optional values remain unspecified."
      }
    ],
    "description": "Select one of the declared observations alternatives; use the fields belonging to that alternative."
  },
  "description": "Authored symptoms, findings, and measurements with provenance, visibility, and availability."
}

*

observations.*

Value · Required when the parent is present

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

Field schema

{
  "anyOf": [
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "id",
        "patientId",
        "code",
        "kind",
        "disclosure",
        "status",
        "value",
        "unit"
      ],
      "properties": {
        "id": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "authoring": {
              "hidden": true
            }
          },
          "type": "string",
          "description": "Stable finding or measurement identity; a repeat collection creates a new observation ID."
        },
        "patientId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "patients",
              "label": "name"
            }
          },
          "type": "string",
          "description": "Patient to whom the observation belongs."
        },
        "code": {
          "type": "string",
          "description": "Namespaced concept, such as usim:general-appearance; codes do not imply external terminology certification."
        },
        "kind": {
          "anyOf": [
            {
              "const": "symptom",
              "type": "string",
              "description": "Separates reported experience, observed findings, and measured values."
            },
            {
              "const": "finding",
              "type": "string",
              "description": "Separates reported experience, observed findings, and measured values."
            },
            {
              "const": "measurement",
              "type": "string",
              "description": "Separates reported experience, observed findings, and measured values."
            }
          ],
          "description": "Separates reported experience, observed findings, and measured values."
        },
        "collectedAtSeconds": {
          "type": "number",
          "description": "Time of authored assessment or acquisition, possibly before baseline."
        },
        "availableAtSeconds": {
          "minimum": 0,
          "type": "number",
          "description": "Earliest simulated time for release; disclosure conditions must also be satisfied."
        },
        "method": {
          "type": "string",
          "description": "Method, location, or equipment used to obtain the finding."
        },
        "disclosure": {
          "anyOf": [
            {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "audience",
                "mode"
              ],
              "properties": {
                "audience": {
                  "minItems": 1,
                  "uniqueItems": true,
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "const": "learner",
                        "type": "string",
                        "description": "The required literal value \"learner\"."
                      },
                      {
                        "const": "facilitator",
                        "type": "string",
                        "description": "The required literal value \"facilitator\"."
                      }
                    ],
                    "title": "Audience",
                    "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                  },
                  "title": "Audience",
                  "description": "Authorized output audiences. UI hints do not replace output filtering."
                },
                "mode": {
                  "anyOf": [
                    {
                      "const": "initial",
                      "type": "string",
                      "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                    },
                    {
                      "const": "facilitator",
                      "type": "string",
                      "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                    }
                  ],
                  "title": "Mode",
                  "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                }
              },
              "description": "Structured disclosure details. Omitted optional values remain unspecified."
            },
            {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "audience",
                "mode",
                "resourceId"
              ],
              "properties": {
                "audience": {
                  "minItems": 1,
                  "uniqueItems": true,
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "const": "learner",
                        "type": "string",
                        "description": "The required literal value \"learner\"."
                      },
                      {
                        "const": "facilitator",
                        "type": "string",
                        "description": "The required literal value \"facilitator\"."
                      }
                    ],
                    "title": "Audience",
                    "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                  },
                  "title": "Audience",
                  "description": "Authorized output audiences. UI hints do not replace output filtering."
                },
                "mode": {
                  "const": "on-resource-response",
                  "type": "string",
                  "title": "Mode",
                  "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                },
                "resourceId": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "reference": {
                      "collection": "resources",
                      "label": "name"
                    }
                  },
                  "type": "string",
                  "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
                }
              },
              "description": "Structured disclosure details. Omitted optional values remain unspecified."
            },
            {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "audience",
                "mode",
                "actionId"
              ],
              "properties": {
                "audience": {
                  "minItems": 1,
                  "uniqueItems": true,
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "const": "learner",
                        "type": "string",
                        "description": "The required literal value \"learner\"."
                      },
                      {
                        "const": "facilitator",
                        "type": "string",
                        "description": "The required literal value \"facilitator\"."
                      }
                    ],
                    "title": "Audience",
                    "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                  },
                  "title": "Audience",
                  "description": "Authorized output audiences. UI hints do not replace output filtering."
                },
                "mode": {
                  "const": "on-action",
                  "type": "string",
                  "title": "Mode",
                  "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                },
                "actionId": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "reference": {
                      "collection": "events.actions",
                      "label": "label"
                    }
                  },
                  "type": "string",
                  "description": "Successful completion of this action reveals the entry."
                }
              },
              "description": "Structured disclosure details. Omitted optional values remain unspecified."
            },
            {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "audience",
                "mode",
                "conditionId"
              ],
              "properties": {
                "audience": {
                  "minItems": 1,
                  "uniqueItems": true,
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "const": "learner",
                        "type": "string",
                        "description": "The required literal value \"learner\"."
                      },
                      {
                        "const": "facilitator",
                        "type": "string",
                        "description": "The required literal value \"facilitator\"."
                      }
                    ],
                    "title": "Audience",
                    "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                  },
                  "title": "Audience",
                  "description": "Authorized output audiences. UI hints do not replace output filtering."
                },
                "mode": {
                  "const": "on-condition",
                  "type": "string",
                  "title": "Mode",
                  "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                },
                "conditionId": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "reference": {
                      "collection": "events.conditions",
                      "label": "id"
                    }
                  },
                  "type": "string",
                  "description": "Reveal when the condition first becomes true; reject unrelated trigger fields."
                }
              },
              "description": "Structured disclosure details. Omitted optional values remain unspecified."
            }
          ],
          "title": "Disclosure",
          "description": "Select one of the declared Disclosure alternatives; use the fields belonging to that alternative."
        },
        "reportedByActorId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "environment.actors",
              "label": "name"
            }
          },
          "type": "string",
          "description": "Identifies the patient actor, relative, or colleague supplying the history."
        },
        "reliabilityNote": {
          "type": "string",
          "description": "Facilitator context on conflicting or incomplete history; visibility follows the observation's disclosure policy."
        },
        "variableId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "patients.*.variables",
              "label": "id"
            }
          },
          "type": "string",
          "description": "On collection, snapshot this variable's current value into a new measurement; later trends do not rewrite past results."
        },
        "referenceInterval": {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "context"
          ],
          "properties": {
            "low": {
              "type": "number",
              "description": "Numeric low. Do not infer an omitted value."
            },
            "high": {
              "type": "number",
              "description": "Numeric high. Do not infer an omitted value."
            },
            "text": {
              "type": "string",
              "description": "The text for this entry. Omit optional information that has not been specified."
            },
            "unit": {
              "type": "string",
              "description": "The unit for this entry. Omit optional information that has not been specified."
            },
            "context": {
              "type": "string",
              "description": "The context for this entry. Omit optional information that has not been specified."
            }
          },
          "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."
        },
        "flag": {
          "anyOf": [
            {
              "const": "low",
              "type": "string",
              "description": "Explicit authored flag, never inferred from a generic source default."
            },
            {
              "const": "high",
              "type": "string",
              "description": "Explicit authored flag, never inferred from a generic source default."
            },
            {
              "const": "critical",
              "type": "string",
              "description": "Explicit authored flag, never inferred from a generic source default."
            },
            {
              "const": "none",
              "type": "string",
              "description": "Explicit authored flag, never inferred from a generic source default."
            },
            {
              "const": "not-interpreted",
              "type": "string",
              "description": "Explicit authored flag, never inferred from a generic source default."
            }
          ],
          "description": "Explicit authored flag, never inferred from a generic source default."
        },
        "status": {
          "const": "known",
          "type": "string",
          "description": "Known requires a value. Other statuses prohibit a value rather than using zero or an empty string as a sentinel."
        },
        "value": {
          "type": "number",
          "description": "Type must match the registered concept. Qualitative findings can be text or explicit booleans."
        },
        "unit": {
          "type": "string",
          "description": "Fixed by the concept definition; no inferred conversions."
        }
      },
      "description": "Structured observations details. Omitted optional values remain unspecified."
    },
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "id",
        "patientId",
        "code",
        "kind",
        "disclosure",
        "status",
        "value"
      ],
      "properties": {
        "id": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "authoring": {
              "hidden": true
            }
          },
          "type": "string",
          "description": "Stable finding or measurement identity; a repeat collection creates a new observation ID."
        },
        "patientId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "patients",
              "label": "name"
            }
          },
          "type": "string",
          "description": "Patient to whom the observation belongs."
        },
        "code": {
          "type": "string",
          "description": "Namespaced concept, such as usim:general-appearance; codes do not imply external terminology certification."
        },
        "kind": {
          "anyOf": [
            {
              "const": "symptom",
              "type": "string",
              "description": "Separates reported experience, observed findings, and measured values."
            },
            {
              "const": "finding",
              "type": "string",
              "description": "Separates reported experience, observed findings, and measured values."
            },
            {
              "const": "measurement",
              "type": "string",
              "description": "Separates reported experience, observed findings, and measured values."
            }
          ],
          "description": "Separates reported experience, observed findings, and measured values."
        },
        "collectedAtSeconds": {
          "type": "number",
          "description": "Time of authored assessment or acquisition, possibly before baseline."
        },
        "availableAtSeconds": {
          "minimum": 0,
          "type": "number",
          "description": "Earliest simulated time for release; disclosure conditions must also be satisfied."
        },
        "method": {
          "type": "string",
          "description": "Method, location, or equipment used to obtain the finding."
        },
        "disclosure": {
          "anyOf": [
            {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "audience",
                "mode"
              ],
              "properties": {
                "audience": {
                  "minItems": 1,
                  "uniqueItems": true,
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "const": "learner",
                        "type": "string",
                        "description": "The required literal value \"learner\"."
                      },
                      {
                        "const": "facilitator",
                        "type": "string",
                        "description": "The required literal value \"facilitator\"."
                      }
                    ],
                    "title": "Audience",
                    "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                  },
                  "title": "Audience",
                  "description": "Authorized output audiences. UI hints do not replace output filtering."
                },
                "mode": {
                  "anyOf": [
                    {
                      "const": "initial",
                      "type": "string",
                      "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                    },
                    {
                      "const": "facilitator",
                      "type": "string",
                      "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                    }
                  ],
                  "title": "Mode",
                  "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                }
              },
              "description": "Structured disclosure details. Omitted optional values remain unspecified."
            },
            {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "audience",
                "mode",
                "resourceId"
              ],
              "properties": {
                "audience": {
                  "minItems": 1,
                  "uniqueItems": true,
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "const": "learner",
                        "type": "string",
                        "description": "The required literal value \"learner\"."
                      },
                      {
                        "const": "facilitator",
                        "type": "string",
                        "description": "The required literal value \"facilitator\"."
                      }
                    ],
                    "title": "Audience",
                    "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                  },
                  "title": "Audience",
                  "description": "Authorized output audiences. UI hints do not replace output filtering."
                },
                "mode": {
                  "const": "on-resource-response",
                  "type": "string",
                  "title": "Mode",
                  "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                },
                "resourceId": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "reference": {
                      "collection": "resources",
                      "label": "name"
                    }
                  },
                  "type": "string",
                  "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
                }
              },
              "description": "Structured disclosure details. Omitted optional values remain unspecified."
            },
            {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "audience",
                "mode",
                "actionId"
              ],
              "properties": {
                "audience": {
                  "minItems": 1,
                  "uniqueItems": true,
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "const": "learner",
                        "type": "string",
                        "description": "The required literal value \"learner\"."
                      },
                      {
                        "const": "facilitator",
                        "type": "string",
                        "description": "The required literal value \"facilitator\"."
                      }
                    ],
                    "title": "Audience",
                    "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                  },
                  "title": "Audience",
                  "description": "Authorized output audiences. UI hints do not replace output filtering."
                },
                "mode": {
                  "const": "on-action",
                  "type": "string",
                  "title": "Mode",
                  "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                },
                "actionId": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "reference": {
                      "collection": "events.actions",
                      "label": "label"
                    }
                  },
                  "type": "string",
                  "description": "Successful completion of this action reveals the entry."
                }
              },
              "description": "Structured disclosure details. Omitted optional values remain unspecified."
            },
            {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "audience",
                "mode",
                "conditionId"
              ],
              "properties": {
                "audience": {
                  "minItems": 1,
                  "uniqueItems": true,
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "const": "learner",
                        "type": "string",
                        "description": "The required literal value \"learner\"."
                      },
                      {
                        "const": "facilitator",
                        "type": "string",
                        "description": "The required literal value \"facilitator\"."
                      }
                    ],
                    "title": "Audience",
                    "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                  },
                  "title": "Audience",
                  "description": "Authorized output audiences. UI hints do not replace output filtering."
                },
                "mode": {
                  "const": "on-condition",
                  "type": "string",
                  "title": "Mode",
                  "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                },
                "conditionId": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "reference": {
                      "collection": "events.conditions",
                      "label": "id"
                    }
                  },
                  "type": "string",
                  "description": "Reveal when the condition first becomes true; reject unrelated trigger fields."
                }
              },
              "description": "Structured disclosure details. Omitted optional values remain unspecified."
            }
          ],
          "title": "Disclosure",
          "description": "Select one of the declared Disclosure alternatives; use the fields belonging to that alternative."
        },
        "reportedByActorId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "environment.actors",
              "label": "name"
            }
          },
          "type": "string",
          "description": "Identifies the patient actor, relative, or colleague supplying the history."
        },
        "reliabilityNote": {
          "type": "string",
          "description": "Facilitator context on conflicting or incomplete history; visibility follows the observation's disclosure policy."
        },
        "variableId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "patients.*.variables",
              "label": "id"
            }
          },
          "type": "string",
          "description": "On collection, snapshot this variable's current value into a new measurement; later trends do not rewrite past results."
        },
        "referenceInterval": {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "context"
          ],
          "properties": {
            "low": {
              "type": "number",
              "description": "Numeric low. Do not infer an omitted value."
            },
            "high": {
              "type": "number",
              "description": "Numeric high. Do not infer an omitted value."
            },
            "text": {
              "type": "string",
              "description": "The text for this entry. Omit optional information that has not been specified."
            },
            "unit": {
              "type": "string",
              "description": "The unit for this entry. Omit optional information that has not been specified."
            },
            "context": {
              "type": "string",
              "description": "The context for this entry. Omit optional information that has not been specified."
            }
          },
          "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."
        },
        "flag": {
          "anyOf": [
            {
              "const": "low",
              "type": "string",
              "description": "Explicit authored flag, never inferred from a generic source default."
            },
            {
              "const": "high",
              "type": "string",
              "description": "Explicit authored flag, never inferred from a generic source default."
            },
            {
              "const": "critical",
              "type": "string",
              "description": "Explicit authored flag, never inferred from a generic source default."
            },
            {
              "const": "none",
              "type": "string",
              "description": "Explicit authored flag, never inferred from a generic source default."
            },
            {
              "const": "not-interpreted",
              "type": "string",
              "description": "Explicit authored flag, never inferred from a generic source default."
            }
          ],
          "description": "Explicit authored flag, never inferred from a generic source default."
        },
        "status": {
          "const": "known",
          "type": "string",
          "description": "Known requires a value. Other statuses prohibit a value rather than using zero or an empty string as a sentinel."
        },
        "value": {
          "anyOf": [
            {
              "type": "string",
              "description": "Type must match the registered concept. Qualitative findings can be text or explicit booleans."
            },
            {
              "type": "boolean",
              "description": "Type must match the registered concept. Qualitative findings can be text or explicit booleans."
            }
          ],
          "description": "Type must match the registered concept. Qualitative findings can be text or explicit booleans."
        },
        "unit": {
          "type": "string",
          "description": "Fixed by the concept definition; no inferred conversions."
        }
      },
      "description": "Structured observations details. Omitted optional values remain unspecified."
    },
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "id",
        "patientId",
        "code",
        "kind",
        "disclosure",
        "status"
      ],
      "properties": {
        "id": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "authoring": {
              "hidden": true
            }
          },
          "type": "string",
          "description": "Stable finding or measurement identity; a repeat collection creates a new observation ID."
        },
        "patientId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "patients",
              "label": "name"
            }
          },
          "type": "string",
          "description": "Patient to whom the observation belongs."
        },
        "code": {
          "type": "string",
          "description": "Namespaced concept, such as usim:general-appearance; codes do not imply external terminology certification."
        },
        "kind": {
          "anyOf": [
            {
              "const": "symptom",
              "type": "string",
              "description": "Separates reported experience, observed findings, and measured values."
            },
            {
              "const": "finding",
              "type": "string",
              "description": "Separates reported experience, observed findings, and measured values."
            },
            {
              "const": "measurement",
              "type": "string",
              "description": "Separates reported experience, observed findings, and measured values."
            }
          ],
          "description": "Separates reported experience, observed findings, and measured values."
        },
        "collectedAtSeconds": {
          "type": "number",
          "description": "Time of authored assessment or acquisition, possibly before baseline."
        },
        "availableAtSeconds": {
          "minimum": 0,
          "type": "number",
          "description": "Earliest simulated time for release; disclosure conditions must also be satisfied."
        },
        "method": {
          "type": "string",
          "description": "Method, location, or equipment used to obtain the finding."
        },
        "disclosure": {
          "anyOf": [
            {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "audience",
                "mode"
              ],
              "properties": {
                "audience": {
                  "minItems": 1,
                  "uniqueItems": true,
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "const": "learner",
                        "type": "string",
                        "description": "The required literal value \"learner\"."
                      },
                      {
                        "const": "facilitator",
                        "type": "string",
                        "description": "The required literal value \"facilitator\"."
                      }
                    ],
                    "title": "Audience",
                    "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                  },
                  "title": "Audience",
                  "description": "Authorized output audiences. UI hints do not replace output filtering."
                },
                "mode": {
                  "anyOf": [
                    {
                      "const": "initial",
                      "type": "string",
                      "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                    },
                    {
                      "const": "facilitator",
                      "type": "string",
                      "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                    }
                  ],
                  "title": "Mode",
                  "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                }
              },
              "description": "Structured disclosure details. Omitted optional values remain unspecified."
            },
            {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "audience",
                "mode",
                "resourceId"
              ],
              "properties": {
                "audience": {
                  "minItems": 1,
                  "uniqueItems": true,
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "const": "learner",
                        "type": "string",
                        "description": "The required literal value \"learner\"."
                      },
                      {
                        "const": "facilitator",
                        "type": "string",
                        "description": "The required literal value \"facilitator\"."
                      }
                    ],
                    "title": "Audience",
                    "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                  },
                  "title": "Audience",
                  "description": "Authorized output audiences. UI hints do not replace output filtering."
                },
                "mode": {
                  "const": "on-resource-response",
                  "type": "string",
                  "title": "Mode",
                  "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                },
                "resourceId": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "reference": {
                      "collection": "resources",
                      "label": "name"
                    }
                  },
                  "type": "string",
                  "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
                }
              },
              "description": "Structured disclosure details. Omitted optional values remain unspecified."
            },
            {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "audience",
                "mode",
                "actionId"
              ],
              "properties": {
                "audience": {
                  "minItems": 1,
                  "uniqueItems": true,
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "const": "learner",
                        "type": "string",
                        "description": "The required literal value \"learner\"."
                      },
                      {
                        "const": "facilitator",
                        "type": "string",
                        "description": "The required literal value \"facilitator\"."
                      }
                    ],
                    "title": "Audience",
                    "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                  },
                  "title": "Audience",
                  "description": "Authorized output audiences. UI hints do not replace output filtering."
                },
                "mode": {
                  "const": "on-action",
                  "type": "string",
                  "title": "Mode",
                  "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                },
                "actionId": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "reference": {
                      "collection": "events.actions",
                      "label": "label"
                    }
                  },
                  "type": "string",
                  "description": "Successful completion of this action reveals the entry."
                }
              },
              "description": "Structured disclosure details. Omitted optional values remain unspecified."
            },
            {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "audience",
                "mode",
                "conditionId"
              ],
              "properties": {
                "audience": {
                  "minItems": 1,
                  "uniqueItems": true,
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "const": "learner",
                        "type": "string",
                        "description": "The required literal value \"learner\"."
                      },
                      {
                        "const": "facilitator",
                        "type": "string",
                        "description": "The required literal value \"facilitator\"."
                      }
                    ],
                    "title": "Audience",
                    "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                  },
                  "title": "Audience",
                  "description": "Authorized output audiences. UI hints do not replace output filtering."
                },
                "mode": {
                  "const": "on-condition",
                  "type": "string",
                  "title": "Mode",
                  "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                },
                "conditionId": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "reference": {
                      "collection": "events.conditions",
                      "label": "id"
                    }
                  },
                  "type": "string",
                  "description": "Reveal when the condition first becomes true; reject unrelated trigger fields."
                }
              },
              "description": "Structured disclosure details. Omitted optional values remain unspecified."
            }
          ],
          "title": "Disclosure",
          "description": "Select one of the declared Disclosure alternatives; use the fields belonging to that alternative."
        },
        "reportedByActorId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "environment.actors",
              "label": "name"
            }
          },
          "type": "string",
          "description": "Identifies the patient actor, relative, or colleague supplying the history."
        },
        "reliabilityNote": {
          "type": "string",
          "description": "Facilitator context on conflicting or incomplete history; visibility follows the observation's disclosure policy."
        },
        "variableId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "patients.*.variables",
              "label": "id"
            }
          },
          "type": "string",
          "description": "On collection, snapshot this variable's current value into a new measurement; later trends do not rewrite past results."
        },
        "referenceInterval": {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "context"
          ],
          "properties": {
            "low": {
              "type": "number",
              "description": "Numeric low. Do not infer an omitted value."
            },
            "high": {
              "type": "number",
              "description": "Numeric high. Do not infer an omitted value."
            },
            "text": {
              "type": "string",
              "description": "The text for this entry. Omit optional information that has not been specified."
            },
            "unit": {
              "type": "string",
              "description": "The unit for this entry. Omit optional information that has not been specified."
            },
            "context": {
              "type": "string",
              "description": "The context for this entry. Omit optional information that has not been specified."
            }
          },
          "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."
        },
        "flag": {
          "anyOf": [
            {
              "const": "low",
              "type": "string",
              "description": "Explicit authored flag, never inferred from a generic source default."
            },
            {
              "const": "high",
              "type": "string",
              "description": "Explicit authored flag, never inferred from a generic source default."
            },
            {
              "const": "critical",
              "type": "string",
              "description": "Explicit authored flag, never inferred from a generic source default."
            },
            {
              "const": "none",
              "type": "string",
              "description": "Explicit authored flag, never inferred from a generic source default."
            },
            {
              "const": "not-interpreted",
              "type": "string",
              "description": "Explicit authored flag, never inferred from a generic source default."
            }
          ],
          "description": "Explicit authored flag, never inferred from a generic source default."
        },
        "status": {
          "anyOf": [
            {
              "const": "unknown",
              "type": "string",
              "description": "Known requires a value. Other statuses prohibit a value rather than using zero or an empty string as a sentinel."
            },
            {
              "const": "not-assessed",
              "type": "string",
              "description": "Known requires a value. Other statuses prohibit a value rather than using zero or an empty string as a sentinel."
            },
            {
              "const": "pending",
              "type": "string",
              "description": "Known requires a value. Other statuses prohibit a value rather than using zero or an empty string as a sentinel."
            },
            {
              "const": "unavailable",
              "type": "string",
              "description": "Known requires a value. Other statuses prohibit a value rather than using zero or an empty string as a sentinel."
            }
          ],
          "description": "Known requires a value. Other statuses prohibit a value rather than using zero or an empty string as a sentinel."
        },
        "unit": {
          "type": "string",
          "description": "Fixed by the concept definition; no inferred conversions."
        }
      },
      "description": "Structured observations details. Omitted optional values remain unspecified."
    }
  ],
  "description": "Select one of the declared observations alternatives; use the fields belonging to that alternative."
}

Identifier

observations.*.id

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "Stable finding or measurement identity; a repeat collection creates a new observation ID."
}

Identifier

observations.*.patientId

string · Required when the parent is present

Patient to whom the observation belongs.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References patients using name as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "patients",
      "label": "name"
    }
  },
  "type": "string",
  "description": "Patient to whom the observation belongs."
}

code

observations.*.code

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "Namespaced concept, such as usim:general-appearance; codes do not imply external terminology certification."
}

kind

observations.*.kind

Value · Required when the parent is present

Separates reported experience, observed findings, and measured values.

Allowed values: symptom, finding, measurement

Field schema

{
  "anyOf": [
    {
      "const": "symptom",
      "type": "string",
      "description": "Separates reported experience, observed findings, and measured values."
    },
    {
      "const": "finding",
      "type": "string",
      "description": "Separates reported experience, observed findings, and measured values."
    },
    {
      "const": "measurement",
      "type": "string",
      "description": "Separates reported experience, observed findings, and measured values."
    }
  ],
  "description": "Separates reported experience, observed findings, and measured values."
}

collectedAtSeconds

observations.*.collectedAtSeconds

number · Optional; an omitted value is not a normal, negative, or zero value

Time of authored assessment or acquisition, possibly before baseline.

Field schema

{
  "type": "number",
  "description": "Time of authored assessment or acquisition, possibly before baseline."
}

availableAtSeconds

observations.*.availableAtSeconds

number · Optional; an omitted value is not a normal, negative, or zero value

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

  • Minimum: 0

Field schema

{
  "minimum": 0,
  "type": "number",
  "description": "Earliest simulated time for release; disclosure conditions must also be satisfied."
}

method

observations.*.method

string · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "string",
  "description": "Method, location, or equipment used to obtain the finding."
}

Disclosure

observations.*.disclosure

Value · Required when the parent is present

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

Field schema

{
  "anyOf": [
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "audience",
        "mode"
      ],
      "properties": {
        "audience": {
          "minItems": 1,
          "uniqueItems": true,
          "type": "array",
          "items": {
            "anyOf": [
              {
                "const": "learner",
                "type": "string",
                "description": "The required literal value \"learner\"."
              },
              {
                "const": "facilitator",
                "type": "string",
                "description": "The required literal value \"facilitator\"."
              }
            ],
            "title": "Audience",
            "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
          },
          "title": "Audience",
          "description": "Authorized output audiences. UI hints do not replace output filtering."
        },
        "mode": {
          "anyOf": [
            {
              "const": "initial",
              "type": "string",
              "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
            },
            {
              "const": "facilitator",
              "type": "string",
              "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
            }
          ],
          "title": "Mode",
          "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
        }
      },
      "description": "Structured disclosure details. Omitted optional values remain unspecified."
    },
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "audience",
        "mode",
        "resourceId"
      ],
      "properties": {
        "audience": {
          "minItems": 1,
          "uniqueItems": true,
          "type": "array",
          "items": {
            "anyOf": [
              {
                "const": "learner",
                "type": "string",
                "description": "The required literal value \"learner\"."
              },
              {
                "const": "facilitator",
                "type": "string",
                "description": "The required literal value \"facilitator\"."
              }
            ],
            "title": "Audience",
            "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
          },
          "title": "Audience",
          "description": "Authorized output audiences. UI hints do not replace output filtering."
        },
        "mode": {
          "const": "on-resource-response",
          "type": "string",
          "title": "Mode",
          "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
        },
        "resourceId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "resources",
              "label": "name"
            }
          },
          "type": "string",
          "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
        }
      },
      "description": "Structured disclosure details. Omitted optional values remain unspecified."
    },
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "audience",
        "mode",
        "actionId"
      ],
      "properties": {
        "audience": {
          "minItems": 1,
          "uniqueItems": true,
          "type": "array",
          "items": {
            "anyOf": [
              {
                "const": "learner",
                "type": "string",
                "description": "The required literal value \"learner\"."
              },
              {
                "const": "facilitator",
                "type": "string",
                "description": "The required literal value \"facilitator\"."
              }
            ],
            "title": "Audience",
            "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
          },
          "title": "Audience",
          "description": "Authorized output audiences. UI hints do not replace output filtering."
        },
        "mode": {
          "const": "on-action",
          "type": "string",
          "title": "Mode",
          "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
        },
        "actionId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "events.actions",
              "label": "label"
            }
          },
          "type": "string",
          "description": "Successful completion of this action reveals the entry."
        }
      },
      "description": "Structured disclosure details. Omitted optional values remain unspecified."
    },
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "audience",
        "mode",
        "conditionId"
      ],
      "properties": {
        "audience": {
          "minItems": 1,
          "uniqueItems": true,
          "type": "array",
          "items": {
            "anyOf": [
              {
                "const": "learner",
                "type": "string",
                "description": "The required literal value \"learner\"."
              },
              {
                "const": "facilitator",
                "type": "string",
                "description": "The required literal value \"facilitator\"."
              }
            ],
            "title": "Audience",
            "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
          },
          "title": "Audience",
          "description": "Authorized output audiences. UI hints do not replace output filtering."
        },
        "mode": {
          "const": "on-condition",
          "type": "string",
          "title": "Mode",
          "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
        },
        "conditionId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "events.conditions",
              "label": "id"
            }
          },
          "type": "string",
          "description": "Reveal when the condition first becomes true; reject unrelated trigger fields."
        }
      },
      "description": "Structured disclosure details. Omitted optional values remain unspecified."
    }
  ],
  "title": "Disclosure",
  "description": "Select one of the declared Disclosure alternatives; use the fields belonging to that alternative."
}

Audience

observations.*.disclosure.audience

array · Required when the parent is present

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

Field schema

{
  "minItems": 1,
  "uniqueItems": true,
  "type": "array",
  "items": {
    "anyOf": [
      {
        "const": "learner",
        "type": "string",
        "description": "The required literal value \"learner\"."
      },
      {
        "const": "facilitator",
        "type": "string",
        "description": "The required literal value \"facilitator\"."
      }
    ],
    "title": "Audience",
    "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
  },
  "title": "Audience",
  "description": "Authorized output audiences. UI hints do not replace output filtering."
}

Audience

observations.*.disclosure.audience.*

Value · Required when the parent is present

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

Allowed values: learner, facilitator

Field schema

{
  "anyOf": [
    {
      "const": "learner",
      "type": "string",
      "description": "The required literal value \"learner\"."
    },
    {
      "const": "facilitator",
      "type": "string",
      "description": "The required literal value \"facilitator\"."
    }
  ],
  "title": "Audience",
  "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
}

Mode

observations.*.disclosure.mode

Value · Required when the parent is present

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

Allowed values: initial, facilitator

Field schema

{
  "anyOf": [
    {
      "const": "initial",
      "type": "string",
      "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
    },
    {
      "const": "facilitator",
      "type": "string",
      "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
    }
  ],
  "title": "Mode",
  "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
}

Identifier

observations.*.disclosure.resourceId

string · Optional; an omitted value is not a normal, negative, or zero value

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References resources using name as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "resources",
      "label": "name"
    }
  },
  "type": "string",
  "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
}

Identifier

observations.*.disclosure.actionId

string · Optional; an omitted value is not a normal, negative, or zero value

Successful completion of this action reveals the entry.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References events.actions using label as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "events.actions",
      "label": "label"
    }
  },
  "type": "string",
  "description": "Successful completion of this action reveals the entry."
}

Identifier

observations.*.disclosure.conditionId

string · Optional; an omitted value is not a normal, negative, or zero value

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References events.conditions using id as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "events.conditions",
      "label": "id"
    }
  },
  "type": "string",
  "description": "Reveal when the condition first becomes true; reject unrelated trigger fields."
}

Identifier

observations.*.reportedByActorId

string · Optional; an omitted value is not a normal, negative, or zero value

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References environment.actors using name as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "environment.actors",
      "label": "name"
    }
  },
  "type": "string",
  "description": "Identifies the patient actor, relative, or colleague supplying the history."
}

reliabilityNote

observations.*.reliabilityNote

string · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "string",
  "description": "Facilitator context on conflicting or incomplete history; visibility follows the observation's disclosure policy."
}

Identifier

observations.*.variableId

string · Optional; an omitted value is not a normal, negative, or zero value

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References patients.*.variables using id as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "patients.*.variables",
      "label": "id"
    }
  },
  "type": "string",
  "description": "On collection, snapshot this variable's current value into a new measurement; later trends do not rewrite past results."
}

referenceInterval

observations.*.referenceInterval

object · Optional; an omitted value is not a normal, negative, or zero value

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.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "context"
  ],
  "properties": {
    "low": {
      "type": "number",
      "description": "Numeric low. Do not infer an omitted value."
    },
    "high": {
      "type": "number",
      "description": "Numeric high. Do not infer an omitted value."
    },
    "text": {
      "type": "string",
      "description": "The text for this entry. Omit optional information that has not been specified."
    },
    "unit": {
      "type": "string",
      "description": "The unit for this entry. Omit optional information that has not been specified."
    },
    "context": {
      "type": "string",
      "description": "The context for this entry. Omit optional information that has not been specified."
    }
  },
  "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."
}

low

observations.*.referenceInterval.low

number · Optional; an omitted value is not a normal, negative, or zero value

Numeric low. Do not infer an omitted value.

Field schema

{
  "type": "number",
  "description": "Numeric low. Do not infer an omitted value."
}

high

observations.*.referenceInterval.high

number · Optional; an omitted value is not a normal, negative, or zero value

Numeric high. Do not infer an omitted value.

Field schema

{
  "type": "number",
  "description": "Numeric high. Do not infer an omitted value."
}

text

observations.*.referenceInterval.text

string · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "string",
  "description": "The text for this entry. Omit optional information that has not been specified."
}

unit

observations.*.referenceInterval.unit

string · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "string",
  "description": "The unit for this entry. Omit optional information that has not been specified."
}

context

observations.*.referenceInterval.context

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "The context for this entry. Omit optional information that has not been specified."
}

flag

observations.*.flag

Value · Optional; an omitted value is not a normal, negative, or zero value

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

Allowed values: low, high, critical, none, not-interpreted

Field schema

{
  "anyOf": [
    {
      "const": "low",
      "type": "string",
      "description": "Explicit authored flag, never inferred from a generic source default."
    },
    {
      "const": "high",
      "type": "string",
      "description": "Explicit authored flag, never inferred from a generic source default."
    },
    {
      "const": "critical",
      "type": "string",
      "description": "Explicit authored flag, never inferred from a generic source default."
    },
    {
      "const": "none",
      "type": "string",
      "description": "Explicit authored flag, never inferred from a generic source default."
    },
    {
      "const": "not-interpreted",
      "type": "string",
      "description": "Explicit authored flag, never inferred from a generic source default."
    }
  ],
  "description": "Explicit authored flag, never inferred from a generic source default."
}

status

observations.*.status

string · Required when the parent is present

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

Field schema

{
  "const": "known",
  "type": "string",
  "description": "Known requires a value. Other statuses prohibit a value rather than using zero or an empty string as a sentinel."
}

value

observations.*.value

number · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "number",
  "description": "Type must match the registered concept. Qualitative findings can be text or explicit booleans."
}

unit

observations.*.unit

string · Optional; an omitted value is not a normal, negative, or zero value

Fixed by the concept definition; no inferred conversions.

Field schema

{
  "type": "string",
  "description": "Fixed by the concept definition; no inferred conversions."
}

environment

environment

object · Required when the parent is present

The location, preparation, equipment, and people needed to deliver the simulation.

Field schema

{
  "additionalProperties": false,
  "x-usim": {
    "authoring": {}
  },
  "type": "object",
  "required": [
    "setting",
    "requirements"
  ],
  "properties": {
    "setting": {
      "title": "Setting",
      "maxLength": 2000,
      "x-usim": {
        "authoring": {
          "editor": "textarea",
          "order": 0
        }
      },
      "type": "string",
      "description": "Where the scenario takes place and the relevant features of the care environment."
    },
    "teamRoles": {
      "type": "array",
      "items": {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "name",
          "minCount",
          "maxCount",
          "brief"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
          },
          "name": {
            "type": "string",
            "title": "Name",
            "description": "The Name for this entry. Omit optional information that has not been specified."
          },
          "minCount": {
            "minimum": 0,
            "type": "integer",
            "title": "Min count",
            "description": "Numeric Min count, at least 0. Do not infer an omitted value."
          },
          "maxCount": {
            "minimum": 0,
            "type": "integer",
            "title": "Max count",
            "description": "Numeric Max count, at least 0. Do not infer an omitted value."
          },
          "brief": {
            "type": "string",
            "title": "Brief",
            "x-usim": {
              "authoring": {
                "editor": "textarea",
                "span": "full"
              }
            },
            "description": "The Brief for this entry. Omit optional information that has not been specified."
          }
        },
        "description": "Portable learner role requirements. Counts are nonnegative with maxCount ≥ minCount; actual assignments belong to delivery records."
      },
      "title": "Team roles",
      "x-usim": {
        "authoring": {
          "hidden": true
        }
      },
      "description": "Entries for Team roles. An empty list means no entries have been authored."
    },
    "requirements": {
      "title": "Preparation requirements",
      "maxItems": 32,
      "description": "Pre-session tasks for the simulation center, each with a concrete action and setup outcome. Equipment and supplies belong in equipment.",
      "x-usim": {
        "authoring": {
          "addLabel": "Add requirement",
          "editor": "requirements",
          "order": 1
        }
      },
      "type": "array",
      "items": {
        "additionalProperties": false,
        "title": "Preparation requirement",
        "type": "object",
        "required": [
          "id",
          "description"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
          },
          "description": {
            "title": "Requirement",
            "maxLength": 240,
            "type": "string",
            "description": "One pre-session setup task with a concrete outcome, such as programming initial manikin observations or briefing an actor."
          },
          "resourceIds": {
            "minItems": 0,
            "uniqueItems": true,
            "type": "array",
            "items": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "resources",
                  "label": "name"
                }
              },
              "type": "string",
              "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
            },
            "title": "Resources",
            "description": "Entries for Resources. An empty list means no entries have been authored."
          },
          "substitutions": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "The substitutions for this entry. Omit optional information that has not been specified."
            },
            "title": "Substitutions",
            "description": "Entries for Substitutions. An empty list means no entries have been authored."
          },
          "required": {
            "default": true,
            "type": "boolean",
            "title": "Required",
            "description": "Whether Required applies. Omitted optional values remain unspecified."
          }
        },
        "description": "One pre-session setup task with a concrete outcome, such as programming initial manikin observations or briefing an actor."
      }
    },
    "actors": {
      "title": "Scenario actors",
      "maxItems": 32,
      "x-usim": {
        "authoring": {
          "addLabel": "Add actor",
          "order": 3
        }
      },
      "type": "array",
      "items": {
        "title": "Actor",
        "additionalProperties": false,
        "x-usim": {
          "authoring": {}
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "role",
          "brief"
        ],
        "properties": {
          "id": {
            "title": "Identifier",
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "A stable identifier used to reference this entry. Keep it unchanged when editing the entry's name or content."
          },
          "name": {
            "title": "Actor name",
            "maxLength": 160,
            "x-usim": {
              "authoring": {
                "order": 0
              }
            },
            "type": "string",
            "description": "The character's name or role-player label used to identify this actor."
          },
          "role": {
            "title": "Actor role",
            "maxLength": 1000,
            "x-usim": {
              "authoring": {
                "order": 1
              }
            },
            "type": "string",
            "description": "The character's relationship to the patient or care team, such as parent, bedside nurse, or consultant."
          },
          "opening": {
            "type": "string",
            "title": "Opening line",
            "x-usim": {
              "authoring": {
                "group": "Additional actor guidance",
                "defaultOpen": false,
                "order": 20,
                "editor": "textarea",
                "span": "full"
              }
            },
            "description": "The Opening line for this entry. Omit optional information that has not been specified."
          },
          "knowledge": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "The knowledge for this entry. Omit optional information that has not been specified."
            },
            "title": "Known information",
            "x-usim": {
              "authoring": {
                "group": "Additional actor guidance",
                "defaultOpen": false,
                "order": 20
              }
            },
            "description": "Entries for Known information. An empty list means no entries have been authored."
          },
          "affect": {
            "type": "string",
            "title": "Affect",
            "x-usim": {
              "authoring": {
                "group": "Additional actor guidance",
                "defaultOpen": false,
                "order": 20,
                "editor": "textarea",
                "span": "full"
              }
            },
            "description": "The Affect for this entry. Omit optional information that has not been specified."
          },
          "cues": {
            "type": "array",
            "items": {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "id",
                "conditionId",
                "line",
                "delivery",
                "maxUses"
              ],
              "properties": {
                "id": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "authoring": {
                      "hidden": true
                    }
                  },
                  "type": "string",
                  "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
                },
                "conditionId": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "reference": {
                      "collection": "events.conditions",
                      "label": "id"
                    }
                  },
                  "type": "string",
                  "description": "Identifier of an existing events.conditions entry. Preserve the referenced entry when editing this field."
                },
                "line": {
                  "type": "string",
                  "title": "Line",
                  "x-usim": {
                    "authoring": {
                      "editor": "textarea",
                      "span": "full"
                    }
                  },
                  "description": "The Line for this entry. Omit optional information that has not been specified."
                },
                "delivery": {
                  "anyOf": [
                    {
                      "const": "facilitator",
                      "type": "string",
                      "description": "The required literal value \"facilitator\"."
                    },
                    {
                      "const": "display",
                      "type": "string",
                      "description": "The required literal value \"display\"."
                    }
                  ],
                  "title": "Delivery",
                  "description": "Select one of the declared Delivery alternatives; use the fields belonging to that alternative."
                },
                "maxUses": {
                  "minimum": 1,
                  "type": "integer",
                  "title": "Max uses",
                  "description": "Numeric Max uses, at least 1. Do not infer an omitted value."
                }
              },
              "description": "Explicit trigger and repeat bound. Display sends authored text; facilitator means a prompt for a human actor."
            },
            "title": "Authored cues",
            "x-usim": {
              "authoring": {
                "group": "Additional actor guidance",
                "defaultOpen": false,
                "order": 20
              }
            },
            "description": "Entries for Authored cues. An empty list means no entries have been authored."
          },
          "brief": {
            "title": "Actor brief",
            "maxLength": 8000,
            "x-usim": {
              "authoring": {
                "editor": "textarea",
                "order": 2,
                "span": "full"
              }
            },
            "type": "string",
            "description": "Tell the actor what they know, how to behave, what to disclose, and how to respond to likely learner actions."
          },
          "demographics": {
            "title": "Voice demographics",
            "additionalProperties": false,
            "x-usim": {
              "authoring": {
                "order": 3
              }
            },
            "type": "object",
            "properties": {
              "age": {
                "additionalProperties": false,
                "title": "Age",
                "type": "object",
                "required": [
                  "value",
                  "unit"
                ],
                "properties": {
                  "value": {
                    "minimum": 0,
                    "type": "number",
                    "description": "The authored age in the selected unit.",
                    "title": "Value"
                  },
                  "unit": {
                    "anyOf": [
                      {
                        "const": "days",
                        "type": "string",
                        "description": "The required literal value \"days\"."
                      },
                      {
                        "const": "months",
                        "type": "string",
                        "description": "The required literal value \"months\"."
                      },
                      {
                        "const": "years",
                        "type": "string",
                        "description": "The required literal value \"years\"."
                      }
                    ],
                    "description": "Age unit; preserve days or months when appropriate.",
                    "title": "Unit"
                  }
                },
                "x-usim": {
                  "authoring": {
                    "editor": "age"
                  }
                },
                "description": "The character's authored age quantity, used to guide natural voice delivery without exaggeration."
              },
              "gender": {
                "title": "Gender",
                "maxLength": 160,
                "x-usim": {
                  "authoring": {
                    "editor": "gender"
                  }
                },
                "type": "string",
                "description": "The character's authored gender, used for default voice selection. Never inferred from their name or occupation."
              }
            },
            "description": "Optional authored age and gender for voice casting. Omit unknown details; voice uses a neutral adult default."
          }
        },
        "description": "One role-player's identity, role in the case, and instructions for responding to learners."
      },
      "description": "The people portraying scenario roles, with their names, roles, and briefing instructions."
    },
    "resetSteps": {
      "type": "array",
      "items": {
        "type": "string",
        "description": "The reset steps for this entry. Omit optional information that has not been specified."
      },
      "title": "Reset steps",
      "x-usim": {
        "authoring": {
          "group": "Reset steps",
          "defaultOpen": false,
          "order": 20
        }
      },
      "description": "Ordered steps to restore equipment, media, supplies, and actor starting conditions."
    },
    "equipment": {
      "title": "Equipment",
      "maxItems": 64,
      "x-usim": {
        "authoring": {
          "addLabel": "Add item",
          "order": 2
        }
      },
      "type": "array",
      "items": {
        "title": "Item",
        "maxLength": 1000,
        "x-usim": {
          "authoring": {}
        },
        "type": "string",
        "description": "One item of equipment or supplies needed for the session, with configuration or an acceptable substitute when useful."
      },
      "description": "The equipment and supplies needed to run the scenario."
    },
    "patientScene": {
      "title": "Patient scene",
      "additionalProperties": false,
      "x-usim": {
        "import": false,
        "authoring": {
          "editor": "scene",
          "order": 4
        }
      },
      "type": "object",
      "required": [
        "modelUrl",
        "attribution",
        "markers"
      ],
      "properties": {
        "modelUrl": {
          "title": "Patient model URL",
          "minLength": 1,
          "maxLength": 2000,
          "type": "string",
          "description": "The URL of the patient model to load in the 3D scene. Use a model accessible to the simulation viewer."
        },
        "attribution": {
          "title": "Model attribution",
          "maxLength": 2000,
          "x-usim": {
            "authoring": {}
          },
          "type": "string",
          "description": "Credit the model creator and record the source and license or permission to use it."
        },
        "markers": {
          "maxItems": 128,
          "type": "array",
          "items": {
            "additionalProperties": false,
            "x-usim": {
              "authoring": {}
            },
            "type": "object",
            "required": [
              "actionId",
              "position",
              "normal"
            ],
            "properties": {
              "actionId": {
                "title": "Marker action",
                "maxLength": 128,
                "minLength": 1,
                "pattern": "\\S",
                "x-usim": {
                  "reference": {
                    "collection": "events.actions",
                    "label": "label",
                    "excludeScheduled": true
                  },
                  "authoring": {}
                },
                "type": "string",
                "description": "The existing learner action to invoke when this hotspot is selected; scheduled transitions cannot be selected."
              },
              "position": {
                "minLength": 1,
                "maxLength": 160,
                "pattern": "^-?\\d+(?:\\.\\d+)?(?:m)?\\s+-?\\d+(?:\\.\\d+)?(?:m)?\\s+-?\\d+(?:\\.\\d+)?(?:m)?$",
                "type": "string",
                "description": "Hotspot location as three space-separated model-space coordinates (x y z), for example 0m 1m 0m.",
                "title": "Position"
              },
              "normal": {
                "minLength": 1,
                "maxLength": 160,
                "pattern": "^-?\\d+(?:\\.\\d+)?(?:m)?\\s+-?\\d+(?:\\.\\d+)?(?:m)?\\s+-?\\d+(?:\\.\\d+)?(?:m)?$",
                "type": "string",
                "description": "Hotspot surface direction as three space-separated vector components (x y z), for example 0 0 1.",
                "title": "Normal"
              }
            },
            "description": "One interaction hotspot with an action, a model-space position, and an outward-facing direction."
          },
          "description": "Clickable locations on the patient model, each linked to an existing learner interaction.",
          "title": "Markers"
        }
      },
      "description": "The patient model and scene configuration shown during the simulation."
    }
  },
  "description": "The location, preparation, equipment, and people needed to deliver the simulation."
}

Setting

environment.setting

string · Required when the parent is present

Where the scenario takes place and the relevant features of the care environment.

  • Maximum length: 2000 characters

Field schema

{
  "title": "Setting",
  "maxLength": 2000,
  "x-usim": {
    "authoring": {
      "editor": "textarea",
      "order": 0
    }
  },
  "type": "string",
  "description": "Where the scenario takes place and the relevant features of the care environment."
}

Team roles

environment.teamRoles

array · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "array",
  "items": {
    "additionalProperties": false,
    "type": "object",
    "required": [
      "id",
      "name",
      "minCount",
      "maxCount",
      "brief"
    ],
    "properties": {
      "id": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "authoring": {
            "hidden": true
          }
        },
        "type": "string",
        "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
      },
      "name": {
        "type": "string",
        "title": "Name",
        "description": "The Name for this entry. Omit optional information that has not been specified."
      },
      "minCount": {
        "minimum": 0,
        "type": "integer",
        "title": "Min count",
        "description": "Numeric Min count, at least 0. Do not infer an omitted value."
      },
      "maxCount": {
        "minimum": 0,
        "type": "integer",
        "title": "Max count",
        "description": "Numeric Max count, at least 0. Do not infer an omitted value."
      },
      "brief": {
        "type": "string",
        "title": "Brief",
        "x-usim": {
          "authoring": {
            "editor": "textarea",
            "span": "full"
          }
        },
        "description": "The Brief for this entry. Omit optional information that has not been specified."
      }
    },
    "description": "Portable learner role requirements. Counts are nonnegative with maxCount ≥ minCount; actual assignments belong to delivery records."
  },
  "title": "Team roles",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "description": "Entries for Team roles. An empty list means no entries have been authored."
}

*

environment.teamRoles.*

object · Required when the parent is present

Portable learner role requirements. Counts are nonnegative with maxCount ≥ minCount; actual assignments belong to delivery records.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "id",
    "name",
    "minCount",
    "maxCount",
    "brief"
  ],
  "properties": {
    "id": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "authoring": {
          "hidden": true
        }
      },
      "type": "string",
      "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
    },
    "name": {
      "type": "string",
      "title": "Name",
      "description": "The Name for this entry. Omit optional information that has not been specified."
    },
    "minCount": {
      "minimum": 0,
      "type": "integer",
      "title": "Min count",
      "description": "Numeric Min count, at least 0. Do not infer an omitted value."
    },
    "maxCount": {
      "minimum": 0,
      "type": "integer",
      "title": "Max count",
      "description": "Numeric Max count, at least 0. Do not infer an omitted value."
    },
    "brief": {
      "type": "string",
      "title": "Brief",
      "x-usim": {
        "authoring": {
          "editor": "textarea",
          "span": "full"
        }
      },
      "description": "The Brief for this entry. Omit optional information that has not been specified."
    }
  },
  "description": "Portable learner role requirements. Counts are nonnegative with maxCount ≥ minCount; actual assignments belong to delivery records."
}

Identifier

environment.teamRoles.*.id

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
}

Name

environment.teamRoles.*.name

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "title": "Name",
  "description": "The Name for this entry. Omit optional information that has not been specified."
}

Min count

environment.teamRoles.*.minCount

integer · Required when the parent is present

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

  • Minimum: 0

Field schema

{
  "minimum": 0,
  "type": "integer",
  "title": "Min count",
  "description": "Numeric Min count, at least 0. Do not infer an omitted value."
}

Max count

environment.teamRoles.*.maxCount

integer · Required when the parent is present

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

  • Minimum: 0

Field schema

{
  "minimum": 0,
  "type": "integer",
  "title": "Max count",
  "description": "Numeric Max count, at least 0. Do not infer an omitted value."
}

Brief

environment.teamRoles.*.brief

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "title": "Brief",
  "x-usim": {
    "authoring": {
      "editor": "textarea",
      "span": "full"
    }
  },
  "description": "The Brief for this entry. Omit optional information that has not been specified."
}

Preparation requirements

environment.requirements

array · Required when the parent is present

Pre-session tasks for the simulation center, each with a concrete action and setup outcome. Equipment and supplies belong in equipment.

  • Maximum entries: 32

Field schema

{
  "title": "Preparation requirements",
  "maxItems": 32,
  "description": "Pre-session tasks for the simulation center, each with a concrete action and setup outcome. Equipment and supplies belong in equipment.",
  "x-usim": {
    "authoring": {
      "addLabel": "Add requirement",
      "editor": "requirements",
      "order": 1
    }
  },
  "type": "array",
  "items": {
    "additionalProperties": false,
    "title": "Preparation requirement",
    "type": "object",
    "required": [
      "id",
      "description"
    ],
    "properties": {
      "id": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "authoring": {
            "hidden": true
          }
        },
        "type": "string",
        "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
      },
      "description": {
        "title": "Requirement",
        "maxLength": 240,
        "type": "string",
        "description": "One pre-session setup task with a concrete outcome, such as programming initial manikin observations or briefing an actor."
      },
      "resourceIds": {
        "minItems": 0,
        "uniqueItems": true,
        "type": "array",
        "items": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "resources",
              "label": "name"
            }
          },
          "type": "string",
          "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
        },
        "title": "Resources",
        "description": "Entries for Resources. An empty list means no entries have been authored."
      },
      "substitutions": {
        "type": "array",
        "items": {
          "type": "string",
          "description": "The substitutions for this entry. Omit optional information that has not been specified."
        },
        "title": "Substitutions",
        "description": "Entries for Substitutions. An empty list means no entries have been authored."
      },
      "required": {
        "default": true,
        "type": "boolean",
        "title": "Required",
        "description": "Whether Required applies. Omitted optional values remain unspecified."
      }
    },
    "description": "One pre-session setup task with a concrete outcome, such as programming initial manikin observations or briefing an actor."
  }
}

Preparation requirement

environment.requirements.*

object · Required when the parent is present

One pre-session setup task with a concrete outcome, such as programming initial manikin observations or briefing an actor.

Field schema

{
  "additionalProperties": false,
  "title": "Preparation requirement",
  "type": "object",
  "required": [
    "id",
    "description"
  ],
  "properties": {
    "id": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "authoring": {
          "hidden": true
        }
      },
      "type": "string",
      "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
    },
    "description": {
      "title": "Requirement",
      "maxLength": 240,
      "type": "string",
      "description": "One pre-session setup task with a concrete outcome, such as programming initial manikin observations or briefing an actor."
    },
    "resourceIds": {
      "minItems": 0,
      "uniqueItems": true,
      "type": "array",
      "items": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "reference": {
            "collection": "resources",
            "label": "name"
          }
        },
        "type": "string",
        "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
      },
      "title": "Resources",
      "description": "Entries for Resources. An empty list means no entries have been authored."
    },
    "substitutions": {
      "type": "array",
      "items": {
        "type": "string",
        "description": "The substitutions for this entry. Omit optional information that has not been specified."
      },
      "title": "Substitutions",
      "description": "Entries for Substitutions. An empty list means no entries have been authored."
    },
    "required": {
      "default": true,
      "type": "boolean",
      "title": "Required",
      "description": "Whether Required applies. Omitted optional values remain unspecified."
    }
  },
  "description": "One pre-session setup task with a concrete outcome, such as programming initial manikin observations or briefing an actor."
}

Identifier

environment.requirements.*.id

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
}

Requirement

environment.requirements.*.description

string · Required when the parent is present

One pre-session setup task with a concrete outcome, such as programming initial manikin observations or briefing an actor.

  • Maximum length: 240 characters

Field schema

{
  "title": "Requirement",
  "maxLength": 240,
  "type": "string",
  "description": "One pre-session setup task with a concrete outcome, such as programming initial manikin observations or briefing an actor."
}

Resources

environment.requirements.*.resourceIds

array · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "minItems": 0,
  "uniqueItems": true,
  "type": "array",
  "items": {
    "minLength": 1,
    "maxLength": 128,
    "pattern": "\\S",
    "title": "Identifier",
    "x-usim": {
      "reference": {
        "collection": "resources",
        "label": "name"
      }
    },
    "type": "string",
    "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
  },
  "title": "Resources",
  "description": "Entries for Resources. An empty list means no entries have been authored."
}

Identifier

environment.requirements.*.resourceIds.*

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References resources using name as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "resources",
      "label": "name"
    }
  },
  "type": "string",
  "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
}

Substitutions

environment.requirements.*.substitutions

array · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "array",
  "items": {
    "type": "string",
    "description": "The substitutions for this entry. Omit optional information that has not been specified."
  },
  "title": "Substitutions",
  "description": "Entries for Substitutions. An empty list means no entries have been authored."
}

*

environment.requirements.*.substitutions.*

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "The substitutions for this entry. Omit optional information that has not been specified."
}

Required

environment.requirements.*.required

boolean · Optional; an omitted value is not a normal, negative, or zero value

Whether Required applies. Omitted optional values remain unspecified.

Field schema

{
  "default": true,
  "type": "boolean",
  "title": "Required",
  "description": "Whether Required applies. Omitted optional values remain unspecified."
}

Scenario actors

environment.actors

array · Optional; an omitted value is not a normal, negative, or zero value

The people portraying scenario roles, with their names, roles, and briefing instructions.

  • Maximum entries: 32

Field schema

{
  "title": "Scenario actors",
  "maxItems": 32,
  "x-usim": {
    "authoring": {
      "addLabel": "Add actor",
      "order": 3
    }
  },
  "type": "array",
  "items": {
    "title": "Actor",
    "additionalProperties": false,
    "x-usim": {
      "authoring": {}
    },
    "type": "object",
    "required": [
      "id",
      "name",
      "role",
      "brief"
    ],
    "properties": {
      "id": {
        "title": "Identifier",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "x-usim": {
          "authoring": {
            "hidden": true
          }
        },
        "type": "string",
        "description": "A stable identifier used to reference this entry. Keep it unchanged when editing the entry's name or content."
      },
      "name": {
        "title": "Actor name",
        "maxLength": 160,
        "x-usim": {
          "authoring": {
            "order": 0
          }
        },
        "type": "string",
        "description": "The character's name or role-player label used to identify this actor."
      },
      "role": {
        "title": "Actor role",
        "maxLength": 1000,
        "x-usim": {
          "authoring": {
            "order": 1
          }
        },
        "type": "string",
        "description": "The character's relationship to the patient or care team, such as parent, bedside nurse, or consultant."
      },
      "opening": {
        "type": "string",
        "title": "Opening line",
        "x-usim": {
          "authoring": {
            "group": "Additional actor guidance",
            "defaultOpen": false,
            "order": 20,
            "editor": "textarea",
            "span": "full"
          }
        },
        "description": "The Opening line for this entry. Omit optional information that has not been specified."
      },
      "knowledge": {
        "type": "array",
        "items": {
          "type": "string",
          "description": "The knowledge for this entry. Omit optional information that has not been specified."
        },
        "title": "Known information",
        "x-usim": {
          "authoring": {
            "group": "Additional actor guidance",
            "defaultOpen": false,
            "order": 20
          }
        },
        "description": "Entries for Known information. An empty list means no entries have been authored."
      },
      "affect": {
        "type": "string",
        "title": "Affect",
        "x-usim": {
          "authoring": {
            "group": "Additional actor guidance",
            "defaultOpen": false,
            "order": 20,
            "editor": "textarea",
            "span": "full"
          }
        },
        "description": "The Affect for this entry. Omit optional information that has not been specified."
      },
      "cues": {
        "type": "array",
        "items": {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "id",
            "conditionId",
            "line",
            "delivery",
            "maxUses"
          ],
          "properties": {
            "id": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "authoring": {
                  "hidden": true
                }
              },
              "type": "string",
              "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
            },
            "conditionId": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "events.conditions",
                  "label": "id"
                }
              },
              "type": "string",
              "description": "Identifier of an existing events.conditions entry. Preserve the referenced entry when editing this field."
            },
            "line": {
              "type": "string",
              "title": "Line",
              "x-usim": {
                "authoring": {
                  "editor": "textarea",
                  "span": "full"
                }
              },
              "description": "The Line for this entry. Omit optional information that has not been specified."
            },
            "delivery": {
              "anyOf": [
                {
                  "const": "facilitator",
                  "type": "string",
                  "description": "The required literal value \"facilitator\"."
                },
                {
                  "const": "display",
                  "type": "string",
                  "description": "The required literal value \"display\"."
                }
              ],
              "title": "Delivery",
              "description": "Select one of the declared Delivery alternatives; use the fields belonging to that alternative."
            },
            "maxUses": {
              "minimum": 1,
              "type": "integer",
              "title": "Max uses",
              "description": "Numeric Max uses, at least 1. Do not infer an omitted value."
            }
          },
          "description": "Explicit trigger and repeat bound. Display sends authored text; facilitator means a prompt for a human actor."
        },
        "title": "Authored cues",
        "x-usim": {
          "authoring": {
            "group": "Additional actor guidance",
            "defaultOpen": false,
            "order": 20
          }
        },
        "description": "Entries for Authored cues. An empty list means no entries have been authored."
      },
      "brief": {
        "title": "Actor brief",
        "maxLength": 8000,
        "x-usim": {
          "authoring": {
            "editor": "textarea",
            "order": 2,
            "span": "full"
          }
        },
        "type": "string",
        "description": "Tell the actor what they know, how to behave, what to disclose, and how to respond to likely learner actions."
      },
      "demographics": {
        "title": "Voice demographics",
        "additionalProperties": false,
        "x-usim": {
          "authoring": {
            "order": 3
          }
        },
        "type": "object",
        "properties": {
          "age": {
            "additionalProperties": false,
            "title": "Age",
            "type": "object",
            "required": [
              "value",
              "unit"
            ],
            "properties": {
              "value": {
                "minimum": 0,
                "type": "number",
                "description": "The authored age in the selected unit.",
                "title": "Value"
              },
              "unit": {
                "anyOf": [
                  {
                    "const": "days",
                    "type": "string",
                    "description": "The required literal value \"days\"."
                  },
                  {
                    "const": "months",
                    "type": "string",
                    "description": "The required literal value \"months\"."
                  },
                  {
                    "const": "years",
                    "type": "string",
                    "description": "The required literal value \"years\"."
                  }
                ],
                "description": "Age unit; preserve days or months when appropriate.",
                "title": "Unit"
              }
            },
            "x-usim": {
              "authoring": {
                "editor": "age"
              }
            },
            "description": "The character's authored age quantity, used to guide natural voice delivery without exaggeration."
          },
          "gender": {
            "title": "Gender",
            "maxLength": 160,
            "x-usim": {
              "authoring": {
                "editor": "gender"
              }
            },
            "type": "string",
            "description": "The character's authored gender, used for default voice selection. Never inferred from their name or occupation."
          }
        },
        "description": "Optional authored age and gender for voice casting. Omit unknown details; voice uses a neutral adult default."
      }
    },
    "description": "One role-player's identity, role in the case, and instructions for responding to learners."
  },
  "description": "The people portraying scenario roles, with their names, roles, and briefing instructions."
}

Actor

environment.actors.*

object · Required when the parent is present

One role-player's identity, role in the case, and instructions for responding to learners.

Field schema

{
  "title": "Actor",
  "additionalProperties": false,
  "x-usim": {
    "authoring": {}
  },
  "type": "object",
  "required": [
    "id",
    "name",
    "role",
    "brief"
  ],
  "properties": {
    "id": {
      "title": "Identifier",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "x-usim": {
        "authoring": {
          "hidden": true
        }
      },
      "type": "string",
      "description": "A stable identifier used to reference this entry. Keep it unchanged when editing the entry's name or content."
    },
    "name": {
      "title": "Actor name",
      "maxLength": 160,
      "x-usim": {
        "authoring": {
          "order": 0
        }
      },
      "type": "string",
      "description": "The character's name or role-player label used to identify this actor."
    },
    "role": {
      "title": "Actor role",
      "maxLength": 1000,
      "x-usim": {
        "authoring": {
          "order": 1
        }
      },
      "type": "string",
      "description": "The character's relationship to the patient or care team, such as parent, bedside nurse, or consultant."
    },
    "opening": {
      "type": "string",
      "title": "Opening line",
      "x-usim": {
        "authoring": {
          "group": "Additional actor guidance",
          "defaultOpen": false,
          "order": 20,
          "editor": "textarea",
          "span": "full"
        }
      },
      "description": "The Opening line for this entry. Omit optional information that has not been specified."
    },
    "knowledge": {
      "type": "array",
      "items": {
        "type": "string",
        "description": "The knowledge for this entry. Omit optional information that has not been specified."
      },
      "title": "Known information",
      "x-usim": {
        "authoring": {
          "group": "Additional actor guidance",
          "defaultOpen": false,
          "order": 20
        }
      },
      "description": "Entries for Known information. An empty list means no entries have been authored."
    },
    "affect": {
      "type": "string",
      "title": "Affect",
      "x-usim": {
        "authoring": {
          "group": "Additional actor guidance",
          "defaultOpen": false,
          "order": 20,
          "editor": "textarea",
          "span": "full"
        }
      },
      "description": "The Affect for this entry. Omit optional information that has not been specified."
    },
    "cues": {
      "type": "array",
      "items": {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "conditionId",
          "line",
          "delivery",
          "maxUses"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
          },
          "conditionId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "events.conditions",
                "label": "id"
              }
            },
            "type": "string",
            "description": "Identifier of an existing events.conditions entry. Preserve the referenced entry when editing this field."
          },
          "line": {
            "type": "string",
            "title": "Line",
            "x-usim": {
              "authoring": {
                "editor": "textarea",
                "span": "full"
              }
            },
            "description": "The Line for this entry. Omit optional information that has not been specified."
          },
          "delivery": {
            "anyOf": [
              {
                "const": "facilitator",
                "type": "string",
                "description": "The required literal value \"facilitator\"."
              },
              {
                "const": "display",
                "type": "string",
                "description": "The required literal value \"display\"."
              }
            ],
            "title": "Delivery",
            "description": "Select one of the declared Delivery alternatives; use the fields belonging to that alternative."
          },
          "maxUses": {
            "minimum": 1,
            "type": "integer",
            "title": "Max uses",
            "description": "Numeric Max uses, at least 1. Do not infer an omitted value."
          }
        },
        "description": "Explicit trigger and repeat bound. Display sends authored text; facilitator means a prompt for a human actor."
      },
      "title": "Authored cues",
      "x-usim": {
        "authoring": {
          "group": "Additional actor guidance",
          "defaultOpen": false,
          "order": 20
        }
      },
      "description": "Entries for Authored cues. An empty list means no entries have been authored."
    },
    "brief": {
      "title": "Actor brief",
      "maxLength": 8000,
      "x-usim": {
        "authoring": {
          "editor": "textarea",
          "order": 2,
          "span": "full"
        }
      },
      "type": "string",
      "description": "Tell the actor what they know, how to behave, what to disclose, and how to respond to likely learner actions."
    },
    "demographics": {
      "title": "Voice demographics",
      "additionalProperties": false,
      "x-usim": {
        "authoring": {
          "order": 3
        }
      },
      "type": "object",
      "properties": {
        "age": {
          "additionalProperties": false,
          "title": "Age",
          "type": "object",
          "required": [
            "value",
            "unit"
          ],
          "properties": {
            "value": {
              "minimum": 0,
              "type": "number",
              "description": "The authored age in the selected unit.",
              "title": "Value"
            },
            "unit": {
              "anyOf": [
                {
                  "const": "days",
                  "type": "string",
                  "description": "The required literal value \"days\"."
                },
                {
                  "const": "months",
                  "type": "string",
                  "description": "The required literal value \"months\"."
                },
                {
                  "const": "years",
                  "type": "string",
                  "description": "The required literal value \"years\"."
                }
              ],
              "description": "Age unit; preserve days or months when appropriate.",
              "title": "Unit"
            }
          },
          "x-usim": {
            "authoring": {
              "editor": "age"
            }
          },
          "description": "The character's authored age quantity, used to guide natural voice delivery without exaggeration."
        },
        "gender": {
          "title": "Gender",
          "maxLength": 160,
          "x-usim": {
            "authoring": {
              "editor": "gender"
            }
          },
          "type": "string",
          "description": "The character's authored gender, used for default voice selection. Never inferred from their name or occupation."
        }
      },
      "description": "Optional authored age and gender for voice casting. Omit unknown details; voice uses a neutral adult default."
    }
  },
  "description": "One role-player's identity, role in the case, and instructions for responding to learners."
}

Identifier

environment.actors.*.id

string · Required when the parent is present

A stable identifier used to reference this entry. Keep it unchanged when editing the entry's name or content.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "title": "Identifier",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "A stable identifier used to reference this entry. Keep it unchanged when editing the entry's name or content."
}

Actor name

environment.actors.*.name

string · Required when the parent is present

The character's name or role-player label used to identify this actor.

  • Maximum length: 160 characters

Field schema

{
  "title": "Actor name",
  "maxLength": 160,
  "x-usim": {
    "authoring": {
      "order": 0
    }
  },
  "type": "string",
  "description": "The character's name or role-player label used to identify this actor."
}

Actor role

environment.actors.*.role

string · Required when the parent is present

The character's relationship to the patient or care team, such as parent, bedside nurse, or consultant.

  • Maximum length: 1000 characters

Field schema

{
  "title": "Actor role",
  "maxLength": 1000,
  "x-usim": {
    "authoring": {
      "order": 1
    }
  },
  "type": "string",
  "description": "The character's relationship to the patient or care team, such as parent, bedside nurse, or consultant."
}

Opening line

environment.actors.*.opening

string · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "string",
  "title": "Opening line",
  "x-usim": {
    "authoring": {
      "group": "Additional actor guidance",
      "defaultOpen": false,
      "order": 20,
      "editor": "textarea",
      "span": "full"
    }
  },
  "description": "The Opening line for this entry. Omit optional information that has not been specified."
}

Known information

environment.actors.*.knowledge

array · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "array",
  "items": {
    "type": "string",
    "description": "The knowledge for this entry. Omit optional information that has not been specified."
  },
  "title": "Known information",
  "x-usim": {
    "authoring": {
      "group": "Additional actor guidance",
      "defaultOpen": false,
      "order": 20
    }
  },
  "description": "Entries for Known information. An empty list means no entries have been authored."
}

*

environment.actors.*.knowledge.*

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "The knowledge for this entry. Omit optional information that has not been specified."
}

Affect

environment.actors.*.affect

string · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "string",
  "title": "Affect",
  "x-usim": {
    "authoring": {
      "group": "Additional actor guidance",
      "defaultOpen": false,
      "order": 20,
      "editor": "textarea",
      "span": "full"
    }
  },
  "description": "The Affect for this entry. Omit optional information that has not been specified."
}

Authored cues

environment.actors.*.cues

array · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "array",
  "items": {
    "additionalProperties": false,
    "type": "object",
    "required": [
      "id",
      "conditionId",
      "line",
      "delivery",
      "maxUses"
    ],
    "properties": {
      "id": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "authoring": {
            "hidden": true
          }
        },
        "type": "string",
        "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
      },
      "conditionId": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "reference": {
            "collection": "events.conditions",
            "label": "id"
          }
        },
        "type": "string",
        "description": "Identifier of an existing events.conditions entry. Preserve the referenced entry when editing this field."
      },
      "line": {
        "type": "string",
        "title": "Line",
        "x-usim": {
          "authoring": {
            "editor": "textarea",
            "span": "full"
          }
        },
        "description": "The Line for this entry. Omit optional information that has not been specified."
      },
      "delivery": {
        "anyOf": [
          {
            "const": "facilitator",
            "type": "string",
            "description": "The required literal value \"facilitator\"."
          },
          {
            "const": "display",
            "type": "string",
            "description": "The required literal value \"display\"."
          }
        ],
        "title": "Delivery",
        "description": "Select one of the declared Delivery alternatives; use the fields belonging to that alternative."
      },
      "maxUses": {
        "minimum": 1,
        "type": "integer",
        "title": "Max uses",
        "description": "Numeric Max uses, at least 1. Do not infer an omitted value."
      }
    },
    "description": "Explicit trigger and repeat bound. Display sends authored text; facilitator means a prompt for a human actor."
  },
  "title": "Authored cues",
  "x-usim": {
    "authoring": {
      "group": "Additional actor guidance",
      "defaultOpen": false,
      "order": 20
    }
  },
  "description": "Entries for Authored cues. An empty list means no entries have been authored."
}

*

environment.actors.*.cues.*

object · Required when the parent is present

Explicit trigger and repeat bound. Display sends authored text; facilitator means a prompt for a human actor.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "id",
    "conditionId",
    "line",
    "delivery",
    "maxUses"
  ],
  "properties": {
    "id": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "authoring": {
          "hidden": true
        }
      },
      "type": "string",
      "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
    },
    "conditionId": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "reference": {
          "collection": "events.conditions",
          "label": "id"
        }
      },
      "type": "string",
      "description": "Identifier of an existing events.conditions entry. Preserve the referenced entry when editing this field."
    },
    "line": {
      "type": "string",
      "title": "Line",
      "x-usim": {
        "authoring": {
          "editor": "textarea",
          "span": "full"
        }
      },
      "description": "The Line for this entry. Omit optional information that has not been specified."
    },
    "delivery": {
      "anyOf": [
        {
          "const": "facilitator",
          "type": "string",
          "description": "The required literal value \"facilitator\"."
        },
        {
          "const": "display",
          "type": "string",
          "description": "The required literal value \"display\"."
        }
      ],
      "title": "Delivery",
      "description": "Select one of the declared Delivery alternatives; use the fields belonging to that alternative."
    },
    "maxUses": {
      "minimum": 1,
      "type": "integer",
      "title": "Max uses",
      "description": "Numeric Max uses, at least 1. Do not infer an omitted value."
    }
  },
  "description": "Explicit trigger and repeat bound. Display sends authored text; facilitator means a prompt for a human actor."
}

Identifier

environment.actors.*.cues.*.id

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
}

Identifier

environment.actors.*.cues.*.conditionId

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References events.conditions using id as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "events.conditions",
      "label": "id"
    }
  },
  "type": "string",
  "description": "Identifier of an existing events.conditions entry. Preserve the referenced entry when editing this field."
}

Line

environment.actors.*.cues.*.line

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "title": "Line",
  "x-usim": {
    "authoring": {
      "editor": "textarea",
      "span": "full"
    }
  },
  "description": "The Line for this entry. Omit optional information that has not been specified."
}

Delivery

environment.actors.*.cues.*.delivery

Value · Required when the parent is present

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

Allowed values: facilitator, display

Field schema

{
  "anyOf": [
    {
      "const": "facilitator",
      "type": "string",
      "description": "The required literal value \"facilitator\"."
    },
    {
      "const": "display",
      "type": "string",
      "description": "The required literal value \"display\"."
    }
  ],
  "title": "Delivery",
  "description": "Select one of the declared Delivery alternatives; use the fields belonging to that alternative."
}

Max uses

environment.actors.*.cues.*.maxUses

integer · Required when the parent is present

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

  • Minimum: 1

Field schema

{
  "minimum": 1,
  "type": "integer",
  "title": "Max uses",
  "description": "Numeric Max uses, at least 1. Do not infer an omitted value."
}

Actor brief

environment.actors.*.brief

string · Required when the parent is present

Tell the actor what they know, how to behave, what to disclose, and how to respond to likely learner actions.

  • Maximum length: 8000 characters

Field schema

{
  "title": "Actor brief",
  "maxLength": 8000,
  "x-usim": {
    "authoring": {
      "editor": "textarea",
      "order": 2,
      "span": "full"
    }
  },
  "type": "string",
  "description": "Tell the actor what they know, how to behave, what to disclose, and how to respond to likely learner actions."
}

Voice demographics

environment.actors.*.demographics

object · Optional; an omitted value is not a normal, negative, or zero value

Optional authored age and gender for voice casting. Omit unknown details; voice uses a neutral adult default.

Field schema

{
  "title": "Voice demographics",
  "additionalProperties": false,
  "x-usim": {
    "authoring": {
      "order": 3
    }
  },
  "type": "object",
  "properties": {
    "age": {
      "additionalProperties": false,
      "title": "Age",
      "type": "object",
      "required": [
        "value",
        "unit"
      ],
      "properties": {
        "value": {
          "minimum": 0,
          "type": "number",
          "description": "The authored age in the selected unit.",
          "title": "Value"
        },
        "unit": {
          "anyOf": [
            {
              "const": "days",
              "type": "string",
              "description": "The required literal value \"days\"."
            },
            {
              "const": "months",
              "type": "string",
              "description": "The required literal value \"months\"."
            },
            {
              "const": "years",
              "type": "string",
              "description": "The required literal value \"years\"."
            }
          ],
          "description": "Age unit; preserve days or months when appropriate.",
          "title": "Unit"
        }
      },
      "x-usim": {
        "authoring": {
          "editor": "age"
        }
      },
      "description": "The character's authored age quantity, used to guide natural voice delivery without exaggeration."
    },
    "gender": {
      "title": "Gender",
      "maxLength": 160,
      "x-usim": {
        "authoring": {
          "editor": "gender"
        }
      },
      "type": "string",
      "description": "The character's authored gender, used for default voice selection. Never inferred from their name or occupation."
    }
  },
  "description": "Optional authored age and gender for voice casting. Omit unknown details; voice uses a neutral adult default."
}

Age

environment.actors.*.demographics.age

object · Optional; an omitted value is not a normal, negative, or zero value

The character's authored age quantity, used to guide natural voice delivery without exaggeration.

Field schema

{
  "additionalProperties": false,
  "title": "Age",
  "type": "object",
  "required": [
    "value",
    "unit"
  ],
  "properties": {
    "value": {
      "minimum": 0,
      "type": "number",
      "description": "The authored age in the selected unit.",
      "title": "Value"
    },
    "unit": {
      "anyOf": [
        {
          "const": "days",
          "type": "string",
          "description": "The required literal value \"days\"."
        },
        {
          "const": "months",
          "type": "string",
          "description": "The required literal value \"months\"."
        },
        {
          "const": "years",
          "type": "string",
          "description": "The required literal value \"years\"."
        }
      ],
      "description": "Age unit; preserve days or months when appropriate.",
      "title": "Unit"
    }
  },
  "x-usim": {
    "authoring": {
      "editor": "age"
    }
  },
  "description": "The character's authored age quantity, used to guide natural voice delivery without exaggeration."
}

Value

environment.actors.*.demographics.age.value

number · Required when the parent is present

The authored age in the selected unit.

  • Minimum: 0

Field schema

{
  "minimum": 0,
  "type": "number",
  "description": "The authored age in the selected unit.",
  "title": "Value"
}

Unit

environment.actors.*.demographics.age.unit

Value · Required when the parent is present

Age unit; preserve days or months when appropriate.

Allowed values: days, months, years

Field schema

{
  "anyOf": [
    {
      "const": "days",
      "type": "string",
      "description": "The required literal value \"days\"."
    },
    {
      "const": "months",
      "type": "string",
      "description": "The required literal value \"months\"."
    },
    {
      "const": "years",
      "type": "string",
      "description": "The required literal value \"years\"."
    }
  ],
  "description": "Age unit; preserve days or months when appropriate.",
  "title": "Unit"
}

Gender

environment.actors.*.demographics.gender

string · Optional; an omitted value is not a normal, negative, or zero value

The character's authored gender, used for default voice selection. Never inferred from their name or occupation.

  • Maximum length: 160 characters

Field schema

{
  "title": "Gender",
  "maxLength": 160,
  "x-usim": {
    "authoring": {
      "editor": "gender"
    }
  },
  "type": "string",
  "description": "The character's authored gender, used for default voice selection. Never inferred from their name or occupation."
}

Reset steps

environment.resetSteps

array · Optional; an omitted value is not a normal, negative, or zero value

Ordered steps to restore equipment, media, supplies, and actor starting conditions.

Field schema

{
  "type": "array",
  "items": {
    "type": "string",
    "description": "The reset steps for this entry. Omit optional information that has not been specified."
  },
  "title": "Reset steps",
  "x-usim": {
    "authoring": {
      "group": "Reset steps",
      "defaultOpen": false,
      "order": 20
    }
  },
  "description": "Ordered steps to restore equipment, media, supplies, and actor starting conditions."
}

*

environment.resetSteps.*

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "The reset steps for this entry. Omit optional information that has not been specified."
}

Equipment

environment.equipment

array · Optional; an omitted value is not a normal, negative, or zero value

The equipment and supplies needed to run the scenario.

  • Maximum entries: 64

Field schema

{
  "title": "Equipment",
  "maxItems": 64,
  "x-usim": {
    "authoring": {
      "addLabel": "Add item",
      "order": 2
    }
  },
  "type": "array",
  "items": {
    "title": "Item",
    "maxLength": 1000,
    "x-usim": {
      "authoring": {}
    },
    "type": "string",
    "description": "One item of equipment or supplies needed for the session, with configuration or an acceptable substitute when useful."
  },
  "description": "The equipment and supplies needed to run the scenario."
}

Item

environment.equipment.*

string · Required when the parent is present

One item of equipment or supplies needed for the session, with configuration or an acceptable substitute when useful.

  • Maximum length: 1000 characters

Field schema

{
  "title": "Item",
  "maxLength": 1000,
  "x-usim": {
    "authoring": {}
  },
  "type": "string",
  "description": "One item of equipment or supplies needed for the session, with configuration or an acceptable substitute when useful."
}

Patient scene

environment.patientScene

object · Optional; an omitted value is not a normal, negative, or zero value

The patient model and scene configuration shown during the simulation.

Field schema

{
  "title": "Patient scene",
  "additionalProperties": false,
  "x-usim": {
    "import": false,
    "authoring": {
      "editor": "scene",
      "order": 4
    }
  },
  "type": "object",
  "required": [
    "modelUrl",
    "attribution",
    "markers"
  ],
  "properties": {
    "modelUrl": {
      "title": "Patient model URL",
      "minLength": 1,
      "maxLength": 2000,
      "type": "string",
      "description": "The URL of the patient model to load in the 3D scene. Use a model accessible to the simulation viewer."
    },
    "attribution": {
      "title": "Model attribution",
      "maxLength": 2000,
      "x-usim": {
        "authoring": {}
      },
      "type": "string",
      "description": "Credit the model creator and record the source and license or permission to use it."
    },
    "markers": {
      "maxItems": 128,
      "type": "array",
      "items": {
        "additionalProperties": false,
        "x-usim": {
          "authoring": {}
        },
        "type": "object",
        "required": [
          "actionId",
          "position",
          "normal"
        ],
        "properties": {
          "actionId": {
            "title": "Marker action",
            "maxLength": 128,
            "minLength": 1,
            "pattern": "\\S",
            "x-usim": {
              "reference": {
                "collection": "events.actions",
                "label": "label",
                "excludeScheduled": true
              },
              "authoring": {}
            },
            "type": "string",
            "description": "The existing learner action to invoke when this hotspot is selected; scheduled transitions cannot be selected."
          },
          "position": {
            "minLength": 1,
            "maxLength": 160,
            "pattern": "^-?\\d+(?:\\.\\d+)?(?:m)?\\s+-?\\d+(?:\\.\\d+)?(?:m)?\\s+-?\\d+(?:\\.\\d+)?(?:m)?$",
            "type": "string",
            "description": "Hotspot location as three space-separated model-space coordinates (x y z), for example 0m 1m 0m.",
            "title": "Position"
          },
          "normal": {
            "minLength": 1,
            "maxLength": 160,
            "pattern": "^-?\\d+(?:\\.\\d+)?(?:m)?\\s+-?\\d+(?:\\.\\d+)?(?:m)?\\s+-?\\d+(?:\\.\\d+)?(?:m)?$",
            "type": "string",
            "description": "Hotspot surface direction as three space-separated vector components (x y z), for example 0 0 1.",
            "title": "Normal"
          }
        },
        "description": "One interaction hotspot with an action, a model-space position, and an outward-facing direction."
      },
      "description": "Clickable locations on the patient model, each linked to an existing learner interaction.",
      "title": "Markers"
    }
  },
  "description": "The patient model and scene configuration shown during the simulation."
}

Patient model URL

environment.patientScene.modelUrl

string · Required when the parent is present

The URL of the patient model to load in the 3D scene. Use a model accessible to the simulation viewer.

  • Minimum length: 1
  • Maximum length: 2000 characters

Field schema

{
  "title": "Patient model URL",
  "minLength": 1,
  "maxLength": 2000,
  "type": "string",
  "description": "The URL of the patient model to load in the 3D scene. Use a model accessible to the simulation viewer."
}

Model attribution

environment.patientScene.attribution

string · Required when the parent is present

Credit the model creator and record the source and license or permission to use it.

  • Maximum length: 2000 characters

Field schema

{
  "title": "Model attribution",
  "maxLength": 2000,
  "x-usim": {
    "authoring": {}
  },
  "type": "string",
  "description": "Credit the model creator and record the source and license or permission to use it."
}

Markers

environment.patientScene.markers

array · Required when the parent is present

Clickable locations on the patient model, each linked to an existing learner interaction.

  • Maximum entries: 128

Field schema

{
  "maxItems": 128,
  "type": "array",
  "items": {
    "additionalProperties": false,
    "x-usim": {
      "authoring": {}
    },
    "type": "object",
    "required": [
      "actionId",
      "position",
      "normal"
    ],
    "properties": {
      "actionId": {
        "title": "Marker action",
        "maxLength": 128,
        "minLength": 1,
        "pattern": "\\S",
        "x-usim": {
          "reference": {
            "collection": "events.actions",
            "label": "label",
            "excludeScheduled": true
          },
          "authoring": {}
        },
        "type": "string",
        "description": "The existing learner action to invoke when this hotspot is selected; scheduled transitions cannot be selected."
      },
      "position": {
        "minLength": 1,
        "maxLength": 160,
        "pattern": "^-?\\d+(?:\\.\\d+)?(?:m)?\\s+-?\\d+(?:\\.\\d+)?(?:m)?\\s+-?\\d+(?:\\.\\d+)?(?:m)?$",
        "type": "string",
        "description": "Hotspot location as three space-separated model-space coordinates (x y z), for example 0m 1m 0m.",
        "title": "Position"
      },
      "normal": {
        "minLength": 1,
        "maxLength": 160,
        "pattern": "^-?\\d+(?:\\.\\d+)?(?:m)?\\s+-?\\d+(?:\\.\\d+)?(?:m)?\\s+-?\\d+(?:\\.\\d+)?(?:m)?$",
        "type": "string",
        "description": "Hotspot surface direction as three space-separated vector components (x y z), for example 0 0 1.",
        "title": "Normal"
      }
    },
    "description": "One interaction hotspot with an action, a model-space position, and an outward-facing direction."
  },
  "description": "Clickable locations on the patient model, each linked to an existing learner interaction.",
  "title": "Markers"
}

*

environment.patientScene.markers.*

object · Required when the parent is present

One interaction hotspot with an action, a model-space position, and an outward-facing direction.

Field schema

{
  "additionalProperties": false,
  "x-usim": {
    "authoring": {}
  },
  "type": "object",
  "required": [
    "actionId",
    "position",
    "normal"
  ],
  "properties": {
    "actionId": {
      "title": "Marker action",
      "maxLength": 128,
      "minLength": 1,
      "pattern": "\\S",
      "x-usim": {
        "reference": {
          "collection": "events.actions",
          "label": "label",
          "excludeScheduled": true
        },
        "authoring": {}
      },
      "type": "string",
      "description": "The existing learner action to invoke when this hotspot is selected; scheduled transitions cannot be selected."
    },
    "position": {
      "minLength": 1,
      "maxLength": 160,
      "pattern": "^-?\\d+(?:\\.\\d+)?(?:m)?\\s+-?\\d+(?:\\.\\d+)?(?:m)?\\s+-?\\d+(?:\\.\\d+)?(?:m)?$",
      "type": "string",
      "description": "Hotspot location as three space-separated model-space coordinates (x y z), for example 0m 1m 0m.",
      "title": "Position"
    },
    "normal": {
      "minLength": 1,
      "maxLength": 160,
      "pattern": "^-?\\d+(?:\\.\\d+)?(?:m)?\\s+-?\\d+(?:\\.\\d+)?(?:m)?\\s+-?\\d+(?:\\.\\d+)?(?:m)?$",
      "type": "string",
      "description": "Hotspot surface direction as three space-separated vector components (x y z), for example 0 0 1.",
      "title": "Normal"
    }
  },
  "description": "One interaction hotspot with an action, a model-space position, and an outward-facing direction."
}

Marker action

environment.patientScene.markers.*.actionId

string · Required when the parent is present

The existing learner action to invoke when this hotspot is selected; scheduled transitions cannot be selected.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References events.actions using label as the display label.

Field schema

{
  "title": "Marker action",
  "maxLength": 128,
  "minLength": 1,
  "pattern": "\\S",
  "x-usim": {
    "reference": {
      "collection": "events.actions",
      "label": "label",
      "excludeScheduled": true
    },
    "authoring": {}
  },
  "type": "string",
  "description": "The existing learner action to invoke when this hotspot is selected; scheduled transitions cannot be selected."
}

Position

environment.patientScene.markers.*.position

string · Required when the parent is present

Hotspot location as three space-separated model-space coordinates (x y z), for example 0m 1m 0m.

  • Minimum length: 1
  • Maximum length: 160 characters
  • Pattern: ^-?\d+(?:\.\d+)?(?:m)?\s+-?\d+(?:\.\d+)?(?:m)?\s+-?\d+(?:\.\d+)?(?:m)?$

Field schema

{
  "minLength": 1,
  "maxLength": 160,
  "pattern": "^-?\\d+(?:\\.\\d+)?(?:m)?\\s+-?\\d+(?:\\.\\d+)?(?:m)?\\s+-?\\d+(?:\\.\\d+)?(?:m)?$",
  "type": "string",
  "description": "Hotspot location as three space-separated model-space coordinates (x y z), for example 0m 1m 0m.",
  "title": "Position"
}

Normal

environment.patientScene.markers.*.normal

string · Required when the parent is present

Hotspot surface direction as three space-separated vector components (x y z), for example 0 0 1.

  • Minimum length: 1
  • Maximum length: 160 characters
  • Pattern: ^-?\d+(?:\.\d+)?(?:m)?\s+-?\d+(?:\.\d+)?(?:m)?\s+-?\d+(?:\.\d+)?(?:m)?$

Field schema

{
  "minLength": 1,
  "maxLength": 160,
  "pattern": "^-?\\d+(?:\\.\\d+)?(?:m)?\\s+-?\\d+(?:\\.\\d+)?(?:m)?\\s+-?\\d+(?:\\.\\d+)?(?:m)?$",
  "type": "string",
  "description": "Hotspot surface direction as three space-separated vector components (x y z), for example 0 0 1.",
  "title": "Normal"
}

education

education

object · Required when the parent is present

Learning goals, learner preparation, assessment criteria, and guidance for reflection after the case.

Field schema

{
  "additionalProperties": false,
  "x-usim": {
    "authoring": {}
  },
  "type": "object",
  "required": [
    "objectives",
    "debriefPrompts"
  ],
  "properties": {
    "rationale": {
      "title": "Educational rationale",
      "maxLength": 8000,
      "x-usim": {
        "authoring": {
          "editor": "textarea",
          "group": "Teaching context",
          "order": 2
        }
      },
      "type": "string",
      "description": "Explain why this case is educationally useful and how its decisions and challenges support the learning objectives."
    },
    "preparation": {
      "title": "Preparation",
      "x-usim": {
        "authoring": {
          "editor": "preparation",
          "group": "Teaching context",
          "order": 4
        }
      },
      "type": "array",
      "items": {
        "additionalProperties": false,
        "title": "Preparation activity",
        "type": "object",
        "required": [
          "id",
          "audience",
          "instructions",
          "assetIds"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
          },
          "audience": {
            "anyOf": [
              {
                "const": "learner",
                "type": "string",
                "description": "The required literal value \"learner\"."
              },
              {
                "const": "facilitator",
                "type": "string",
                "description": "The required literal value \"facilitator\"."
              }
            ],
            "title": "Audience",
            "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
          },
          "instructions": {
            "title": "Preparation instructions",
            "x-usim": {
              "authoring": {
                "editor": "markdown",
                "links": true
              }
            },
            "type": "string",
            "description": "Rich-text instructions stored as Markdown for knowledge, skills, modules, or preparation learners should complete before starting."
          },
          "assetIds": {
            "minItems": 0,
            "uniqueItems": true,
            "type": "array",
            "items": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "assets",
                  "label": "description"
                }
              },
              "type": "string",
              "description": "Identifier of an existing assets entry. Preserve the referenced entry when editing this field."
            },
            "title": "Supporting materials",
            "description": "Entries for Supporting materials. An empty list means no entries have been authored."
          }
        },
        "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."
      },
      "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."
    },
    "objectives": {
      "title": "Learning objectives",
      "maxItems": 32,
      "x-usim": {
        "authoring": {
          "editor": "objectives",
          "order": 0
        }
      },
      "type": "array",
      "items": {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "statement"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "A stable objective identifier. Preserve it when editing or reordering the objective."
          },
          "statement": {
            "title": "Learning objective",
            "maxLength": 1000,
            "type": "string",
            "description": "An observable learning outcome, using an action verb such as recognize, assess, communicate, or initiate."
          },
          "evidenceActionIds": {
            "minItems": 0,
            "uniqueItems": true,
            "type": "array",
            "items": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "events.actions",
                  "label": "label"
                }
              },
              "type": "string",
              "description": "Identifier of an existing events.actions entry. Preserve the referenced entry when editing this field."
            },
            "title": "Evidence actions",
            "description": "Entries for Evidence actions. An empty list means no entries have been authored."
          },
          "acgmeCompetencies": {
            "uniqueItems": true,
            "maxItems": 6,
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "const": "PC",
                  "type": "string",
                  "description": "The required literal value \"PC\"."
                },
                {
                  "const": "MK",
                  "type": "string",
                  "description": "The required literal value \"MK\"."
                },
                {
                  "const": "PBLI",
                  "type": "string",
                  "description": "The required literal value \"PBLI\"."
                },
                {
                  "const": "ICS",
                  "type": "string",
                  "description": "The required literal value \"ICS\"."
                },
                {
                  "const": "PROF",
                  "type": "string",
                  "description": "The required literal value \"PROF\"."
                },
                {
                  "const": "SBP",
                  "type": "string",
                  "description": "The required literal value \"SBP\"."
                }
              ],
              "description": "One of the six ACGME core domain codes: PC, MK, PBLI, ICS, PROF, or SBP. Each code may appear only once per objective."
            },
            "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.",
            "title": "Acgme competencies"
          },
          "domain": {
            "anyOf": [
              {
                "const": "knowledge",
                "type": "string",
                "description": "Optional classification for discovery; it does not select a scoring algorithm."
              },
              {
                "const": "reasoning",
                "type": "string",
                "description": "Optional classification for discovery; it does not select a scoring algorithm."
              },
              {
                "const": "technical-skill",
                "type": "string",
                "description": "Optional classification for discovery; it does not select a scoring algorithm."
              },
              {
                "const": "communication",
                "type": "string",
                "description": "Optional classification for discovery; it does not select a scoring algorithm."
              },
              {
                "const": "teamwork",
                "type": "string",
                "description": "Optional classification for discovery; it does not select a scoring algorithm."
              },
              {
                "const": "professionalism",
                "type": "string",
                "description": "Optional classification for discovery; it does not select a scoring algorithm."
              },
              {
                "const": "systems",
                "type": "string",
                "description": "Optional classification for discovery; it does not select a scoring algorithm."
              }
            ],
            "title": "Domain",
            "description": "Optional classification for discovery; it does not select a scoring algorithm."
          },
          "performance": {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "context",
              "expectedBehavior",
              "successCriteria",
              "scope"
            ],
            "properties": {
              "context": {
                "type": "string",
                "title": "Context",
                "description": "The Context for this entry. Omit optional information that has not been specified."
              },
              "expectedBehavior": {
                "type": "string",
                "title": "Expected behavior",
                "description": "The Expected behavior for this entry. Omit optional information that has not been specified."
              },
              "successCriteria": {
                "type": "string",
                "title": "Success criteria",
                "description": "The Success criteria for this entry. Omit optional information that has not been specified."
              },
              "scope": {
                "anyOf": [
                  {
                    "const": "individual",
                    "type": "string",
                    "description": "The required literal value \"individual\"."
                  },
                  {
                    "const": "team",
                    "type": "string",
                    "description": "The required literal value \"team\"."
                  }
                ],
                "title": "Scope",
                "description": "Select one of the declared Scope alternatives; use the fields belonging to that alternative."
              }
            },
            "title": "Performance",
            "description": "Observable behavior, conditions of performance, and acceptable standard. Team evidence cannot be attributed automatically to each individual."
          },
          "curriculumMappings": {
            "type": "array",
            "items": {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "framework",
                "version",
                "code",
                "label"
              ],
              "properties": {
                "framework": {
                  "pattern": "^[A-Za-z][A-Za-z0-9+.-]*:",
                  "type": "string",
                  "title": "Framework",
                  "description": "The Framework for this entry. Omit optional information that has not been specified."
                },
                "version": {
                  "type": "string",
                  "title": "Version",
                  "description": "The Version for this entry. Omit optional information that has not been specified."
                },
                "code": {
                  "type": "string",
                  "title": "Code",
                  "description": "The Code for this entry. Omit optional information that has not been specified."
                },
                "label": {
                  "type": "string",
                  "title": "Label",
                  "description": "The Label for this entry. Omit optional information that has not been specified."
                }
              },
              "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."
            },
            "title": "Curriculum mappings",
            "description": "Entries for Curriculum mappings. An empty list means no entries have been authored."
          },
          "learnerBrief": {
            "type": "string",
            "title": "Learner brief",
            "description": "Learner-facing statement of the task or objective. Facilitator success criteria may contain spoilers and are not included implicitly."
          }
        },
        "description": "One observable learning goal, using an action verb such as recognize, assess, communicate, or initiate."
      },
      "description": "The observable knowledge, skills, or behaviors learners should demonstrate."
    },
    "debriefPrompts": {
      "title": "Debrief prompt",
      "type": "array",
      "items": {
        "additionalProperties": false,
        "title": "Debrief prompt",
        "type": "object",
        "required": [
          "id",
          "question"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
          },
          "objectiveIds": {
            "minItems": 0,
            "uniqueItems": true,
            "type": "array",
            "items": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "education.objectives",
                  "label": "statement"
                }
              },
              "type": "string",
              "description": "Identifier of an existing education.objectives entry. Preserve the referenced entry when editing this field."
            },
            "title": "Learning objectives",
            "description": "Entries for Learning objectives. An empty list means no entries have been authored."
          },
          "question": {
            "title": "Debrief prompt",
            "maxLength": 12000,
            "type": "string",
            "description": "A prompt for facilitated reflection after the scenario. Formatting is stored as Markdown."
          },
          "facilitatorRationale": {
            "type": "string",
            "title": "Facilitator rationale",
            "x-usim": {
              "authoring": {
                "editor": "textarea",
                "span": "full"
              }
            },
            "description": "The Facilitator rationale for this entry. Omit optional information that has not been specified."
          }
        },
        "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."
      },
      "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.",
      "x-usim": {
        "authoring": {
          "order": 1,
          "editor": "debrief"
        }
      }
    },
    "assessment": {
      "title": "Assessment",
      "maxItems": 64,
      "x-usim": {
        "authoring": {
          "editor": "assessment",
          "order": 3
        }
      },
      "type": "array",
      "items": {
        "additionalProperties": false,
        "x-usim": {
          "authoring": {}
        },
        "type": "object",
        "required": [
          "id",
          "label",
          "actionId",
          "points",
          "feedback"
        ],
        "properties": {
          "objectiveId": {
            "title": "Learning objective",
            "maxLength": 128,
            "minLength": 1,
            "pattern": "\\S",
            "x-usim": {
              "reference": {
                "collection": "education.objectives",
                "label": "statement",
                "excludeScheduled": false
              },
              "authoring": {
                "emptyLabel": "No linked objective"
              }
            },
            "type": "string",
            "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."
          },
          "id": {
            "title": "Identifier",
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "A stable identifier used to reference this entry. Keep it unchanged when editing the entry's name or content."
          },
          "label": {
            "title": "Skill or objective",
            "maxLength": 1000,
            "x-usim": {
              "authoring": {}
            },
            "type": "string",
            "minLength": 1,
            "pattern": "\\S",
            "description": "Name the observable skill or objective being assessed, such as recognizing deterioration."
          },
          "actionId": {
            "title": "Required action",
            "maxLength": 128,
            "minLength": 1,
            "pattern": "\\S",
            "x-usim": {
              "reference": {
                "collection": "events.actions",
                "label": "label",
                "excludeScheduled": true
              },
              "authoring": {
                "emptyLabel": "Choose an action"
              }
            },
            "type": "string",
            "description": "Select the learner action that earns credit for this criterion. Scheduled transitions cannot earn action credit."
          },
          "objectId": {
            "title": "Equivalent resource",
            "maxLength": 128,
            "minLength": 1,
            "pattern": "\\S",
            "x-usim": {
              "reference": {
                "collection": "resources",
                "label": "name",
                "excludeScheduled": false
              },
              "authoring": {
                "emptyLabel": "No equivalent resource"
              }
            },
            "type": "string",
            "description": "Single equivalent resource. Used when objectIds is omitted; the required action's linked resource is used when both are omitted."
          },
          "objectIds": {
            "title": "Equivalent resources",
            "minItems": 1,
            "maxItems": 1000,
            "uniqueItems": true,
            "type": "array",
            "items": {
              "title": "Equivalent resource",
              "maxLength": 128,
              "minLength": 1,
              "pattern": "\\S",
              "x-usim": {
                "reference": {
                  "collection": "resources",
                  "label": "name",
                  "excludeScheduled": false
                },
                "authoring": {}
              },
              "type": "string",
              "description": "The identifier of a learner-requestable resource accepted as an alternative for this assessment criterion."
            },
            "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."
          },
          "points": {
            "title": "Points",
            "minimum": 1,
            "maximum": 100,
            "x-usim": {
              "authoring": {}
            },
            "type": "number",
            "description": "The weight of this criterion in the total score, from 1 to 100. Credit is awarded once when the criterion is met."
          },
          "withinSeconds": {
            "title": "Deadline · seconds",
            "minimum": 0,
            "maximum": 86400,
            "x-usim": {
              "unit": "s",
              "authoring": {}
            },
            "type": "number",
            "description": "Latest qualifying action time in seconds from the start of the run, inclusive. Omit to assess the action without a deadline."
          },
          "feedback": {
            "title": "Debrief guidance",
            "maxLength": 8000,
            "x-usim": {
              "authoring": {
                "editor": "textarea"
              }
            },
            "type": "string",
            "description": "Explain the expected behavior, why it matters, and what to discuss when the action is completed or missed."
          },
          "learningUrl": {
            "title": "Learning material URL",
            "maxLength": 2000,
            "pattern": "^https://[^\\s]+$",
            "type": "string",
            "description": "An HTTPS link to learning material relevant to this criterion, such as a guideline or teaching resource."
          }
        },
        "description": "One scored criterion linking an observable skill to a recorded action, with points and debrief feedback."
      },
      "description": "The authored criteria used to assess learner performance."
    }
  },
  "description": "Learning goals, learner preparation, assessment criteria, and guidance for reflection after the case."
}

Educational rationale

education.rationale

string · Optional; an omitted value is not a normal, negative, or zero value

Explain why this case is educationally useful and how its decisions and challenges support the learning objectives.

  • Maximum length: 8000 characters

Field schema

{
  "title": "Educational rationale",
  "maxLength": 8000,
  "x-usim": {
    "authoring": {
      "editor": "textarea",
      "group": "Teaching context",
      "order": 2
    }
  },
  "type": "string",
  "description": "Explain why this case is educationally useful and how its decisions and challenges support the learning objectives."
}

Preparation

education.preparation

array · Optional; an omitted value is not a normal, negative, or zero value

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.

Field schema

{
  "title": "Preparation",
  "x-usim": {
    "authoring": {
      "editor": "preparation",
      "group": "Teaching context",
      "order": 4
    }
  },
  "type": "array",
  "items": {
    "additionalProperties": false,
    "title": "Preparation activity",
    "type": "object",
    "required": [
      "id",
      "audience",
      "instructions",
      "assetIds"
    ],
    "properties": {
      "id": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "authoring": {
            "hidden": true
          }
        },
        "type": "string",
        "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
      },
      "audience": {
        "anyOf": [
          {
            "const": "learner",
            "type": "string",
            "description": "The required literal value \"learner\"."
          },
          {
            "const": "facilitator",
            "type": "string",
            "description": "The required literal value \"facilitator\"."
          }
        ],
        "title": "Audience",
        "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
      },
      "instructions": {
        "title": "Preparation instructions",
        "x-usim": {
          "authoring": {
            "editor": "markdown",
            "links": true
          }
        },
        "type": "string",
        "description": "Rich-text instructions stored as Markdown for knowledge, skills, modules, or preparation learners should complete before starting."
      },
      "assetIds": {
        "minItems": 0,
        "uniqueItems": true,
        "type": "array",
        "items": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "assets",
              "label": "description"
            }
          },
          "type": "string",
          "description": "Identifier of an existing assets entry. Preserve the referenced entry when editing this field."
        },
        "title": "Supporting materials",
        "description": "Entries for Supporting materials. An empty list means no entries have been authored."
      }
    },
    "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."
  },
  "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."
}

Preparation activity

education.preparation.*

object · Required when the parent is present

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.

Field schema

{
  "additionalProperties": false,
  "title": "Preparation activity",
  "type": "object",
  "required": [
    "id",
    "audience",
    "instructions",
    "assetIds"
  ],
  "properties": {
    "id": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "authoring": {
          "hidden": true
        }
      },
      "type": "string",
      "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
    },
    "audience": {
      "anyOf": [
        {
          "const": "learner",
          "type": "string",
          "description": "The required literal value \"learner\"."
        },
        {
          "const": "facilitator",
          "type": "string",
          "description": "The required literal value \"facilitator\"."
        }
      ],
      "title": "Audience",
      "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
    },
    "instructions": {
      "title": "Preparation instructions",
      "x-usim": {
        "authoring": {
          "editor": "markdown",
          "links": true
        }
      },
      "type": "string",
      "description": "Rich-text instructions stored as Markdown for knowledge, skills, modules, or preparation learners should complete before starting."
    },
    "assetIds": {
      "minItems": 0,
      "uniqueItems": true,
      "type": "array",
      "items": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "reference": {
            "collection": "assets",
            "label": "description"
          }
        },
        "type": "string",
        "description": "Identifier of an existing assets entry. Preserve the referenced entry when editing this field."
      },
      "title": "Supporting materials",
      "description": "Entries for Supporting materials. An empty list means no entries have been authored."
    }
  },
  "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."
}

Identifier

education.preparation.*.id

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
}

Audience

education.preparation.*.audience

Value · Required when the parent is present

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

Allowed values: learner, facilitator

Field schema

{
  "anyOf": [
    {
      "const": "learner",
      "type": "string",
      "description": "The required literal value \"learner\"."
    },
    {
      "const": "facilitator",
      "type": "string",
      "description": "The required literal value \"facilitator\"."
    }
  ],
  "title": "Audience",
  "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
}

Preparation instructions

education.preparation.*.instructions

string · Required when the parent is present

Rich-text instructions stored as Markdown for knowledge, skills, modules, or preparation learners should complete before starting.

Field schema

{
  "title": "Preparation instructions",
  "x-usim": {
    "authoring": {
      "editor": "markdown",
      "links": true
    }
  },
  "type": "string",
  "description": "Rich-text instructions stored as Markdown for knowledge, skills, modules, or preparation learners should complete before starting."
}

Supporting materials

education.preparation.*.assetIds

array · Required when the parent is present

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

Field schema

{
  "minItems": 0,
  "uniqueItems": true,
  "type": "array",
  "items": {
    "minLength": 1,
    "maxLength": 128,
    "pattern": "\\S",
    "title": "Identifier",
    "x-usim": {
      "reference": {
        "collection": "assets",
        "label": "description"
      }
    },
    "type": "string",
    "description": "Identifier of an existing assets entry. Preserve the referenced entry when editing this field."
  },
  "title": "Supporting materials",
  "description": "Entries for Supporting materials. An empty list means no entries have been authored."
}

Identifier

education.preparation.*.assetIds.*

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References assets using description as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "assets",
      "label": "description"
    }
  },
  "type": "string",
  "description": "Identifier of an existing assets entry. Preserve the referenced entry when editing this field."
}

Learning objectives

education.objectives

array · Required when the parent is present

The observable knowledge, skills, or behaviors learners should demonstrate.

  • Maximum entries: 32

Field schema

{
  "title": "Learning objectives",
  "maxItems": 32,
  "x-usim": {
    "authoring": {
      "editor": "objectives",
      "order": 0
    }
  },
  "type": "array",
  "items": {
    "additionalProperties": false,
    "type": "object",
    "required": [
      "id",
      "statement"
    ],
    "properties": {
      "id": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "authoring": {
            "hidden": true
          }
        },
        "type": "string",
        "description": "A stable objective identifier. Preserve it when editing or reordering the objective."
      },
      "statement": {
        "title": "Learning objective",
        "maxLength": 1000,
        "type": "string",
        "description": "An observable learning outcome, using an action verb such as recognize, assess, communicate, or initiate."
      },
      "evidenceActionIds": {
        "minItems": 0,
        "uniqueItems": true,
        "type": "array",
        "items": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "events.actions",
              "label": "label"
            }
          },
          "type": "string",
          "description": "Identifier of an existing events.actions entry. Preserve the referenced entry when editing this field."
        },
        "title": "Evidence actions",
        "description": "Entries for Evidence actions. An empty list means no entries have been authored."
      },
      "acgmeCompetencies": {
        "uniqueItems": true,
        "maxItems": 6,
        "type": "array",
        "items": {
          "anyOf": [
            {
              "const": "PC",
              "type": "string",
              "description": "The required literal value \"PC\"."
            },
            {
              "const": "MK",
              "type": "string",
              "description": "The required literal value \"MK\"."
            },
            {
              "const": "PBLI",
              "type": "string",
              "description": "The required literal value \"PBLI\"."
            },
            {
              "const": "ICS",
              "type": "string",
              "description": "The required literal value \"ICS\"."
            },
            {
              "const": "PROF",
              "type": "string",
              "description": "The required literal value \"PROF\"."
            },
            {
              "const": "SBP",
              "type": "string",
              "description": "The required literal value \"SBP\"."
            }
          ],
          "description": "One of the six ACGME core domain codes: PC, MK, PBLI, ICS, PROF, or SBP. Each code may appear only once per objective."
        },
        "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.",
        "title": "Acgme competencies"
      },
      "domain": {
        "anyOf": [
          {
            "const": "knowledge",
            "type": "string",
            "description": "Optional classification for discovery; it does not select a scoring algorithm."
          },
          {
            "const": "reasoning",
            "type": "string",
            "description": "Optional classification for discovery; it does not select a scoring algorithm."
          },
          {
            "const": "technical-skill",
            "type": "string",
            "description": "Optional classification for discovery; it does not select a scoring algorithm."
          },
          {
            "const": "communication",
            "type": "string",
            "description": "Optional classification for discovery; it does not select a scoring algorithm."
          },
          {
            "const": "teamwork",
            "type": "string",
            "description": "Optional classification for discovery; it does not select a scoring algorithm."
          },
          {
            "const": "professionalism",
            "type": "string",
            "description": "Optional classification for discovery; it does not select a scoring algorithm."
          },
          {
            "const": "systems",
            "type": "string",
            "description": "Optional classification for discovery; it does not select a scoring algorithm."
          }
        ],
        "title": "Domain",
        "description": "Optional classification for discovery; it does not select a scoring algorithm."
      },
      "performance": {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "context",
          "expectedBehavior",
          "successCriteria",
          "scope"
        ],
        "properties": {
          "context": {
            "type": "string",
            "title": "Context",
            "description": "The Context for this entry. Omit optional information that has not been specified."
          },
          "expectedBehavior": {
            "type": "string",
            "title": "Expected behavior",
            "description": "The Expected behavior for this entry. Omit optional information that has not been specified."
          },
          "successCriteria": {
            "type": "string",
            "title": "Success criteria",
            "description": "The Success criteria for this entry. Omit optional information that has not been specified."
          },
          "scope": {
            "anyOf": [
              {
                "const": "individual",
                "type": "string",
                "description": "The required literal value \"individual\"."
              },
              {
                "const": "team",
                "type": "string",
                "description": "The required literal value \"team\"."
              }
            ],
            "title": "Scope",
            "description": "Select one of the declared Scope alternatives; use the fields belonging to that alternative."
          }
        },
        "title": "Performance",
        "description": "Observable behavior, conditions of performance, and acceptable standard. Team evidence cannot be attributed automatically to each individual."
      },
      "curriculumMappings": {
        "type": "array",
        "items": {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "framework",
            "version",
            "code",
            "label"
          ],
          "properties": {
            "framework": {
              "pattern": "^[A-Za-z][A-Za-z0-9+.-]*:",
              "type": "string",
              "title": "Framework",
              "description": "The Framework for this entry. Omit optional information that has not been specified."
            },
            "version": {
              "type": "string",
              "title": "Version",
              "description": "The Version for this entry. Omit optional information that has not been specified."
            },
            "code": {
              "type": "string",
              "title": "Code",
              "description": "The Code for this entry. Omit optional information that has not been specified."
            },
            "label": {
              "type": "string",
              "title": "Label",
              "description": "The Label for this entry. Omit optional information that has not been specified."
            }
          },
          "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."
        },
        "title": "Curriculum mappings",
        "description": "Entries for Curriculum mappings. An empty list means no entries have been authored."
      },
      "learnerBrief": {
        "type": "string",
        "title": "Learner brief",
        "description": "Learner-facing statement of the task or objective. Facilitator success criteria may contain spoilers and are not included implicitly."
      }
    },
    "description": "One observable learning goal, using an action verb such as recognize, assess, communicate, or initiate."
  },
  "description": "The observable knowledge, skills, or behaviors learners should demonstrate."
}

*

education.objectives.*

object · Required when the parent is present

One observable learning goal, using an action verb such as recognize, assess, communicate, or initiate.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "id",
    "statement"
  ],
  "properties": {
    "id": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "authoring": {
          "hidden": true
        }
      },
      "type": "string",
      "description": "A stable objective identifier. Preserve it when editing or reordering the objective."
    },
    "statement": {
      "title": "Learning objective",
      "maxLength": 1000,
      "type": "string",
      "description": "An observable learning outcome, using an action verb such as recognize, assess, communicate, or initiate."
    },
    "evidenceActionIds": {
      "minItems": 0,
      "uniqueItems": true,
      "type": "array",
      "items": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "reference": {
            "collection": "events.actions",
            "label": "label"
          }
        },
        "type": "string",
        "description": "Identifier of an existing events.actions entry. Preserve the referenced entry when editing this field."
      },
      "title": "Evidence actions",
      "description": "Entries for Evidence actions. An empty list means no entries have been authored."
    },
    "acgmeCompetencies": {
      "uniqueItems": true,
      "maxItems": 6,
      "type": "array",
      "items": {
        "anyOf": [
          {
            "const": "PC",
            "type": "string",
            "description": "The required literal value \"PC\"."
          },
          {
            "const": "MK",
            "type": "string",
            "description": "The required literal value \"MK\"."
          },
          {
            "const": "PBLI",
            "type": "string",
            "description": "The required literal value \"PBLI\"."
          },
          {
            "const": "ICS",
            "type": "string",
            "description": "The required literal value \"ICS\"."
          },
          {
            "const": "PROF",
            "type": "string",
            "description": "The required literal value \"PROF\"."
          },
          {
            "const": "SBP",
            "type": "string",
            "description": "The required literal value \"SBP\"."
          }
        ],
        "description": "One of the six ACGME core domain codes: PC, MK, PBLI, ICS, PROF, or SBP. Each code may appear only once per objective."
      },
      "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.",
      "title": "Acgme competencies"
    },
    "domain": {
      "anyOf": [
        {
          "const": "knowledge",
          "type": "string",
          "description": "Optional classification for discovery; it does not select a scoring algorithm."
        },
        {
          "const": "reasoning",
          "type": "string",
          "description": "Optional classification for discovery; it does not select a scoring algorithm."
        },
        {
          "const": "technical-skill",
          "type": "string",
          "description": "Optional classification for discovery; it does not select a scoring algorithm."
        },
        {
          "const": "communication",
          "type": "string",
          "description": "Optional classification for discovery; it does not select a scoring algorithm."
        },
        {
          "const": "teamwork",
          "type": "string",
          "description": "Optional classification for discovery; it does not select a scoring algorithm."
        },
        {
          "const": "professionalism",
          "type": "string",
          "description": "Optional classification for discovery; it does not select a scoring algorithm."
        },
        {
          "const": "systems",
          "type": "string",
          "description": "Optional classification for discovery; it does not select a scoring algorithm."
        }
      ],
      "title": "Domain",
      "description": "Optional classification for discovery; it does not select a scoring algorithm."
    },
    "performance": {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "context",
        "expectedBehavior",
        "successCriteria",
        "scope"
      ],
      "properties": {
        "context": {
          "type": "string",
          "title": "Context",
          "description": "The Context for this entry. Omit optional information that has not been specified."
        },
        "expectedBehavior": {
          "type": "string",
          "title": "Expected behavior",
          "description": "The Expected behavior for this entry. Omit optional information that has not been specified."
        },
        "successCriteria": {
          "type": "string",
          "title": "Success criteria",
          "description": "The Success criteria for this entry. Omit optional information that has not been specified."
        },
        "scope": {
          "anyOf": [
            {
              "const": "individual",
              "type": "string",
              "description": "The required literal value \"individual\"."
            },
            {
              "const": "team",
              "type": "string",
              "description": "The required literal value \"team\"."
            }
          ],
          "title": "Scope",
          "description": "Select one of the declared Scope alternatives; use the fields belonging to that alternative."
        }
      },
      "title": "Performance",
      "description": "Observable behavior, conditions of performance, and acceptable standard. Team evidence cannot be attributed automatically to each individual."
    },
    "curriculumMappings": {
      "type": "array",
      "items": {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "framework",
          "version",
          "code",
          "label"
        ],
        "properties": {
          "framework": {
            "pattern": "^[A-Za-z][A-Za-z0-9+.-]*:",
            "type": "string",
            "title": "Framework",
            "description": "The Framework for this entry. Omit optional information that has not been specified."
          },
          "version": {
            "type": "string",
            "title": "Version",
            "description": "The Version for this entry. Omit optional information that has not been specified."
          },
          "code": {
            "type": "string",
            "title": "Code",
            "description": "The Code for this entry. Omit optional information that has not been specified."
          },
          "label": {
            "type": "string",
            "title": "Label",
            "description": "The Label for this entry. Omit optional information that has not been specified."
          }
        },
        "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."
      },
      "title": "Curriculum mappings",
      "description": "Entries for Curriculum mappings. An empty list means no entries have been authored."
    },
    "learnerBrief": {
      "type": "string",
      "title": "Learner brief",
      "description": "Learner-facing statement of the task or objective. Facilitator success criteria may contain spoilers and are not included implicitly."
    }
  },
  "description": "One observable learning goal, using an action verb such as recognize, assess, communicate, or initiate."
}

Identifier

education.objectives.*.id

string · Required when the parent is present

A stable objective identifier. Preserve it when editing or reordering the objective.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "A stable objective identifier. Preserve it when editing or reordering the objective."
}

Learning objective

education.objectives.*.statement

string · Required when the parent is present

An observable learning outcome, using an action verb such as recognize, assess, communicate, or initiate.

  • Maximum length: 1000 characters

Field schema

{
  "title": "Learning objective",
  "maxLength": 1000,
  "type": "string",
  "description": "An observable learning outcome, using an action verb such as recognize, assess, communicate, or initiate."
}

Evidence actions

education.objectives.*.evidenceActionIds

array · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "minItems": 0,
  "uniqueItems": true,
  "type": "array",
  "items": {
    "minLength": 1,
    "maxLength": 128,
    "pattern": "\\S",
    "title": "Identifier",
    "x-usim": {
      "reference": {
        "collection": "events.actions",
        "label": "label"
      }
    },
    "type": "string",
    "description": "Identifier of an existing events.actions entry. Preserve the referenced entry when editing this field."
  },
  "title": "Evidence actions",
  "description": "Entries for Evidence actions. An empty list means no entries have been authored."
}

Identifier

education.objectives.*.evidenceActionIds.*

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References events.actions using label as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "events.actions",
      "label": "label"
    }
  },
  "type": "string",
  "description": "Identifier of an existing events.actions entry. Preserve the referenced entry when editing this field."
}

Acgme competencies

education.objectives.*.acgmeCompetencies

array · Optional; an omitted value is not a normal, negative, or zero value

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.

  • Maximum entries: 6

Field schema

{
  "uniqueItems": true,
  "maxItems": 6,
  "type": "array",
  "items": {
    "anyOf": [
      {
        "const": "PC",
        "type": "string",
        "description": "The required literal value \"PC\"."
      },
      {
        "const": "MK",
        "type": "string",
        "description": "The required literal value \"MK\"."
      },
      {
        "const": "PBLI",
        "type": "string",
        "description": "The required literal value \"PBLI\"."
      },
      {
        "const": "ICS",
        "type": "string",
        "description": "The required literal value \"ICS\"."
      },
      {
        "const": "PROF",
        "type": "string",
        "description": "The required literal value \"PROF\"."
      },
      {
        "const": "SBP",
        "type": "string",
        "description": "The required literal value \"SBP\"."
      }
    ],
    "description": "One of the six ACGME core domain codes: PC, MK, PBLI, ICS, PROF, or SBP. Each code may appear only once per objective."
  },
  "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.",
  "title": "Acgme competencies"
}

*

education.objectives.*.acgmeCompetencies.*

Value · Required when the parent is present

One of the six ACGME core domain codes: PC, MK, PBLI, ICS, PROF, or SBP. Each code may appear only once per objective.

Allowed values: PC, MK, PBLI, ICS, PROF, SBP

Field schema

{
  "anyOf": [
    {
      "const": "PC",
      "type": "string",
      "description": "The required literal value \"PC\"."
    },
    {
      "const": "MK",
      "type": "string",
      "description": "The required literal value \"MK\"."
    },
    {
      "const": "PBLI",
      "type": "string",
      "description": "The required literal value \"PBLI\"."
    },
    {
      "const": "ICS",
      "type": "string",
      "description": "The required literal value \"ICS\"."
    },
    {
      "const": "PROF",
      "type": "string",
      "description": "The required literal value \"PROF\"."
    },
    {
      "const": "SBP",
      "type": "string",
      "description": "The required literal value \"SBP\"."
    }
  ],
  "description": "One of the six ACGME core domain codes: PC, MK, PBLI, ICS, PROF, or SBP. Each code may appear only once per objective."
}

Domain

education.objectives.*.domain

Value · Optional; an omitted value is not a normal, negative, or zero value

Optional classification for discovery; it does not select a scoring algorithm.

Allowed values: knowledge, reasoning, technical-skill, communication, teamwork, professionalism, systems

Field schema

{
  "anyOf": [
    {
      "const": "knowledge",
      "type": "string",
      "description": "Optional classification for discovery; it does not select a scoring algorithm."
    },
    {
      "const": "reasoning",
      "type": "string",
      "description": "Optional classification for discovery; it does not select a scoring algorithm."
    },
    {
      "const": "technical-skill",
      "type": "string",
      "description": "Optional classification for discovery; it does not select a scoring algorithm."
    },
    {
      "const": "communication",
      "type": "string",
      "description": "Optional classification for discovery; it does not select a scoring algorithm."
    },
    {
      "const": "teamwork",
      "type": "string",
      "description": "Optional classification for discovery; it does not select a scoring algorithm."
    },
    {
      "const": "professionalism",
      "type": "string",
      "description": "Optional classification for discovery; it does not select a scoring algorithm."
    },
    {
      "const": "systems",
      "type": "string",
      "description": "Optional classification for discovery; it does not select a scoring algorithm."
    }
  ],
  "title": "Domain",
  "description": "Optional classification for discovery; it does not select a scoring algorithm."
}

Performance

education.objectives.*.performance

object · Optional; an omitted value is not a normal, negative, or zero value

Observable behavior, conditions of performance, and acceptable standard. Team evidence cannot be attributed automatically to each individual.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "context",
    "expectedBehavior",
    "successCriteria",
    "scope"
  ],
  "properties": {
    "context": {
      "type": "string",
      "title": "Context",
      "description": "The Context for this entry. Omit optional information that has not been specified."
    },
    "expectedBehavior": {
      "type": "string",
      "title": "Expected behavior",
      "description": "The Expected behavior for this entry. Omit optional information that has not been specified."
    },
    "successCriteria": {
      "type": "string",
      "title": "Success criteria",
      "description": "The Success criteria for this entry. Omit optional information that has not been specified."
    },
    "scope": {
      "anyOf": [
        {
          "const": "individual",
          "type": "string",
          "description": "The required literal value \"individual\"."
        },
        {
          "const": "team",
          "type": "string",
          "description": "The required literal value \"team\"."
        }
      ],
      "title": "Scope",
      "description": "Select one of the declared Scope alternatives; use the fields belonging to that alternative."
    }
  },
  "title": "Performance",
  "description": "Observable behavior, conditions of performance, and acceptable standard. Team evidence cannot be attributed automatically to each individual."
}

Context

education.objectives.*.performance.context

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "title": "Context",
  "description": "The Context for this entry. Omit optional information that has not been specified."
}

Expected behavior

education.objectives.*.performance.expectedBehavior

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "title": "Expected behavior",
  "description": "The Expected behavior for this entry. Omit optional information that has not been specified."
}

Success criteria

education.objectives.*.performance.successCriteria

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "title": "Success criteria",
  "description": "The Success criteria for this entry. Omit optional information that has not been specified."
}

Scope

education.objectives.*.performance.scope

Value · Required when the parent is present

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

Allowed values: individual, team

Field schema

{
  "anyOf": [
    {
      "const": "individual",
      "type": "string",
      "description": "The required literal value \"individual\"."
    },
    {
      "const": "team",
      "type": "string",
      "description": "The required literal value \"team\"."
    }
  ],
  "title": "Scope",
  "description": "Select one of the declared Scope alternatives; use the fields belonging to that alternative."
}

Curriculum mappings

education.objectives.*.curriculumMappings

array · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "array",
  "items": {
    "additionalProperties": false,
    "type": "object",
    "required": [
      "framework",
      "version",
      "code",
      "label"
    ],
    "properties": {
      "framework": {
        "pattern": "^[A-Za-z][A-Za-z0-9+.-]*:",
        "type": "string",
        "title": "Framework",
        "description": "The Framework for this entry. Omit optional information that has not been specified."
      },
      "version": {
        "type": "string",
        "title": "Version",
        "description": "The Version for this entry. Omit optional information that has not been specified."
      },
      "code": {
        "type": "string",
        "title": "Code",
        "description": "The Code for this entry. Omit optional information that has not been specified."
      },
      "label": {
        "type": "string",
        "title": "Label",
        "description": "The Label for this entry. Omit optional information that has not been specified."
      }
    },
    "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."
  },
  "title": "Curriculum mappings",
  "description": "Entries for Curriculum mappings. An empty list means no entries have been authored."
}

*

education.objectives.*.curriculumMappings.*

object · Required when the parent is present

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.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "framework",
    "version",
    "code",
    "label"
  ],
  "properties": {
    "framework": {
      "pattern": "^[A-Za-z][A-Za-z0-9+.-]*:",
      "type": "string",
      "title": "Framework",
      "description": "The Framework for this entry. Omit optional information that has not been specified."
    },
    "version": {
      "type": "string",
      "title": "Version",
      "description": "The Version for this entry. Omit optional information that has not been specified."
    },
    "code": {
      "type": "string",
      "title": "Code",
      "description": "The Code for this entry. Omit optional information that has not been specified."
    },
    "label": {
      "type": "string",
      "title": "Label",
      "description": "The Label for this entry. Omit optional information that has not been specified."
    }
  },
  "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."
}

Framework

education.objectives.*.curriculumMappings.*.framework

string · Required when the parent is present

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

  • Pattern: ^[A-Za-z][A-Za-z0-9+.-]*:

Field schema

{
  "pattern": "^[A-Za-z][A-Za-z0-9+.-]*:",
  "type": "string",
  "title": "Framework",
  "description": "The Framework for this entry. Omit optional information that has not been specified."
}

Version

education.objectives.*.curriculumMappings.*.version

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "title": "Version",
  "description": "The Version for this entry. Omit optional information that has not been specified."
}

Code

education.objectives.*.curriculumMappings.*.code

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "title": "Code",
  "description": "The Code for this entry. Omit optional information that has not been specified."
}

Label

education.objectives.*.curriculumMappings.*.label

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "title": "Label",
  "description": "The Label for this entry. Omit optional information that has not been specified."
}

Learner brief

education.objectives.*.learnerBrief

string · Optional; an omitted value is not a normal, negative, or zero value

Learner-facing statement of the task or objective. Facilitator success criteria may contain spoilers and are not included implicitly.

Field schema

{
  "type": "string",
  "title": "Learner brief",
  "description": "Learner-facing statement of the task or objective. Facilitator success criteria may contain spoilers and are not included implicitly."
}

Debrief prompt

education.debriefPrompts

array · Required when the parent is present

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.

Field schema

{
  "title": "Debrief prompt",
  "type": "array",
  "items": {
    "additionalProperties": false,
    "title": "Debrief prompt",
    "type": "object",
    "required": [
      "id",
      "question"
    ],
    "properties": {
      "id": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "authoring": {
            "hidden": true
          }
        },
        "type": "string",
        "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
      },
      "objectiveIds": {
        "minItems": 0,
        "uniqueItems": true,
        "type": "array",
        "items": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "education.objectives",
              "label": "statement"
            }
          },
          "type": "string",
          "description": "Identifier of an existing education.objectives entry. Preserve the referenced entry when editing this field."
        },
        "title": "Learning objectives",
        "description": "Entries for Learning objectives. An empty list means no entries have been authored."
      },
      "question": {
        "title": "Debrief prompt",
        "maxLength": 12000,
        "type": "string",
        "description": "A prompt for facilitated reflection after the scenario. Formatting is stored as Markdown."
      },
      "facilitatorRationale": {
        "type": "string",
        "title": "Facilitator rationale",
        "x-usim": {
          "authoring": {
            "editor": "textarea",
            "span": "full"
          }
        },
        "description": "The Facilitator rationale for this entry. Omit optional information that has not been specified."
      }
    },
    "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."
  },
  "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.",
  "x-usim": {
    "authoring": {
      "order": 1,
      "editor": "debrief"
    }
  }
}

Debrief prompt

education.debriefPrompts.*

object · Required when the parent is present

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.

Field schema

{
  "additionalProperties": false,
  "title": "Debrief prompt",
  "type": "object",
  "required": [
    "id",
    "question"
  ],
  "properties": {
    "id": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "authoring": {
          "hidden": true
        }
      },
      "type": "string",
      "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
    },
    "objectiveIds": {
      "minItems": 0,
      "uniqueItems": true,
      "type": "array",
      "items": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "reference": {
            "collection": "education.objectives",
            "label": "statement"
          }
        },
        "type": "string",
        "description": "Identifier of an existing education.objectives entry. Preserve the referenced entry when editing this field."
      },
      "title": "Learning objectives",
      "description": "Entries for Learning objectives. An empty list means no entries have been authored."
    },
    "question": {
      "title": "Debrief prompt",
      "maxLength": 12000,
      "type": "string",
      "description": "A prompt for facilitated reflection after the scenario. Formatting is stored as Markdown."
    },
    "facilitatorRationale": {
      "type": "string",
      "title": "Facilitator rationale",
      "x-usim": {
        "authoring": {
          "editor": "textarea",
          "span": "full"
        }
      },
      "description": "The Facilitator rationale for this entry. Omit optional information that has not been specified."
    }
  },
  "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."
}

Identifier

education.debriefPrompts.*.id

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
}

Learning objectives

education.debriefPrompts.*.objectiveIds

array · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "minItems": 0,
  "uniqueItems": true,
  "type": "array",
  "items": {
    "minLength": 1,
    "maxLength": 128,
    "pattern": "\\S",
    "title": "Identifier",
    "x-usim": {
      "reference": {
        "collection": "education.objectives",
        "label": "statement"
      }
    },
    "type": "string",
    "description": "Identifier of an existing education.objectives entry. Preserve the referenced entry when editing this field."
  },
  "title": "Learning objectives",
  "description": "Entries for Learning objectives. An empty list means no entries have been authored."
}

Identifier

education.debriefPrompts.*.objectiveIds.*

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References education.objectives using statement as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "education.objectives",
      "label": "statement"
    }
  },
  "type": "string",
  "description": "Identifier of an existing education.objectives entry. Preserve the referenced entry when editing this field."
}

Debrief prompt

education.debriefPrompts.*.question

string · Required when the parent is present

A prompt for facilitated reflection after the scenario. Formatting is stored as Markdown.

  • Maximum length: 12000 characters

Field schema

{
  "title": "Debrief prompt",
  "maxLength": 12000,
  "type": "string",
  "description": "A prompt for facilitated reflection after the scenario. Formatting is stored as Markdown."
}

Facilitator rationale

education.debriefPrompts.*.facilitatorRationale

string · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "string",
  "title": "Facilitator rationale",
  "x-usim": {
    "authoring": {
      "editor": "textarea",
      "span": "full"
    }
  },
  "description": "The Facilitator rationale for this entry. Omit optional information that has not been specified."
}

Assessment

education.assessment

array · Optional; an omitted value is not a normal, negative, or zero value

The authored criteria used to assess learner performance.

  • Maximum entries: 64

Field schema

{
  "title": "Assessment",
  "maxItems": 64,
  "x-usim": {
    "authoring": {
      "editor": "assessment",
      "order": 3
    }
  },
  "type": "array",
  "items": {
    "additionalProperties": false,
    "x-usim": {
      "authoring": {}
    },
    "type": "object",
    "required": [
      "id",
      "label",
      "actionId",
      "points",
      "feedback"
    ],
    "properties": {
      "objectiveId": {
        "title": "Learning objective",
        "maxLength": 128,
        "minLength": 1,
        "pattern": "\\S",
        "x-usim": {
          "reference": {
            "collection": "education.objectives",
            "label": "statement",
            "excludeScheduled": false
          },
          "authoring": {
            "emptyLabel": "No linked objective"
          }
        },
        "type": "string",
        "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."
      },
      "id": {
        "title": "Identifier",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "x-usim": {
          "authoring": {
            "hidden": true
          }
        },
        "type": "string",
        "description": "A stable identifier used to reference this entry. Keep it unchanged when editing the entry's name or content."
      },
      "label": {
        "title": "Skill or objective",
        "maxLength": 1000,
        "x-usim": {
          "authoring": {}
        },
        "type": "string",
        "minLength": 1,
        "pattern": "\\S",
        "description": "Name the observable skill or objective being assessed, such as recognizing deterioration."
      },
      "actionId": {
        "title": "Required action",
        "maxLength": 128,
        "minLength": 1,
        "pattern": "\\S",
        "x-usim": {
          "reference": {
            "collection": "events.actions",
            "label": "label",
            "excludeScheduled": true
          },
          "authoring": {
            "emptyLabel": "Choose an action"
          }
        },
        "type": "string",
        "description": "Select the learner action that earns credit for this criterion. Scheduled transitions cannot earn action credit."
      },
      "objectId": {
        "title": "Equivalent resource",
        "maxLength": 128,
        "minLength": 1,
        "pattern": "\\S",
        "x-usim": {
          "reference": {
            "collection": "resources",
            "label": "name",
            "excludeScheduled": false
          },
          "authoring": {
            "emptyLabel": "No equivalent resource"
          }
        },
        "type": "string",
        "description": "Single equivalent resource. Used when objectIds is omitted; the required action's linked resource is used when both are omitted."
      },
      "objectIds": {
        "title": "Equivalent resources",
        "minItems": 1,
        "maxItems": 1000,
        "uniqueItems": true,
        "type": "array",
        "items": {
          "title": "Equivalent resource",
          "maxLength": 128,
          "minLength": 1,
          "pattern": "\\S",
          "x-usim": {
            "reference": {
              "collection": "resources",
              "label": "name",
              "excludeScheduled": false
            },
            "authoring": {}
          },
          "type": "string",
          "description": "The identifier of a learner-requestable resource accepted as an alternative for this assessment criterion."
        },
        "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."
      },
      "points": {
        "title": "Points",
        "minimum": 1,
        "maximum": 100,
        "x-usim": {
          "authoring": {}
        },
        "type": "number",
        "description": "The weight of this criterion in the total score, from 1 to 100. Credit is awarded once when the criterion is met."
      },
      "withinSeconds": {
        "title": "Deadline · seconds",
        "minimum": 0,
        "maximum": 86400,
        "x-usim": {
          "unit": "s",
          "authoring": {}
        },
        "type": "number",
        "description": "Latest qualifying action time in seconds from the start of the run, inclusive. Omit to assess the action without a deadline."
      },
      "feedback": {
        "title": "Debrief guidance",
        "maxLength": 8000,
        "x-usim": {
          "authoring": {
            "editor": "textarea"
          }
        },
        "type": "string",
        "description": "Explain the expected behavior, why it matters, and what to discuss when the action is completed or missed."
      },
      "learningUrl": {
        "title": "Learning material URL",
        "maxLength": 2000,
        "pattern": "^https://[^\\s]+$",
        "type": "string",
        "description": "An HTTPS link to learning material relevant to this criterion, such as a guideline or teaching resource."
      }
    },
    "description": "One scored criterion linking an observable skill to a recorded action, with points and debrief feedback."
  },
  "description": "The authored criteria used to assess learner performance."
}

*

education.assessment.*

object · Required when the parent is present

One scored criterion linking an observable skill to a recorded action, with points and debrief feedback.

Field schema

{
  "additionalProperties": false,
  "x-usim": {
    "authoring": {}
  },
  "type": "object",
  "required": [
    "id",
    "label",
    "actionId",
    "points",
    "feedback"
  ],
  "properties": {
    "objectiveId": {
      "title": "Learning objective",
      "maxLength": 128,
      "minLength": 1,
      "pattern": "\\S",
      "x-usim": {
        "reference": {
          "collection": "education.objectives",
          "label": "statement",
          "excludeScheduled": false
        },
        "authoring": {
          "emptyLabel": "No linked objective"
        }
      },
      "type": "string",
      "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."
    },
    "id": {
      "title": "Identifier",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "x-usim": {
        "authoring": {
          "hidden": true
        }
      },
      "type": "string",
      "description": "A stable identifier used to reference this entry. Keep it unchanged when editing the entry's name or content."
    },
    "label": {
      "title": "Skill or objective",
      "maxLength": 1000,
      "x-usim": {
        "authoring": {}
      },
      "type": "string",
      "minLength": 1,
      "pattern": "\\S",
      "description": "Name the observable skill or objective being assessed, such as recognizing deterioration."
    },
    "actionId": {
      "title": "Required action",
      "maxLength": 128,
      "minLength": 1,
      "pattern": "\\S",
      "x-usim": {
        "reference": {
          "collection": "events.actions",
          "label": "label",
          "excludeScheduled": true
        },
        "authoring": {
          "emptyLabel": "Choose an action"
        }
      },
      "type": "string",
      "description": "Select the learner action that earns credit for this criterion. Scheduled transitions cannot earn action credit."
    },
    "objectId": {
      "title": "Equivalent resource",
      "maxLength": 128,
      "minLength": 1,
      "pattern": "\\S",
      "x-usim": {
        "reference": {
          "collection": "resources",
          "label": "name",
          "excludeScheduled": false
        },
        "authoring": {
          "emptyLabel": "No equivalent resource"
        }
      },
      "type": "string",
      "description": "Single equivalent resource. Used when objectIds is omitted; the required action's linked resource is used when both are omitted."
    },
    "objectIds": {
      "title": "Equivalent resources",
      "minItems": 1,
      "maxItems": 1000,
      "uniqueItems": true,
      "type": "array",
      "items": {
        "title": "Equivalent resource",
        "maxLength": 128,
        "minLength": 1,
        "pattern": "\\S",
        "x-usim": {
          "reference": {
            "collection": "resources",
            "label": "name",
            "excludeScheduled": false
          },
          "authoring": {}
        },
        "type": "string",
        "description": "The identifier of a learner-requestable resource accepted as an alternative for this assessment criterion."
      },
      "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."
    },
    "points": {
      "title": "Points",
      "minimum": 1,
      "maximum": 100,
      "x-usim": {
        "authoring": {}
      },
      "type": "number",
      "description": "The weight of this criterion in the total score, from 1 to 100. Credit is awarded once when the criterion is met."
    },
    "withinSeconds": {
      "title": "Deadline · seconds",
      "minimum": 0,
      "maximum": 86400,
      "x-usim": {
        "unit": "s",
        "authoring": {}
      },
      "type": "number",
      "description": "Latest qualifying action time in seconds from the start of the run, inclusive. Omit to assess the action without a deadline."
    },
    "feedback": {
      "title": "Debrief guidance",
      "maxLength": 8000,
      "x-usim": {
        "authoring": {
          "editor": "textarea"
        }
      },
      "type": "string",
      "description": "Explain the expected behavior, why it matters, and what to discuss when the action is completed or missed."
    },
    "learningUrl": {
      "title": "Learning material URL",
      "maxLength": 2000,
      "pattern": "^https://[^\\s]+$",
      "type": "string",
      "description": "An HTTPS link to learning material relevant to this criterion, such as a guideline or teaching resource."
    }
  },
  "description": "One scored criterion linking an observable skill to a recorded action, with points and debrief feedback."
}

Learning objective

education.assessment.*.objectiveId

string · Optional; an omitted value is not a normal, negative, or zero value

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.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References education.objectives using statement as the display label.

Field schema

{
  "title": "Learning objective",
  "maxLength": 128,
  "minLength": 1,
  "pattern": "\\S",
  "x-usim": {
    "reference": {
      "collection": "education.objectives",
      "label": "statement",
      "excludeScheduled": false
    },
    "authoring": {
      "emptyLabel": "No linked objective"
    }
  },
  "type": "string",
  "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."
}

Identifier

education.assessment.*.id

string · Required when the parent is present

A stable identifier used to reference this entry. Keep it unchanged when editing the entry's name or content.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "title": "Identifier",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "A stable identifier used to reference this entry. Keep it unchanged when editing the entry's name or content."
}

Skill or objective

education.assessment.*.label

string · Required when the parent is present

Name the observable skill or objective being assessed, such as recognizing deterioration.

  • Minimum length: 1
  • Maximum length: 1000 characters
  • Pattern: \S

Field schema

{
  "title": "Skill or objective",
  "maxLength": 1000,
  "x-usim": {
    "authoring": {}
  },
  "type": "string",
  "minLength": 1,
  "pattern": "\\S",
  "description": "Name the observable skill or objective being assessed, such as recognizing deterioration."
}

Required action

education.assessment.*.actionId

string · Required when the parent is present

Select the learner action that earns credit for this criterion. Scheduled transitions cannot earn action credit.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References events.actions using label as the display label.

Field schema

{
  "title": "Required action",
  "maxLength": 128,
  "minLength": 1,
  "pattern": "\\S",
  "x-usim": {
    "reference": {
      "collection": "events.actions",
      "label": "label",
      "excludeScheduled": true
    },
    "authoring": {
      "emptyLabel": "Choose an action"
    }
  },
  "type": "string",
  "description": "Select the learner action that earns credit for this criterion. Scheduled transitions cannot earn action credit."
}

Equivalent resource

education.assessment.*.objectId

string · Optional; an omitted value is not a normal, negative, or zero value

Single equivalent resource. Used when objectIds is omitted; the required action's linked resource is used when both are omitted.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References resources using name as the display label.

Field schema

{
  "title": "Equivalent resource",
  "maxLength": 128,
  "minLength": 1,
  "pattern": "\\S",
  "x-usim": {
    "reference": {
      "collection": "resources",
      "label": "name",
      "excludeScheduled": false
    },
    "authoring": {
      "emptyLabel": "No equivalent resource"
    }
  },
  "type": "string",
  "description": "Single equivalent resource. Used when objectIds is omitted; the required action's linked resource is used when both are omitted."
}

Equivalent resources

education.assessment.*.objectIds

array · Optional; an omitted value is not a normal, negative, or zero value

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.

  • Maximum entries: 1000

Field schema

{
  "title": "Equivalent resources",
  "minItems": 1,
  "maxItems": 1000,
  "uniqueItems": true,
  "type": "array",
  "items": {
    "title": "Equivalent resource",
    "maxLength": 128,
    "minLength": 1,
    "pattern": "\\S",
    "x-usim": {
      "reference": {
        "collection": "resources",
        "label": "name",
        "excludeScheduled": false
      },
      "authoring": {}
    },
    "type": "string",
    "description": "The identifier of a learner-requestable resource accepted as an alternative for this assessment criterion."
  },
  "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."
}

Equivalent resource

education.assessment.*.objectIds.*

string · Required when the parent is present

The identifier of a learner-requestable resource accepted as an alternative for this assessment criterion.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References resources using name as the display label.

Field schema

{
  "title": "Equivalent resource",
  "maxLength": 128,
  "minLength": 1,
  "pattern": "\\S",
  "x-usim": {
    "reference": {
      "collection": "resources",
      "label": "name",
      "excludeScheduled": false
    },
    "authoring": {}
  },
  "type": "string",
  "description": "The identifier of a learner-requestable resource accepted as an alternative for this assessment criterion."
}

Points

education.assessment.*.points

number · Required when the parent is present

The weight of this criterion in the total score, from 1 to 100. Credit is awarded once when the criterion is met.

  • Minimum: 1
  • Maximum: 100

Field schema

{
  "title": "Points",
  "minimum": 1,
  "maximum": 100,
  "x-usim": {
    "authoring": {}
  },
  "type": "number",
  "description": "The weight of this criterion in the total score, from 1 to 100. Credit is awarded once when the criterion is met."
}

Deadline · seconds

education.assessment.*.withinSeconds

number · Optional; an omitted value is not a normal, negative, or zero value

Latest qualifying action time in seconds from the start of the run, inclusive. Omit to assess the action without a deadline.

  • Minimum: 0
  • Maximum: 86400

Field schema

{
  "title": "Deadline · seconds",
  "minimum": 0,
  "maximum": 86400,
  "x-usim": {
    "unit": "s",
    "authoring": {}
  },
  "type": "number",
  "description": "Latest qualifying action time in seconds from the start of the run, inclusive. Omit to assess the action without a deadline."
}

Debrief guidance

education.assessment.*.feedback

string · Required when the parent is present

Explain the expected behavior, why it matters, and what to discuss when the action is completed or missed.

  • Maximum length: 8000 characters

Field schema

{
  "title": "Debrief guidance",
  "maxLength": 8000,
  "x-usim": {
    "authoring": {
      "editor": "textarea"
    }
  },
  "type": "string",
  "description": "Explain the expected behavior, why it matters, and what to discuss when the action is completed or missed."
}

Learning material URL

education.assessment.*.learningUrl

string · Optional; an omitted value is not a normal, negative, or zero value

An HTTPS link to learning material relevant to this criterion, such as a guideline or teaching resource.

  • Maximum length: 2000 characters
  • Pattern: ^https://[^\s]+$

Field schema

{
  "title": "Learning material URL",
  "maxLength": 2000,
  "pattern": "^https://[^\\s]+$",
  "type": "string",
  "description": "An HTTPS link to learning material relevant to this criterion, such as a guideline or teaching resource."
}

Resources

resources

array · Optional; an omitted value is not a normal, negative, or zero value

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.

  • Maximum entries: 2048

Field schema

{
  "title": "Resources",
  "maxItems": 2048,
  "x-usim": {
    "authoring": {
      "editor": "resources"
    }
  },
  "type": "array",
  "items": {
    "additionalProperties": false,
    "allOf": [
      {
        "if": {
          "properties": {
            "equipment": {}
          },
          "required": [
            "equipment"
          ]
        },
        "then": {
          "properties": {
            "kind": {
              "const": "equipment"
            }
          }
        }
      },
      {
        "if": {
          "properties": {
            "diagnostic": {
              "type": "object",
              "properties": {
                "orthostaticResponse": {}
              },
              "required": [
                "orthostaticResponse"
              ]
            }
          },
          "required": [
            "diagnostic"
          ]
        },
        "then": {
          "properties": {
            "kind": {
              "const": "diagnostic"
            },
            "diagnostic": {
              "type": "object",
              "properties": {
                "category": {
                  "const": "physiologic"
                }
              }
            }
          },
          "required": [
            "diagnostic"
          ],
          "not": {
            "anyOf": [
              {
                "properties": {
                  "effects": {}
                },
                "required": [
                  "effects"
                ]
              },
              {
                "properties": {
                  "effectPercent": {}
                },
                "required": [
                  "effectPercent"
                ]
              },
              {
                "properties": {
                  "medicationResponse": {}
                },
                "required": [
                  "medicationResponse"
                ]
              }
            ]
          }
        }
      },
      {
        "if": {
          "properties": {
            "kind": {
              "const": "diagnostic"
            }
          },
          "required": [
            "kind"
          ]
        },
        "then": {
          "properties": {
            "diagnostic": {}
          },
          "required": [
            "diagnostic"
          ]
        },
        "else": {
          "not": {
            "properties": {
              "diagnostic": {}
            },
            "required": [
              "diagnostic"
            ]
          }
        }
      }
    ],
    "type": "object",
    "required": [
      "id",
      "kind",
      "name"
    ],
    "properties": {
      "id": {
        "title": "Identifier",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "x-usim": {
          "authoring": {
            "hidden": true
          }
        },
        "type": "string",
        "description": "A stable identifier used to reference this entry. Keep it unchanged when editing the entry's name or content."
      },
      "kind": {
        "type": "string",
        "title": "Resource type",
        "enum": [
          "medication",
          "diagnostic",
          "procedure",
          "equipment",
          "consultation",
          "information"
        ],
        "description": "Categorize the resource for selection and display. Choosing a type alone does not define its physiologic effects."
      },
      "name": {
        "title": "Learner title",
        "maxLength": 240,
        "x-usim": {
          "authoring": {}
        },
        "type": "string",
        "description": "The neutral title learners use to identify or request this resource. Include the dose or study details needed to distinguish similar choices."
      },
      "builderTitle": {
        "title": "Builder title",
        "maxLength": 240,
        "x-usim": {
          "authoring": {}
        },
        "type": "string",
        "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."
      },
      "diagnostic": {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "category"
        ],
        "properties": {
          "category": {
            "anyOf": [
              {
                "const": "lab",
                "type": "string",
                "description": "The required literal value \"lab\"."
              },
              {
                "const": "imaging",
                "type": "string",
                "description": "The required literal value \"imaging\"."
              },
              {
                "const": "physiologic",
                "type": "string",
                "description": "The required literal value \"physiologic\"."
              }
            ],
            "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."
          },
          "specimen": {
            "type": "string",
            "description": "The specimen for this entry. Omit optional information that has not been specified."
          },
          "collectionInstructions": {
            "type": "string",
            "description": "The collection instructions for this entry. Omit optional information that has not been specified."
          },
          "resultIds": {
            "minItems": 0,
            "uniqueItems": true,
            "type": "array",
            "items": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "resources.*.results",
                  "label": "id"
                }
              },
              "type": "string",
              "description": "Identifier of an existing resources.*.results entry. Preserve the referenced entry when editing this field."
            },
            "description": "Entries for result ids. An empty list means no entries have been authored."
          },
          "acquisition": {
            "additionalProperties": false,
            "type": "object",
            "properties": {
              "bodyRegion": {
                "type": "string",
                "description": "The body region for this entry. Omit optional information that has not been specified."
              },
              "view": {
                "type": "string",
                "description": "The view for this entry. Omit optional information that has not been specified."
              },
              "technique": {
                "type": "string",
                "description": "The technique for this entry. Omit optional information that has not been specified."
              }
            },
            "description": "Study-specific context independent of report interpretation."
          },
          "orthostaticResponse": {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "systolicDrop",
              "diastolicDrop"
            ],
            "properties": {
              "patientId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "patients",
                    "label": "name"
                  }
                },
                "type": "string",
                "description": "Identifier of an existing patients entry. Preserve the referenced entry when editing this field."
              },
              "systolicVariableId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "patients.*.variables",
                    "label": "id"
                  }
                },
                "type": "string",
                "description": "Identifier of an existing patients.*.variables entry. Preserve the referenced entry when editing this field."
              },
              "diastolicVariableId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "patients.*.variables",
                    "label": "id"
                  }
                },
                "type": "string",
                "description": "Identifier of an existing patients.*.variables entry. Preserve the referenced entry when editing this field."
              },
              "systolicDrop": {
                "minimum": 0,
                "maximum": 100,
                "type": "number",
                "description": "Subtract this many mmHg from the request-time resting systolic BP for the standing result."
              },
              "diastolicDrop": {
                "minimum": 0,
                "maximum": 100,
                "type": "number",
                "description": "Subtract this many mmHg from the request-time resting diastolic BP for the standing result."
              }
            },
            "description": "Report standing BP relative to current resting BP when requested, without changing resting physiology. An authored learner result takes precedence."
          },
          "ecg": {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "leadConfiguration",
              "findingObservationIds",
              "recordingAssetId"
            ],
            "properties": {
              "leadConfiguration": {
                "type": "string",
                "description": "The lead configuration for this entry. Omit optional information that has not been specified."
              },
              "paperSpeedMmPerSecond": {
                "exclusiveMinimum": 0,
                "type": "number",
                "description": "Numeric paper speed mm per second. Do not infer an omitted value."
              },
              "gainMmPerMv": {
                "exclusiveMinimum": 0,
                "type": "number",
                "description": "Numeric gain mm per mv. Do not infer an omitted value."
              },
              "rhythmObservationId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "observations",
                    "label": "code"
                  }
                },
                "type": "string",
                "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
              },
              "findingObservationIds": {
                "minItems": 0,
                "uniqueItems": true,
                "type": "array",
                "items": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "reference": {
                      "collection": "observations",
                      "label": "code"
                    }
                  },
                  "type": "string",
                  "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
                },
                "description": "Entries for finding observation ids. An empty list means no entries have been authored."
              },
              "recordingAssetId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "assets",
                    "label": "description"
                  }
                },
                "type": "string",
                "description": "ECG image, signal, or video manifest entry with an accessible description."
              }
            },
            "description": "Acquisition context plus independent rhythm and morphology findings; all supplied scale numbers must be positive."
          }
        },
        "description": "A named request with explicit result references. Laboratory requests require an authored specimen description."
      },
      "description": {
        "title": "Description shown to the learner",
        "maxLength": 8000,
        "x-usim": {
          "authoring": {
            "editor": "textarea"
          }
        },
        "type": "string",
        "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."
      },
      "equipment": {
        "additionalProperties": false,
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type for this entry. Omit optional information that has not been specified."
          },
          "status": {
            "anyOf": [
              {
                "const": "available",
                "type": "string",
                "description": "The required literal value \"available\"."
              },
              {
                "const": "connected",
                "type": "string",
                "description": "The required literal value \"connected\"."
              },
              {
                "const": "malfunctioning",
                "type": "string",
                "description": "The required literal value \"malfunctioning\"."
              },
              {
                "const": "removed",
                "type": "string",
                "description": "The required literal value \"removed\"."
              }
            ],
            "description": "Select one of the declared status alternatives; use the fields belonging to that alternative."
          },
          "patientId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "patients",
                "label": "name"
              }
            },
            "type": "string",
            "description": "Identifier of an existing patients entry. Preserve the referenced entry when editing this field."
          },
          "site": {
            "type": "string",
            "description": "The site for this entry. Omit optional information that has not been specified."
          },
          "size": {
            "type": "string",
            "description": "The size for this entry. Omit optional information that has not been specified."
          },
          "measurementIds": {
            "minItems": 0,
            "uniqueItems": true,
            "type": "array",
            "items": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "observations",
                  "label": "code"
                }
              },
              "type": "string",
              "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
            },
            "description": "Entries for measurement ids. An empty list means no entries have been authored."
          },
          "placement": {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "confirmation"
            ],
            "properties": {
              "placedAtSeconds": {
                "type": "number",
                "description": "Numeric placed at seconds. Do not infer an omitted value."
              },
              "confirmation": {
                "anyOf": [
                  {
                    "const": "unknown",
                    "type": "string",
                    "description": "The required literal value \"unknown\"."
                  },
                  {
                    "const": "confirmed",
                    "type": "string",
                    "description": "The required literal value \"confirmed\"."
                  },
                  {
                    "const": "incorrect",
                    "type": "string",
                    "description": "The required literal value \"incorrect\"."
                  }
                ],
                "description": "Select one of the declared confirmation alternatives; use the fields belonging to that alternative."
              },
              "note": {
                "type": "string",
                "description": "The note for this entry. Omit optional information that has not been specified."
              }
            },
            "description": "Separate placement time and authored confirmation from mere presence."
          },
          "capabilities": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string",
              "description": "The capabilities for this entry. Omit optional information that has not been specified."
            },
            "description": "Named capabilities referenced by procedure prerequisites or environment requirements."
          },
          "monitorConnection": {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "channel",
              "connected"
            ],
            "properties": {
              "channel": {
                "anyOf": [
                  {
                    "anyOf": [
                      {
                        "const": "ecg",
                        "type": "string",
                        "description": "The required literal value \"ecg\"."
                      },
                      {
                        "const": "bloodPressure",
                        "type": "string",
                        "description": "The required literal value \"bloodPressure\"."
                      },
                      {
                        "const": "spo2",
                        "type": "string",
                        "description": "The required literal value \"spo2\"."
                      },
                      {
                        "const": "respiration",
                        "type": "string",
                        "description": "The required literal value \"respiration\"."
                      },
                      {
                        "const": "temperature",
                        "type": "string",
                        "description": "The required literal value \"temperature\"."
                      },
                      {
                        "const": "capnography",
                        "type": "string",
                        "description": "The required literal value \"capnography\"."
                      },
                      {
                        "const": "arterialPressure",
                        "type": "string",
                        "description": "The required literal value \"arterialPressure\"."
                      }
                    ],
                    "description": "Select one of the declared channel alternatives; use the fields belonging to that alternative."
                  },
                  {
                    "anyOf": [
                      {
                        "const": "all",
                        "type": "string",
                        "description": "The required literal value \"all\"."
                      },
                      {
                        "const": "standard",
                        "type": "string",
                        "description": "The required literal value \"standard\"."
                      }
                    ],
                    "description": "Select one of the declared channel alternatives; use the fields belonging to that alternative."
                  }
                ],
                "description": "The monitor channel controlled by this equipment resource; all controls every channel; standard controls ECG, SpO2, NIBP, temperature, and respiratory rate."
              },
              "connected": {
                "type": "boolean",
                "description": "True connects this channel; false disconnects it."
              }
            },
            "description": "Connect or disconnect an equipment channel when this resource response is released."
          },
          "ventilation": {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "mode",
              "settings",
              "measurementIds",
              "alarms"
            ],
            "properties": {
              "mode": {
                "type": "string",
                "description": "The mode for this entry. Omit optional information that has not been specified."
              },
              "settings": {
                "type": "array",
                "items": {
                  "additionalProperties": false,
                  "type": "object",
                  "required": [
                    "name",
                    "value",
                    "unit"
                  ],
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "The name for this entry. Omit optional information that has not been specified."
                    },
                    "value": {
                      "type": "number",
                      "description": "Numeric value. Do not infer an omitted value."
                    },
                    "unit": {
                      "type": "string",
                      "description": "The unit for this entry. Omit optional information that has not been specified."
                    }
                  },
                  "description": "Structured settings details. Omitted optional values remain unspecified."
                },
                "description": "Entries for settings. An empty list means no entries have been authored."
              },
              "measurementIds": {
                "minItems": 0,
                "uniqueItems": true,
                "type": "array",
                "items": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "reference": {
                      "collection": "observations",
                      "label": "code"
                    }
                  },
                  "type": "string",
                  "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
                },
                "description": "Entries for measurement ids. An empty list means no entries have been authored."
              },
              "alarms": {
                "type": "array",
                "items": {
                  "additionalProperties": false,
                  "type": "object",
                  "required": [
                    "id",
                    "conditionId",
                    "message",
                    "severity"
                  ],
                  "properties": {
                    "id": {
                      "minLength": 1,
                      "maxLength": 128,
                      "pattern": "\\S",
                      "title": "Identifier",
                      "x-usim": {
                        "authoring": {
                          "hidden": true
                        }
                      },
                      "type": "string",
                      "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
                    },
                    "conditionId": {
                      "minLength": 1,
                      "maxLength": 128,
                      "pattern": "\\S",
                      "title": "Identifier",
                      "x-usim": {
                        "reference": {
                          "collection": "events.conditions",
                          "label": "id"
                        }
                      },
                      "type": "string",
                      "description": "Identifier of an existing events.conditions entry. Preserve the referenced entry when editing this field."
                    },
                    "message": {
                      "type": "string",
                      "description": "The message for this entry. Omit optional information that has not been specified."
                    },
                    "severity": {
                      "anyOf": [
                        {
                          "const": "advisory",
                          "type": "string",
                          "description": "The required literal value \"advisory\"."
                        },
                        {
                          "const": "urgent",
                          "type": "string",
                          "description": "The required literal value \"urgent\"."
                        }
                      ],
                      "description": "Select one of the declared severity alternatives; use the fields belonging to that alternative."
                    }
                  },
                  "description": "Authored alarm conditions and visible messages, evaluated from explicit conditions."
                },
                "description": "Entries for alarms. An empty list means no entries have been authored."
              }
            },
            "description": "Setting is { name: string, value: number, unit: string }; settings and observations remain distinct."
          }
        },
        "description": "Covers vascular access, urinary/gastric tubes, invasive monitoring, and other authored devices."
      },
      "source": {
        "title": "Source / attribution",
        "maxLength": 2000,
        "x-usim": {
          "authoring": {}
        },
        "type": "string",
        "description": "Credit the source of the resource content, including a citation or URL when available. Attribution alone does not verify clinical accuracy."
      },
      "response": {
        "additionalProperties": false,
        "title": "Resource response",
        "type": "object",
        "properties": {
          "releaseOnStateId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "When learners receive this result",
            "x-usim": {
              "reference": {
                "collection": "events.states",
                "label": "title"
              }
            },
            "type": "string",
            "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."
          },
          "delaySeconds": {
            "minimum": 0,
            "type": "number",
            "description": "Numeric delay seconds, at least 0. Do not infer an omitted value."
          },
          "effectIds": {
            "type": "array",
            "items": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "events.effects",
                  "label": "id"
                }
              },
              "type": "string",
              "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field."
            },
            "description": "Entries for effect ids. An empty list means no entries have been authored."
          },
          "nextStateId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "events.states",
                "label": "title"
              }
            },
            "type": "string",
            "description": "Identifier of an existing events.states entry. Preserve the referenced entry when editing this field."
          }
        },
        "description": "Structured Resource response details. Omitted optional values remain unspecified."
      },
      "sourceIds": {
        "type": "array",
        "items": {
          "title": "Source",
          "maxLength": 128,
          "minLength": 1,
          "pattern": "\\S",
          "x-usim": {
            "reference": {
              "collection": "metadata.sources",
              "label": "citation",
              "excludeScheduled": false
            },
            "authoring": {}
          },
          "type": "string",
          "description": "Identifier of an existing metadata.sources entry. Preserve the referenced entry when editing this field."
        },
        "description": "Entries for source ids. An empty list means no entries have been authored."
      },
      "medication": {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "ingredient",
          "formulation",
          "allowedRoutes"
        ],
        "properties": {
          "ingredient": {
            "type": "string",
            "description": "The ingredient for this entry. Omit optional information that has not been specified."
          },
          "formulation": {
            "type": "string",
            "description": "The formulation for this entry. Omit optional information that has not been specified."
          },
          "concentration": {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "numerator",
              "denominator"
            ],
            "properties": {
              "numerator": {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "value",
                  "unit"
                ],
                "properties": {
                  "value": {
                    "exclusiveMinimum": 0,
                    "type": "number",
                    "description": "Numeric value. Do not infer an omitted value."
                  },
                  "unit": {
                    "type": "string",
                    "description": "The unit for this entry. Omit optional information that has not been specified."
                  }
                },
                "description": "Structured numerator details. Omitted optional values remain unspecified."
              },
              "denominator": {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "value",
                  "unit"
                ],
                "properties": {
                  "value": {
                    "exclusiveMinimum": 0,
                    "type": "number",
                    "description": "Numeric value. Do not infer an omitted value."
                  },
                  "unit": {
                    "type": "string",
                    "description": "The unit for this entry. Omit optional information that has not been specified."
                  }
                },
                "description": "Structured numerator details. Omitted optional values remain unspecified."
              }
            },
            "description": "Structured concentration details. Omitted optional values remain unspecified."
          },
          "allowedRoutes": {
            "minItems": 1,
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string",
              "description": "The allowed routes for this entry. Omit optional information that has not been specified."
            },
            "description": "Entries for allowed routes. An empty list means no entries have been authored."
          }
        },
        "description": "Reusable product definition. QuantityRatio is numerator Quantity / denominator Quantity; positive denominator is required."
      },
      "consultation": {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "service",
          "actorId",
          "requestedInformation",
          "responseResultIds"
        ],
        "properties": {
          "service": {
            "type": "string",
            "description": "The service for this entry. Omit optional information that has not been specified."
          },
          "actorId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "environment.actors",
                "label": "name"
              }
            },
            "type": "string",
            "description": "Identifier of an existing environment.actors entry. Preserve the referenced entry when editing this field."
          },
          "requestedInformation": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "The requested information for this entry. Omit optional information that has not been specified."
            },
            "description": "Entries for requested information. An empty list means no entries have been authored."
          },
          "responseResultIds": {
            "minItems": 0,
            "uniqueItems": true,
            "type": "array",
            "items": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "resources.*.results",
                  "label": "id"
                }
              },
              "type": "string",
              "description": "Identifier of an existing resources.*.results entry. Preserve the referenced entry when editing this field."
            },
            "description": "Entries for response result ids. An empty list means no entries have been authored."
          }
        },
        "description": "A structured exchange with authored requests and responses rather than a one-line result."
      },
      "procedure": {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "indication",
          "requiredResourceIds",
          "steps",
          "outcomeActionId"
        ],
        "properties": {
          "indication": {
            "type": "string",
            "description": "The indication for this entry. Omit optional information that has not been specified."
          },
          "requiredResourceIds": {
            "minItems": 0,
            "uniqueItems": true,
            "type": "array",
            "items": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "resources",
                  "label": "name"
                }
              },
              "type": "string",
              "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
            },
            "description": "Entries for required resource ids. An empty list means no entries have been authored."
          },
          "steps": {
            "minItems": 1,
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "additionalProperties": false,
                  "type": "object",
                  "required": [
                    "id",
                    "instruction",
                    "evidence",
                    "critical"
                  ],
                  "properties": {
                    "id": {
                      "minLength": 1,
                      "maxLength": 128,
                      "pattern": "\\S",
                      "title": "Identifier",
                      "x-usim": {
                        "authoring": {
                          "hidden": true
                        }
                      },
                      "type": "string",
                      "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
                    },
                    "instruction": {
                      "type": "string",
                      "description": "The instruction for this entry. Omit optional information that has not been specified."
                    },
                    "evidence": {
                      "const": "facilitator",
                      "type": "string",
                      "description": "The required literal value \"facilitator\"."
                    },
                    "critical": {
                      "type": "boolean",
                      "description": "Whether critical applies. Omitted optional values remain unspecified."
                    }
                  },
                  "description": "Ordered observable steps. Action evidence requires actionId; facilitator evidence is recorded during the run."
                },
                {
                  "additionalProperties": false,
                  "type": "object",
                  "required": [
                    "id",
                    "instruction",
                    "evidence",
                    "actionId",
                    "critical"
                  ],
                  "properties": {
                    "id": {
                      "minLength": 1,
                      "maxLength": 128,
                      "pattern": "\\S",
                      "title": "Identifier",
                      "x-usim": {
                        "authoring": {
                          "hidden": true
                        }
                      },
                      "type": "string",
                      "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
                    },
                    "instruction": {
                      "type": "string",
                      "description": "The instruction for this entry. Omit optional information that has not been specified."
                    },
                    "evidence": {
                      "const": "action",
                      "type": "string",
                      "description": "The required literal value \"action\"."
                    },
                    "actionId": {
                      "minLength": 1,
                      "maxLength": 128,
                      "pattern": "\\S",
                      "title": "Identifier",
                      "x-usim": {
                        "reference": {
                          "collection": "events.actions",
                          "label": "label"
                        }
                      },
                      "type": "string",
                      "description": "Identifier of an existing events.actions entry. Preserve the referenced entry when editing this field."
                    },
                    "critical": {
                      "type": "boolean",
                      "description": "Whether critical applies. Omitted optional values remain unspecified."
                    }
                  },
                  "description": "Ordered observable steps. Action evidence requires actionId; facilitator evidence is recorded during the run."
                }
              ],
              "description": "Ordered observable steps. Action evidence requires actionId; facilitator evidence is recorded during the run."
            },
            "description": "Entries for steps. An empty list means no entries have been authored."
          },
          "outcomeActionId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "events.actions",
                "label": "label"
              }
            },
            "type": "string",
            "description": "Identifier of an existing events.actions entry. Preserve the referenced entry when editing this field."
          },
          "complications": {
            "type": "array",
            "items": {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "id",
                "description",
                "conditionId",
                "effectIds"
              ],
              "properties": {
                "id": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "authoring": {
                      "hidden": true
                    }
                  },
                  "type": "string",
                  "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
                },
                "description": {
                  "type": "string",
                  "description": "The description for this entry. Omit optional information that has not been specified."
                },
                "conditionId": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "reference": {
                      "collection": "events.conditions",
                      "label": "id"
                    }
                  },
                  "type": "string",
                  "description": "Identifier of an existing events.conditions entry. Preserve the referenced entry when editing this field."
                },
                "effectIds": {
                  "type": "array",
                  "items": {
                    "minLength": 1,
                    "maxLength": 128,
                    "pattern": "\\S",
                    "title": "Identifier",
                    "x-usim": {
                      "reference": {
                        "collection": "events.effects",
                        "label": "id"
                      }
                    },
                    "type": "string",
                    "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field."
                  },
                  "description": "Entries for effect ids. An empty list means no entries have been authored."
                }
              },
              "description": "Conditional authored consequences evaluated once at procedure completion, in listed order."
            },
            "description": "Entries for complications. An empty list means no entries have been authored."
          }
        },
        "description": "Preparation and performance content with an explicit action deciding the authored result."
      },
      "results": {
        "type": "array",
        "items": {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "id",
            "content",
            "observationIds",
            "assetIds",
            "disclosure"
          ],
          "properties": {
            "id": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "authoring": {
                  "hidden": true
                }
              },
              "type": "string",
              "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
            },
            "content": {
              "type": "string",
              "description": "The content for this entry. Omit optional information that has not been specified."
            },
            "observationIds": {
              "minItems": 0,
              "uniqueItems": true,
              "type": "array",
              "items": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "observations",
                    "label": "code"
                  }
                },
                "type": "string",
                "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
              },
              "description": "Entries for observation ids. An empty list means no entries have been authored."
            },
            "assetIds": {
              "minItems": 0,
              "uniqueItems": true,
              "type": "array",
              "items": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "assets",
                    "label": "description"
                  }
                },
                "type": "string",
                "description": "Identifier of an existing assets entry. Preserve the referenced entry when editing this field."
              },
              "description": "Entries for asset ids. An empty list means no entries have been authored."
            },
            "disclosure": {
              "anyOf": [
                {
                  "additionalProperties": false,
                  "type": "object",
                  "required": [
                    "audience",
                    "mode"
                  ],
                  "properties": {
                    "audience": {
                      "minItems": 1,
                      "uniqueItems": true,
                      "type": "array",
                      "items": {
                        "anyOf": [
                          {
                            "const": "learner",
                            "type": "string",
                            "description": "The required literal value \"learner\"."
                          },
                          {
                            "const": "facilitator",
                            "type": "string",
                            "description": "The required literal value \"facilitator\"."
                          }
                        ],
                        "title": "Audience",
                        "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                      },
                      "title": "Audience",
                      "description": "Authorized output audiences. UI hints do not replace output filtering."
                    },
                    "mode": {
                      "anyOf": [
                        {
                          "const": "initial",
                          "type": "string",
                          "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                        },
                        {
                          "const": "facilitator",
                          "type": "string",
                          "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                        }
                      ],
                      "title": "Mode",
                      "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                    }
                  },
                  "description": "Structured disclosure details. Omitted optional values remain unspecified."
                },
                {
                  "additionalProperties": false,
                  "type": "object",
                  "required": [
                    "audience",
                    "mode",
                    "resourceId"
                  ],
                  "properties": {
                    "audience": {
                      "minItems": 1,
                      "uniqueItems": true,
                      "type": "array",
                      "items": {
                        "anyOf": [
                          {
                            "const": "learner",
                            "type": "string",
                            "description": "The required literal value \"learner\"."
                          },
                          {
                            "const": "facilitator",
                            "type": "string",
                            "description": "The required literal value \"facilitator\"."
                          }
                        ],
                        "title": "Audience",
                        "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                      },
                      "title": "Audience",
                      "description": "Authorized output audiences. UI hints do not replace output filtering."
                    },
                    "mode": {
                      "const": "on-resource-response",
                      "type": "string",
                      "title": "Mode",
                      "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                    },
                    "resourceId": {
                      "minLength": 1,
                      "maxLength": 128,
                      "pattern": "\\S",
                      "title": "Identifier",
                      "x-usim": {
                        "reference": {
                          "collection": "resources",
                          "label": "name"
                        }
                      },
                      "type": "string",
                      "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
                    }
                  },
                  "description": "Structured disclosure details. Omitted optional values remain unspecified."
                },
                {
                  "additionalProperties": false,
                  "type": "object",
                  "required": [
                    "audience",
                    "mode",
                    "actionId"
                  ],
                  "properties": {
                    "audience": {
                      "minItems": 1,
                      "uniqueItems": true,
                      "type": "array",
                      "items": {
                        "anyOf": [
                          {
                            "const": "learner",
                            "type": "string",
                            "description": "The required literal value \"learner\"."
                          },
                          {
                            "const": "facilitator",
                            "type": "string",
                            "description": "The required literal value \"facilitator\"."
                          }
                        ],
                        "title": "Audience",
                        "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                      },
                      "title": "Audience",
                      "description": "Authorized output audiences. UI hints do not replace output filtering."
                    },
                    "mode": {
                      "const": "on-action",
                      "type": "string",
                      "title": "Mode",
                      "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                    },
                    "actionId": {
                      "minLength": 1,
                      "maxLength": 128,
                      "pattern": "\\S",
                      "title": "Identifier",
                      "x-usim": {
                        "reference": {
                          "collection": "events.actions",
                          "label": "label"
                        }
                      },
                      "type": "string",
                      "description": "Successful completion of this action reveals the entry."
                    }
                  },
                  "description": "Structured disclosure details. Omitted optional values remain unspecified."
                },
                {
                  "additionalProperties": false,
                  "type": "object",
                  "required": [
                    "audience",
                    "mode",
                    "conditionId"
                  ],
                  "properties": {
                    "audience": {
                      "minItems": 1,
                      "uniqueItems": true,
                      "type": "array",
                      "items": {
                        "anyOf": [
                          {
                            "const": "learner",
                            "type": "string",
                            "description": "The required literal value \"learner\"."
                          },
                          {
                            "const": "facilitator",
                            "type": "string",
                            "description": "The required literal value \"facilitator\"."
                          }
                        ],
                        "title": "Audience",
                        "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                      },
                      "title": "Audience",
                      "description": "Authorized output audiences. UI hints do not replace output filtering."
                    },
                    "mode": {
                      "const": "on-condition",
                      "type": "string",
                      "title": "Mode",
                      "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                    },
                    "conditionId": {
                      "minLength": 1,
                      "maxLength": 128,
                      "pattern": "\\S",
                      "title": "Identifier",
                      "x-usim": {
                        "reference": {
                          "collection": "events.conditions",
                          "label": "id"
                        }
                      },
                      "type": "string",
                      "description": "Reveal when the condition first becomes true; reject unrelated trigger fields."
                    }
                  },
                  "description": "Structured disclosure details. Omitted optional values remain unspecified."
                }
              ],
              "title": "Disclosure",
              "description": "Select one of the declared Disclosure alternatives; use the fields belonging to that alternative."
            },
            "interpretation": {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "facilitator"
              ],
              "properties": {
                "learner": {
                  "type": "string",
                  "description": "The learner for this entry. Omit optional information that has not been specified."
                },
                "facilitator": {
                  "type": "string",
                  "description": "The facilitator for this entry. Omit optional information that has not been specified."
                }
              },
              "description": "Separate diagnostic or teaching explanation from the raw learner result."
            },
            "panelName": {
              "type": "string",
              "description": "Human-readable panel grouping; does not inject assumed analytes."
            },
            "specimenStatus": {
              "anyOf": [
                {
                  "const": "adequate",
                  "type": "string",
                  "description": "Allows rejected or unavailable specimens to drive a repeat-collection branch."
                },
                {
                  "const": "inadequate",
                  "type": "string",
                  "description": "Allows rejected or unavailable specimens to drive a repeat-collection branch."
                },
                {
                  "const": "not-collected",
                  "type": "string",
                  "description": "Allows rejected or unavailable specimens to drive a repeat-collection branch."
                }
              ],
              "description": "Allows rejected or unavailable specimens to drive a repeat-collection branch."
            }
          },
          "description": "Named result combines authored report text, structured observations, media, and audience rules."
        },
        "description": "Entries for results. An empty list means no entries have been authored."
      }
    },
    "description": "One resource with learner-facing information, release timing, and any authored response or patient changes."
  },
  "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."
}

*

resources.*

object · Required when the parent is present

One resource with learner-facing information, release timing, and any authored response or patient changes.

Field schema

{
  "additionalProperties": false,
  "allOf": [
    {
      "if": {
        "properties": {
          "equipment": {}
        },
        "required": [
          "equipment"
        ]
      },
      "then": {
        "properties": {
          "kind": {
            "const": "equipment"
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "diagnostic": {
            "type": "object",
            "properties": {
              "orthostaticResponse": {}
            },
            "required": [
              "orthostaticResponse"
            ]
          }
        },
        "required": [
          "diagnostic"
        ]
      },
      "then": {
        "properties": {
          "kind": {
            "const": "diagnostic"
          },
          "diagnostic": {
            "type": "object",
            "properties": {
              "category": {
                "const": "physiologic"
              }
            }
          }
        },
        "required": [
          "diagnostic"
        ],
        "not": {
          "anyOf": [
            {
              "properties": {
                "effects": {}
              },
              "required": [
                "effects"
              ]
            },
            {
              "properties": {
                "effectPercent": {}
              },
              "required": [
                "effectPercent"
              ]
            },
            {
              "properties": {
                "medicationResponse": {}
              },
              "required": [
                "medicationResponse"
              ]
            }
          ]
        }
      }
    },
    {
      "if": {
        "properties": {
          "kind": {
            "const": "diagnostic"
          }
        },
        "required": [
          "kind"
        ]
      },
      "then": {
        "properties": {
          "diagnostic": {}
        },
        "required": [
          "diagnostic"
        ]
      },
      "else": {
        "not": {
          "properties": {
            "diagnostic": {}
          },
          "required": [
            "diagnostic"
          ]
        }
      }
    }
  ],
  "type": "object",
  "required": [
    "id",
    "kind",
    "name"
  ],
  "properties": {
    "id": {
      "title": "Identifier",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "x-usim": {
        "authoring": {
          "hidden": true
        }
      },
      "type": "string",
      "description": "A stable identifier used to reference this entry. Keep it unchanged when editing the entry's name or content."
    },
    "kind": {
      "type": "string",
      "title": "Resource type",
      "enum": [
        "medication",
        "diagnostic",
        "procedure",
        "equipment",
        "consultation",
        "information"
      ],
      "description": "Categorize the resource for selection and display. Choosing a type alone does not define its physiologic effects."
    },
    "name": {
      "title": "Learner title",
      "maxLength": 240,
      "x-usim": {
        "authoring": {}
      },
      "type": "string",
      "description": "The neutral title learners use to identify or request this resource. Include the dose or study details needed to distinguish similar choices."
    },
    "builderTitle": {
      "title": "Builder title",
      "maxLength": 240,
      "x-usim": {
        "authoring": {}
      },
      "type": "string",
      "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."
    },
    "diagnostic": {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "category"
      ],
      "properties": {
        "category": {
          "anyOf": [
            {
              "const": "lab",
              "type": "string",
              "description": "The required literal value \"lab\"."
            },
            {
              "const": "imaging",
              "type": "string",
              "description": "The required literal value \"imaging\"."
            },
            {
              "const": "physiologic",
              "type": "string",
              "description": "The required literal value \"physiologic\"."
            }
          ],
          "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."
        },
        "specimen": {
          "type": "string",
          "description": "The specimen for this entry. Omit optional information that has not been specified."
        },
        "collectionInstructions": {
          "type": "string",
          "description": "The collection instructions for this entry. Omit optional information that has not been specified."
        },
        "resultIds": {
          "minItems": 0,
          "uniqueItems": true,
          "type": "array",
          "items": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "resources.*.results",
                "label": "id"
              }
            },
            "type": "string",
            "description": "Identifier of an existing resources.*.results entry. Preserve the referenced entry when editing this field."
          },
          "description": "Entries for result ids. An empty list means no entries have been authored."
        },
        "acquisition": {
          "additionalProperties": false,
          "type": "object",
          "properties": {
            "bodyRegion": {
              "type": "string",
              "description": "The body region for this entry. Omit optional information that has not been specified."
            },
            "view": {
              "type": "string",
              "description": "The view for this entry. Omit optional information that has not been specified."
            },
            "technique": {
              "type": "string",
              "description": "The technique for this entry. Omit optional information that has not been specified."
            }
          },
          "description": "Study-specific context independent of report interpretation."
        },
        "orthostaticResponse": {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "systolicDrop",
            "diastolicDrop"
          ],
          "properties": {
            "patientId": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "patients",
                  "label": "name"
                }
              },
              "type": "string",
              "description": "Identifier of an existing patients entry. Preserve the referenced entry when editing this field."
            },
            "systolicVariableId": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "patients.*.variables",
                  "label": "id"
                }
              },
              "type": "string",
              "description": "Identifier of an existing patients.*.variables entry. Preserve the referenced entry when editing this field."
            },
            "diastolicVariableId": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "patients.*.variables",
                  "label": "id"
                }
              },
              "type": "string",
              "description": "Identifier of an existing patients.*.variables entry. Preserve the referenced entry when editing this field."
            },
            "systolicDrop": {
              "minimum": 0,
              "maximum": 100,
              "type": "number",
              "description": "Subtract this many mmHg from the request-time resting systolic BP for the standing result."
            },
            "diastolicDrop": {
              "minimum": 0,
              "maximum": 100,
              "type": "number",
              "description": "Subtract this many mmHg from the request-time resting diastolic BP for the standing result."
            }
          },
          "description": "Report standing BP relative to current resting BP when requested, without changing resting physiology. An authored learner result takes precedence."
        },
        "ecg": {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "leadConfiguration",
            "findingObservationIds",
            "recordingAssetId"
          ],
          "properties": {
            "leadConfiguration": {
              "type": "string",
              "description": "The lead configuration for this entry. Omit optional information that has not been specified."
            },
            "paperSpeedMmPerSecond": {
              "exclusiveMinimum": 0,
              "type": "number",
              "description": "Numeric paper speed mm per second. Do not infer an omitted value."
            },
            "gainMmPerMv": {
              "exclusiveMinimum": 0,
              "type": "number",
              "description": "Numeric gain mm per mv. Do not infer an omitted value."
            },
            "rhythmObservationId": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "observations",
                  "label": "code"
                }
              },
              "type": "string",
              "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
            },
            "findingObservationIds": {
              "minItems": 0,
              "uniqueItems": true,
              "type": "array",
              "items": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "observations",
                    "label": "code"
                  }
                },
                "type": "string",
                "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
              },
              "description": "Entries for finding observation ids. An empty list means no entries have been authored."
            },
            "recordingAssetId": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "assets",
                  "label": "description"
                }
              },
              "type": "string",
              "description": "ECG image, signal, or video manifest entry with an accessible description."
            }
          },
          "description": "Acquisition context plus independent rhythm and morphology findings; all supplied scale numbers must be positive."
        }
      },
      "description": "A named request with explicit result references. Laboratory requests require an authored specimen description."
    },
    "description": {
      "title": "Description shown to the learner",
      "maxLength": 8000,
      "x-usim": {
        "authoring": {
          "editor": "textarea"
        }
      },
      "type": "string",
      "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."
    },
    "equipment": {
      "additionalProperties": false,
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "The type for this entry. Omit optional information that has not been specified."
        },
        "status": {
          "anyOf": [
            {
              "const": "available",
              "type": "string",
              "description": "The required literal value \"available\"."
            },
            {
              "const": "connected",
              "type": "string",
              "description": "The required literal value \"connected\"."
            },
            {
              "const": "malfunctioning",
              "type": "string",
              "description": "The required literal value \"malfunctioning\"."
            },
            {
              "const": "removed",
              "type": "string",
              "description": "The required literal value \"removed\"."
            }
          ],
          "description": "Select one of the declared status alternatives; use the fields belonging to that alternative."
        },
        "patientId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "patients",
              "label": "name"
            }
          },
          "type": "string",
          "description": "Identifier of an existing patients entry. Preserve the referenced entry when editing this field."
        },
        "site": {
          "type": "string",
          "description": "The site for this entry. Omit optional information that has not been specified."
        },
        "size": {
          "type": "string",
          "description": "The size for this entry. Omit optional information that has not been specified."
        },
        "measurementIds": {
          "minItems": 0,
          "uniqueItems": true,
          "type": "array",
          "items": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "observations",
                "label": "code"
              }
            },
            "type": "string",
            "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
          },
          "description": "Entries for measurement ids. An empty list means no entries have been authored."
        },
        "placement": {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "confirmation"
          ],
          "properties": {
            "placedAtSeconds": {
              "type": "number",
              "description": "Numeric placed at seconds. Do not infer an omitted value."
            },
            "confirmation": {
              "anyOf": [
                {
                  "const": "unknown",
                  "type": "string",
                  "description": "The required literal value \"unknown\"."
                },
                {
                  "const": "confirmed",
                  "type": "string",
                  "description": "The required literal value \"confirmed\"."
                },
                {
                  "const": "incorrect",
                  "type": "string",
                  "description": "The required literal value \"incorrect\"."
                }
              ],
              "description": "Select one of the declared confirmation alternatives; use the fields belonging to that alternative."
            },
            "note": {
              "type": "string",
              "description": "The note for this entry. Omit optional information that has not been specified."
            }
          },
          "description": "Separate placement time and authored confirmation from mere presence."
        },
        "capabilities": {
          "uniqueItems": true,
          "type": "array",
          "items": {
            "type": "string",
            "description": "The capabilities for this entry. Omit optional information that has not been specified."
          },
          "description": "Named capabilities referenced by procedure prerequisites or environment requirements."
        },
        "monitorConnection": {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "channel",
            "connected"
          ],
          "properties": {
            "channel": {
              "anyOf": [
                {
                  "anyOf": [
                    {
                      "const": "ecg",
                      "type": "string",
                      "description": "The required literal value \"ecg\"."
                    },
                    {
                      "const": "bloodPressure",
                      "type": "string",
                      "description": "The required literal value \"bloodPressure\"."
                    },
                    {
                      "const": "spo2",
                      "type": "string",
                      "description": "The required literal value \"spo2\"."
                    },
                    {
                      "const": "respiration",
                      "type": "string",
                      "description": "The required literal value \"respiration\"."
                    },
                    {
                      "const": "temperature",
                      "type": "string",
                      "description": "The required literal value \"temperature\"."
                    },
                    {
                      "const": "capnography",
                      "type": "string",
                      "description": "The required literal value \"capnography\"."
                    },
                    {
                      "const": "arterialPressure",
                      "type": "string",
                      "description": "The required literal value \"arterialPressure\"."
                    }
                  ],
                  "description": "Select one of the declared channel alternatives; use the fields belonging to that alternative."
                },
                {
                  "anyOf": [
                    {
                      "const": "all",
                      "type": "string",
                      "description": "The required literal value \"all\"."
                    },
                    {
                      "const": "standard",
                      "type": "string",
                      "description": "The required literal value \"standard\"."
                    }
                  ],
                  "description": "Select one of the declared channel alternatives; use the fields belonging to that alternative."
                }
              ],
              "description": "The monitor channel controlled by this equipment resource; all controls every channel; standard controls ECG, SpO2, NIBP, temperature, and respiratory rate."
            },
            "connected": {
              "type": "boolean",
              "description": "True connects this channel; false disconnects it."
            }
          },
          "description": "Connect or disconnect an equipment channel when this resource response is released."
        },
        "ventilation": {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "mode",
            "settings",
            "measurementIds",
            "alarms"
          ],
          "properties": {
            "mode": {
              "type": "string",
              "description": "The mode for this entry. Omit optional information that has not been specified."
            },
            "settings": {
              "type": "array",
              "items": {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "name",
                  "value",
                  "unit"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "The name for this entry. Omit optional information that has not been specified."
                  },
                  "value": {
                    "type": "number",
                    "description": "Numeric value. Do not infer an omitted value."
                  },
                  "unit": {
                    "type": "string",
                    "description": "The unit for this entry. Omit optional information that has not been specified."
                  }
                },
                "description": "Structured settings details. Omitted optional values remain unspecified."
              },
              "description": "Entries for settings. An empty list means no entries have been authored."
            },
            "measurementIds": {
              "minItems": 0,
              "uniqueItems": true,
              "type": "array",
              "items": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "observations",
                    "label": "code"
                  }
                },
                "type": "string",
                "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
              },
              "description": "Entries for measurement ids. An empty list means no entries have been authored."
            },
            "alarms": {
              "type": "array",
              "items": {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "id",
                  "conditionId",
                  "message",
                  "severity"
                ],
                "properties": {
                  "id": {
                    "minLength": 1,
                    "maxLength": 128,
                    "pattern": "\\S",
                    "title": "Identifier",
                    "x-usim": {
                      "authoring": {
                        "hidden": true
                      }
                    },
                    "type": "string",
                    "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
                  },
                  "conditionId": {
                    "minLength": 1,
                    "maxLength": 128,
                    "pattern": "\\S",
                    "title": "Identifier",
                    "x-usim": {
                      "reference": {
                        "collection": "events.conditions",
                        "label": "id"
                      }
                    },
                    "type": "string",
                    "description": "Identifier of an existing events.conditions entry. Preserve the referenced entry when editing this field."
                  },
                  "message": {
                    "type": "string",
                    "description": "The message for this entry. Omit optional information that has not been specified."
                  },
                  "severity": {
                    "anyOf": [
                      {
                        "const": "advisory",
                        "type": "string",
                        "description": "The required literal value \"advisory\"."
                      },
                      {
                        "const": "urgent",
                        "type": "string",
                        "description": "The required literal value \"urgent\"."
                      }
                    ],
                    "description": "Select one of the declared severity alternatives; use the fields belonging to that alternative."
                  }
                },
                "description": "Authored alarm conditions and visible messages, evaluated from explicit conditions."
              },
              "description": "Entries for alarms. An empty list means no entries have been authored."
            }
          },
          "description": "Setting is { name: string, value: number, unit: string }; settings and observations remain distinct."
        }
      },
      "description": "Covers vascular access, urinary/gastric tubes, invasive monitoring, and other authored devices."
    },
    "source": {
      "title": "Source / attribution",
      "maxLength": 2000,
      "x-usim": {
        "authoring": {}
      },
      "type": "string",
      "description": "Credit the source of the resource content, including a citation or URL when available. Attribution alone does not verify clinical accuracy."
    },
    "response": {
      "additionalProperties": false,
      "title": "Resource response",
      "type": "object",
      "properties": {
        "releaseOnStateId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "When learners receive this result",
          "x-usim": {
            "reference": {
              "collection": "events.states",
              "label": "title"
            }
          },
          "type": "string",
          "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."
        },
        "delaySeconds": {
          "minimum": 0,
          "type": "number",
          "description": "Numeric delay seconds, at least 0. Do not infer an omitted value."
        },
        "effectIds": {
          "type": "array",
          "items": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "events.effects",
                "label": "id"
              }
            },
            "type": "string",
            "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field."
          },
          "description": "Entries for effect ids. An empty list means no entries have been authored."
        },
        "nextStateId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "events.states",
              "label": "title"
            }
          },
          "type": "string",
          "description": "Identifier of an existing events.states entry. Preserve the referenced entry when editing this field."
        }
      },
      "description": "Structured Resource response details. Omitted optional values remain unspecified."
    },
    "sourceIds": {
      "type": "array",
      "items": {
        "title": "Source",
        "maxLength": 128,
        "minLength": 1,
        "pattern": "\\S",
        "x-usim": {
          "reference": {
            "collection": "metadata.sources",
            "label": "citation",
            "excludeScheduled": false
          },
          "authoring": {}
        },
        "type": "string",
        "description": "Identifier of an existing metadata.sources entry. Preserve the referenced entry when editing this field."
      },
      "description": "Entries for source ids. An empty list means no entries have been authored."
    },
    "medication": {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "ingredient",
        "formulation",
        "allowedRoutes"
      ],
      "properties": {
        "ingredient": {
          "type": "string",
          "description": "The ingredient for this entry. Omit optional information that has not been specified."
        },
        "formulation": {
          "type": "string",
          "description": "The formulation for this entry. Omit optional information that has not been specified."
        },
        "concentration": {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "numerator",
            "denominator"
          ],
          "properties": {
            "numerator": {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "value",
                "unit"
              ],
              "properties": {
                "value": {
                  "exclusiveMinimum": 0,
                  "type": "number",
                  "description": "Numeric value. Do not infer an omitted value."
                },
                "unit": {
                  "type": "string",
                  "description": "The unit for this entry. Omit optional information that has not been specified."
                }
              },
              "description": "Structured numerator details. Omitted optional values remain unspecified."
            },
            "denominator": {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "value",
                "unit"
              ],
              "properties": {
                "value": {
                  "exclusiveMinimum": 0,
                  "type": "number",
                  "description": "Numeric value. Do not infer an omitted value."
                },
                "unit": {
                  "type": "string",
                  "description": "The unit for this entry. Omit optional information that has not been specified."
                }
              },
              "description": "Structured numerator details. Omitted optional values remain unspecified."
            }
          },
          "description": "Structured concentration details. Omitted optional values remain unspecified."
        },
        "allowedRoutes": {
          "minItems": 1,
          "uniqueItems": true,
          "type": "array",
          "items": {
            "type": "string",
            "description": "The allowed routes for this entry. Omit optional information that has not been specified."
          },
          "description": "Entries for allowed routes. An empty list means no entries have been authored."
        }
      },
      "description": "Reusable product definition. QuantityRatio is numerator Quantity / denominator Quantity; positive denominator is required."
    },
    "consultation": {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "service",
        "actorId",
        "requestedInformation",
        "responseResultIds"
      ],
      "properties": {
        "service": {
          "type": "string",
          "description": "The service for this entry. Omit optional information that has not been specified."
        },
        "actorId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "environment.actors",
              "label": "name"
            }
          },
          "type": "string",
          "description": "Identifier of an existing environment.actors entry. Preserve the referenced entry when editing this field."
        },
        "requestedInformation": {
          "type": "array",
          "items": {
            "type": "string",
            "description": "The requested information for this entry. Omit optional information that has not been specified."
          },
          "description": "Entries for requested information. An empty list means no entries have been authored."
        },
        "responseResultIds": {
          "minItems": 0,
          "uniqueItems": true,
          "type": "array",
          "items": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "resources.*.results",
                "label": "id"
              }
            },
            "type": "string",
            "description": "Identifier of an existing resources.*.results entry. Preserve the referenced entry when editing this field."
          },
          "description": "Entries for response result ids. An empty list means no entries have been authored."
        }
      },
      "description": "A structured exchange with authored requests and responses rather than a one-line result."
    },
    "procedure": {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "indication",
        "requiredResourceIds",
        "steps",
        "outcomeActionId"
      ],
      "properties": {
        "indication": {
          "type": "string",
          "description": "The indication for this entry. Omit optional information that has not been specified."
        },
        "requiredResourceIds": {
          "minItems": 0,
          "uniqueItems": true,
          "type": "array",
          "items": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "resources",
                "label": "name"
              }
            },
            "type": "string",
            "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
          },
          "description": "Entries for required resource ids. An empty list means no entries have been authored."
        },
        "steps": {
          "minItems": 1,
          "type": "array",
          "items": {
            "anyOf": [
              {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "id",
                  "instruction",
                  "evidence",
                  "critical"
                ],
                "properties": {
                  "id": {
                    "minLength": 1,
                    "maxLength": 128,
                    "pattern": "\\S",
                    "title": "Identifier",
                    "x-usim": {
                      "authoring": {
                        "hidden": true
                      }
                    },
                    "type": "string",
                    "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
                  },
                  "instruction": {
                    "type": "string",
                    "description": "The instruction for this entry. Omit optional information that has not been specified."
                  },
                  "evidence": {
                    "const": "facilitator",
                    "type": "string",
                    "description": "The required literal value \"facilitator\"."
                  },
                  "critical": {
                    "type": "boolean",
                    "description": "Whether critical applies. Omitted optional values remain unspecified."
                  }
                },
                "description": "Ordered observable steps. Action evidence requires actionId; facilitator evidence is recorded during the run."
              },
              {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "id",
                  "instruction",
                  "evidence",
                  "actionId",
                  "critical"
                ],
                "properties": {
                  "id": {
                    "minLength": 1,
                    "maxLength": 128,
                    "pattern": "\\S",
                    "title": "Identifier",
                    "x-usim": {
                      "authoring": {
                        "hidden": true
                      }
                    },
                    "type": "string",
                    "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
                  },
                  "instruction": {
                    "type": "string",
                    "description": "The instruction for this entry. Omit optional information that has not been specified."
                  },
                  "evidence": {
                    "const": "action",
                    "type": "string",
                    "description": "The required literal value \"action\"."
                  },
                  "actionId": {
                    "minLength": 1,
                    "maxLength": 128,
                    "pattern": "\\S",
                    "title": "Identifier",
                    "x-usim": {
                      "reference": {
                        "collection": "events.actions",
                        "label": "label"
                      }
                    },
                    "type": "string",
                    "description": "Identifier of an existing events.actions entry. Preserve the referenced entry when editing this field."
                  },
                  "critical": {
                    "type": "boolean",
                    "description": "Whether critical applies. Omitted optional values remain unspecified."
                  }
                },
                "description": "Ordered observable steps. Action evidence requires actionId; facilitator evidence is recorded during the run."
              }
            ],
            "description": "Ordered observable steps. Action evidence requires actionId; facilitator evidence is recorded during the run."
          },
          "description": "Entries for steps. An empty list means no entries have been authored."
        },
        "outcomeActionId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "events.actions",
              "label": "label"
            }
          },
          "type": "string",
          "description": "Identifier of an existing events.actions entry. Preserve the referenced entry when editing this field."
        },
        "complications": {
          "type": "array",
          "items": {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "id",
              "description",
              "conditionId",
              "effectIds"
            ],
            "properties": {
              "id": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "authoring": {
                    "hidden": true
                  }
                },
                "type": "string",
                "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
              },
              "description": {
                "type": "string",
                "description": "The description for this entry. Omit optional information that has not been specified."
              },
              "conditionId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "events.conditions",
                    "label": "id"
                  }
                },
                "type": "string",
                "description": "Identifier of an existing events.conditions entry. Preserve the referenced entry when editing this field."
              },
              "effectIds": {
                "type": "array",
                "items": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "reference": {
                      "collection": "events.effects",
                      "label": "id"
                    }
                  },
                  "type": "string",
                  "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field."
                },
                "description": "Entries for effect ids. An empty list means no entries have been authored."
              }
            },
            "description": "Conditional authored consequences evaluated once at procedure completion, in listed order."
          },
          "description": "Entries for complications. An empty list means no entries have been authored."
        }
      },
      "description": "Preparation and performance content with an explicit action deciding the authored result."
    },
    "results": {
      "type": "array",
      "items": {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "content",
          "observationIds",
          "assetIds",
          "disclosure"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
          },
          "content": {
            "type": "string",
            "description": "The content for this entry. Omit optional information that has not been specified."
          },
          "observationIds": {
            "minItems": 0,
            "uniqueItems": true,
            "type": "array",
            "items": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "observations",
                  "label": "code"
                }
              },
              "type": "string",
              "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
            },
            "description": "Entries for observation ids. An empty list means no entries have been authored."
          },
          "assetIds": {
            "minItems": 0,
            "uniqueItems": true,
            "type": "array",
            "items": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "assets",
                  "label": "description"
                }
              },
              "type": "string",
              "description": "Identifier of an existing assets entry. Preserve the referenced entry when editing this field."
            },
            "description": "Entries for asset ids. An empty list means no entries have been authored."
          },
          "disclosure": {
            "anyOf": [
              {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "audience",
                  "mode"
                ],
                "properties": {
                  "audience": {
                    "minItems": 1,
                    "uniqueItems": true,
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "const": "learner",
                          "type": "string",
                          "description": "The required literal value \"learner\"."
                        },
                        {
                          "const": "facilitator",
                          "type": "string",
                          "description": "The required literal value \"facilitator\"."
                        }
                      ],
                      "title": "Audience",
                      "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                    },
                    "title": "Audience",
                    "description": "Authorized output audiences. UI hints do not replace output filtering."
                  },
                  "mode": {
                    "anyOf": [
                      {
                        "const": "initial",
                        "type": "string",
                        "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                      },
                      {
                        "const": "facilitator",
                        "type": "string",
                        "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                      }
                    ],
                    "title": "Mode",
                    "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                  }
                },
                "description": "Structured disclosure details. Omitted optional values remain unspecified."
              },
              {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "audience",
                  "mode",
                  "resourceId"
                ],
                "properties": {
                  "audience": {
                    "minItems": 1,
                    "uniqueItems": true,
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "const": "learner",
                          "type": "string",
                          "description": "The required literal value \"learner\"."
                        },
                        {
                          "const": "facilitator",
                          "type": "string",
                          "description": "The required literal value \"facilitator\"."
                        }
                      ],
                      "title": "Audience",
                      "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                    },
                    "title": "Audience",
                    "description": "Authorized output audiences. UI hints do not replace output filtering."
                  },
                  "mode": {
                    "const": "on-resource-response",
                    "type": "string",
                    "title": "Mode",
                    "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                  },
                  "resourceId": {
                    "minLength": 1,
                    "maxLength": 128,
                    "pattern": "\\S",
                    "title": "Identifier",
                    "x-usim": {
                      "reference": {
                        "collection": "resources",
                        "label": "name"
                      }
                    },
                    "type": "string",
                    "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
                  }
                },
                "description": "Structured disclosure details. Omitted optional values remain unspecified."
              },
              {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "audience",
                  "mode",
                  "actionId"
                ],
                "properties": {
                  "audience": {
                    "minItems": 1,
                    "uniqueItems": true,
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "const": "learner",
                          "type": "string",
                          "description": "The required literal value \"learner\"."
                        },
                        {
                          "const": "facilitator",
                          "type": "string",
                          "description": "The required literal value \"facilitator\"."
                        }
                      ],
                      "title": "Audience",
                      "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                    },
                    "title": "Audience",
                    "description": "Authorized output audiences. UI hints do not replace output filtering."
                  },
                  "mode": {
                    "const": "on-action",
                    "type": "string",
                    "title": "Mode",
                    "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                  },
                  "actionId": {
                    "minLength": 1,
                    "maxLength": 128,
                    "pattern": "\\S",
                    "title": "Identifier",
                    "x-usim": {
                      "reference": {
                        "collection": "events.actions",
                        "label": "label"
                      }
                    },
                    "type": "string",
                    "description": "Successful completion of this action reveals the entry."
                  }
                },
                "description": "Structured disclosure details. Omitted optional values remain unspecified."
              },
              {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "audience",
                  "mode",
                  "conditionId"
                ],
                "properties": {
                  "audience": {
                    "minItems": 1,
                    "uniqueItems": true,
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "const": "learner",
                          "type": "string",
                          "description": "The required literal value \"learner\"."
                        },
                        {
                          "const": "facilitator",
                          "type": "string",
                          "description": "The required literal value \"facilitator\"."
                        }
                      ],
                      "title": "Audience",
                      "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                    },
                    "title": "Audience",
                    "description": "Authorized output audiences. UI hints do not replace output filtering."
                  },
                  "mode": {
                    "const": "on-condition",
                    "type": "string",
                    "title": "Mode",
                    "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                  },
                  "conditionId": {
                    "minLength": 1,
                    "maxLength": 128,
                    "pattern": "\\S",
                    "title": "Identifier",
                    "x-usim": {
                      "reference": {
                        "collection": "events.conditions",
                        "label": "id"
                      }
                    },
                    "type": "string",
                    "description": "Reveal when the condition first becomes true; reject unrelated trigger fields."
                  }
                },
                "description": "Structured disclosure details. Omitted optional values remain unspecified."
              }
            ],
            "title": "Disclosure",
            "description": "Select one of the declared Disclosure alternatives; use the fields belonging to that alternative."
          },
          "interpretation": {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "facilitator"
            ],
            "properties": {
              "learner": {
                "type": "string",
                "description": "The learner for this entry. Omit optional information that has not been specified."
              },
              "facilitator": {
                "type": "string",
                "description": "The facilitator for this entry. Omit optional information that has not been specified."
              }
            },
            "description": "Separate diagnostic or teaching explanation from the raw learner result."
          },
          "panelName": {
            "type": "string",
            "description": "Human-readable panel grouping; does not inject assumed analytes."
          },
          "specimenStatus": {
            "anyOf": [
              {
                "const": "adequate",
                "type": "string",
                "description": "Allows rejected or unavailable specimens to drive a repeat-collection branch."
              },
              {
                "const": "inadequate",
                "type": "string",
                "description": "Allows rejected or unavailable specimens to drive a repeat-collection branch."
              },
              {
                "const": "not-collected",
                "type": "string",
                "description": "Allows rejected or unavailable specimens to drive a repeat-collection branch."
              }
            ],
            "description": "Allows rejected or unavailable specimens to drive a repeat-collection branch."
          }
        },
        "description": "Named result combines authored report text, structured observations, media, and audience rules."
      },
      "description": "Entries for results. An empty list means no entries have been authored."
    }
  },
  "description": "One resource with learner-facing information, release timing, and any authored response or patient changes."
}

Identifier

resources.*.id

string · Required when the parent is present

A stable identifier used to reference this entry. Keep it unchanged when editing the entry's name or content.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "title": "Identifier",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "A stable identifier used to reference this entry. Keep it unchanged when editing the entry's name or content."
}

Resource type

resources.*.kind

string · Required when the parent is present

Categorize the resource for selection and display. Choosing a type alone does not define its physiologic effects.

Allowed values: medication, diagnostic, procedure, equipment, consultation, information

Field schema

{
  "type": "string",
  "title": "Resource type",
  "enum": [
    "medication",
    "diagnostic",
    "procedure",
    "equipment",
    "consultation",
    "information"
  ],
  "description": "Categorize the resource for selection and display. Choosing a type alone does not define its physiologic effects."
}

Learner title

resources.*.name

string · Required when the parent is present

The neutral title learners use to identify or request this resource. Include the dose or study details needed to distinguish similar choices.

  • Maximum length: 240 characters

Field schema

{
  "title": "Learner title",
  "maxLength": 240,
  "x-usim": {
    "authoring": {}
  },
  "type": "string",
  "description": "The neutral title learners use to identify or request this resource. Include the dose or study details needed to distinguish similar choices."
}

Builder title

resources.*.builderTitle

string · Optional; an omitted value is not a normal, negative, or zero value

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.

  • Maximum length: 240 characters

Field schema

{
  "title": "Builder title",
  "maxLength": 240,
  "x-usim": {
    "authoring": {}
  },
  "type": "string",
  "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."
}

diagnostic

resources.*.diagnostic

object · Optional; an omitted value is not a normal, negative, or zero value

A named request with explicit result references. Laboratory requests require an authored specimen description.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "category"
  ],
  "properties": {
    "category": {
      "anyOf": [
        {
          "const": "lab",
          "type": "string",
          "description": "The required literal value \"lab\"."
        },
        {
          "const": "imaging",
          "type": "string",
          "description": "The required literal value \"imaging\"."
        },
        {
          "const": "physiologic",
          "type": "string",
          "description": "The required literal value \"physiologic\"."
        }
      ],
      "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."
    },
    "specimen": {
      "type": "string",
      "description": "The specimen for this entry. Omit optional information that has not been specified."
    },
    "collectionInstructions": {
      "type": "string",
      "description": "The collection instructions for this entry. Omit optional information that has not been specified."
    },
    "resultIds": {
      "minItems": 0,
      "uniqueItems": true,
      "type": "array",
      "items": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "reference": {
            "collection": "resources.*.results",
            "label": "id"
          }
        },
        "type": "string",
        "description": "Identifier of an existing resources.*.results entry. Preserve the referenced entry when editing this field."
      },
      "description": "Entries for result ids. An empty list means no entries have been authored."
    },
    "acquisition": {
      "additionalProperties": false,
      "type": "object",
      "properties": {
        "bodyRegion": {
          "type": "string",
          "description": "The body region for this entry. Omit optional information that has not been specified."
        },
        "view": {
          "type": "string",
          "description": "The view for this entry. Omit optional information that has not been specified."
        },
        "technique": {
          "type": "string",
          "description": "The technique for this entry. Omit optional information that has not been specified."
        }
      },
      "description": "Study-specific context independent of report interpretation."
    },
    "orthostaticResponse": {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "systolicDrop",
        "diastolicDrop"
      ],
      "properties": {
        "patientId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "patients",
              "label": "name"
            }
          },
          "type": "string",
          "description": "Identifier of an existing patients entry. Preserve the referenced entry when editing this field."
        },
        "systolicVariableId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "patients.*.variables",
              "label": "id"
            }
          },
          "type": "string",
          "description": "Identifier of an existing patients.*.variables entry. Preserve the referenced entry when editing this field."
        },
        "diastolicVariableId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "patients.*.variables",
              "label": "id"
            }
          },
          "type": "string",
          "description": "Identifier of an existing patients.*.variables entry. Preserve the referenced entry when editing this field."
        },
        "systolicDrop": {
          "minimum": 0,
          "maximum": 100,
          "type": "number",
          "description": "Subtract this many mmHg from the request-time resting systolic BP for the standing result."
        },
        "diastolicDrop": {
          "minimum": 0,
          "maximum": 100,
          "type": "number",
          "description": "Subtract this many mmHg from the request-time resting diastolic BP for the standing result."
        }
      },
      "description": "Report standing BP relative to current resting BP when requested, without changing resting physiology. An authored learner result takes precedence."
    },
    "ecg": {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "leadConfiguration",
        "findingObservationIds",
        "recordingAssetId"
      ],
      "properties": {
        "leadConfiguration": {
          "type": "string",
          "description": "The lead configuration for this entry. Omit optional information that has not been specified."
        },
        "paperSpeedMmPerSecond": {
          "exclusiveMinimum": 0,
          "type": "number",
          "description": "Numeric paper speed mm per second. Do not infer an omitted value."
        },
        "gainMmPerMv": {
          "exclusiveMinimum": 0,
          "type": "number",
          "description": "Numeric gain mm per mv. Do not infer an omitted value."
        },
        "rhythmObservationId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "observations",
              "label": "code"
            }
          },
          "type": "string",
          "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
        },
        "findingObservationIds": {
          "minItems": 0,
          "uniqueItems": true,
          "type": "array",
          "items": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "observations",
                "label": "code"
              }
            },
            "type": "string",
            "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
          },
          "description": "Entries for finding observation ids. An empty list means no entries have been authored."
        },
        "recordingAssetId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "assets",
              "label": "description"
            }
          },
          "type": "string",
          "description": "ECG image, signal, or video manifest entry with an accessible description."
        }
      },
      "description": "Acquisition context plus independent rhythm and morphology findings; all supplied scale numbers must be positive."
    }
  },
  "description": "A named request with explicit result references. Laboratory requests require an authored specimen description."
}

category

resources.*.diagnostic.category

Value · Required when the parent is present

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.

Allowed values: lab, imaging, physiologic

Field schema

{
  "anyOf": [
    {
      "const": "lab",
      "type": "string",
      "description": "The required literal value \"lab\"."
    },
    {
      "const": "imaging",
      "type": "string",
      "description": "The required literal value \"imaging\"."
    },
    {
      "const": "physiologic",
      "type": "string",
      "description": "The required literal value \"physiologic\"."
    }
  ],
  "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."
}

specimen

resources.*.diagnostic.specimen

string · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "string",
  "description": "The specimen for this entry. Omit optional information that has not been specified."
}

collectionInstructions

resources.*.diagnostic.collectionInstructions

string · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "string",
  "description": "The collection instructions for this entry. Omit optional information that has not been specified."
}

resultIds

resources.*.diagnostic.resultIds

array · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "minItems": 0,
  "uniqueItems": true,
  "type": "array",
  "items": {
    "minLength": 1,
    "maxLength": 128,
    "pattern": "\\S",
    "title": "Identifier",
    "x-usim": {
      "reference": {
        "collection": "resources.*.results",
        "label": "id"
      }
    },
    "type": "string",
    "description": "Identifier of an existing resources.*.results entry. Preserve the referenced entry when editing this field."
  },
  "description": "Entries for result ids. An empty list means no entries have been authored."
}

Identifier

resources.*.diagnostic.resultIds.*

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References resources.*.results using id as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "resources.*.results",
      "label": "id"
    }
  },
  "type": "string",
  "description": "Identifier of an existing resources.*.results entry. Preserve the referenced entry when editing this field."
}

acquisition

resources.*.diagnostic.acquisition

object · Optional; an omitted value is not a normal, negative, or zero value

Study-specific context independent of report interpretation.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "properties": {
    "bodyRegion": {
      "type": "string",
      "description": "The body region for this entry. Omit optional information that has not been specified."
    },
    "view": {
      "type": "string",
      "description": "The view for this entry. Omit optional information that has not been specified."
    },
    "technique": {
      "type": "string",
      "description": "The technique for this entry. Omit optional information that has not been specified."
    }
  },
  "description": "Study-specific context independent of report interpretation."
}

bodyRegion

resources.*.diagnostic.acquisition.bodyRegion

string · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "string",
  "description": "The body region for this entry. Omit optional information that has not been specified."
}

view

resources.*.diagnostic.acquisition.view

string · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "string",
  "description": "The view for this entry. Omit optional information that has not been specified."
}

technique

resources.*.diagnostic.acquisition.technique

string · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "string",
  "description": "The technique for this entry. Omit optional information that has not been specified."
}

orthostaticResponse

resources.*.diagnostic.orthostaticResponse

object · Optional; an omitted value is not a normal, negative, or zero value

Report standing BP relative to current resting BP when requested, without changing resting physiology. An authored learner result takes precedence.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "systolicDrop",
    "diastolicDrop"
  ],
  "properties": {
    "patientId": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "reference": {
          "collection": "patients",
          "label": "name"
        }
      },
      "type": "string",
      "description": "Identifier of an existing patients entry. Preserve the referenced entry when editing this field."
    },
    "systolicVariableId": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "reference": {
          "collection": "patients.*.variables",
          "label": "id"
        }
      },
      "type": "string",
      "description": "Identifier of an existing patients.*.variables entry. Preserve the referenced entry when editing this field."
    },
    "diastolicVariableId": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "reference": {
          "collection": "patients.*.variables",
          "label": "id"
        }
      },
      "type": "string",
      "description": "Identifier of an existing patients.*.variables entry. Preserve the referenced entry when editing this field."
    },
    "systolicDrop": {
      "minimum": 0,
      "maximum": 100,
      "type": "number",
      "description": "Subtract this many mmHg from the request-time resting systolic BP for the standing result."
    },
    "diastolicDrop": {
      "minimum": 0,
      "maximum": 100,
      "type": "number",
      "description": "Subtract this many mmHg from the request-time resting diastolic BP for the standing result."
    }
  },
  "description": "Report standing BP relative to current resting BP when requested, without changing resting physiology. An authored learner result takes precedence."
}

Identifier

resources.*.diagnostic.orthostaticResponse.patientId

string · Optional; an omitted value is not a normal, negative, or zero value

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References patients using name as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "patients",
      "label": "name"
    }
  },
  "type": "string",
  "description": "Identifier of an existing patients entry. Preserve the referenced entry when editing this field."
}

Identifier

resources.*.diagnostic.orthostaticResponse.systolicVariableId

string · Optional; an omitted value is not a normal, negative, or zero value

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References patients.*.variables using id as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "patients.*.variables",
      "label": "id"
    }
  },
  "type": "string",
  "description": "Identifier of an existing patients.*.variables entry. Preserve the referenced entry when editing this field."
}

Identifier

resources.*.diagnostic.orthostaticResponse.diastolicVariableId

string · Optional; an omitted value is not a normal, negative, or zero value

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References patients.*.variables using id as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "patients.*.variables",
      "label": "id"
    }
  },
  "type": "string",
  "description": "Identifier of an existing patients.*.variables entry. Preserve the referenced entry when editing this field."
}

systolicDrop

resources.*.diagnostic.orthostaticResponse.systolicDrop

number · Required when the parent is present

Subtract this many mmHg from the request-time resting systolic BP for the standing result.

  • Minimum: 0
  • Maximum: 100

Field schema

{
  "minimum": 0,
  "maximum": 100,
  "type": "number",
  "description": "Subtract this many mmHg from the request-time resting systolic BP for the standing result."
}

diastolicDrop

resources.*.diagnostic.orthostaticResponse.diastolicDrop

number · Required when the parent is present

Subtract this many mmHg from the request-time resting diastolic BP for the standing result.

  • Minimum: 0
  • Maximum: 100

Field schema

{
  "minimum": 0,
  "maximum": 100,
  "type": "number",
  "description": "Subtract this many mmHg from the request-time resting diastolic BP for the standing result."
}

ecg

resources.*.diagnostic.ecg

object · Optional; an omitted value is not a normal, negative, or zero value

Acquisition context plus independent rhythm and morphology findings; all supplied scale numbers must be positive.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "leadConfiguration",
    "findingObservationIds",
    "recordingAssetId"
  ],
  "properties": {
    "leadConfiguration": {
      "type": "string",
      "description": "The lead configuration for this entry. Omit optional information that has not been specified."
    },
    "paperSpeedMmPerSecond": {
      "exclusiveMinimum": 0,
      "type": "number",
      "description": "Numeric paper speed mm per second. Do not infer an omitted value."
    },
    "gainMmPerMv": {
      "exclusiveMinimum": 0,
      "type": "number",
      "description": "Numeric gain mm per mv. Do not infer an omitted value."
    },
    "rhythmObservationId": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "reference": {
          "collection": "observations",
          "label": "code"
        }
      },
      "type": "string",
      "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
    },
    "findingObservationIds": {
      "minItems": 0,
      "uniqueItems": true,
      "type": "array",
      "items": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "reference": {
            "collection": "observations",
            "label": "code"
          }
        },
        "type": "string",
        "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
      },
      "description": "Entries for finding observation ids. An empty list means no entries have been authored."
    },
    "recordingAssetId": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "reference": {
          "collection": "assets",
          "label": "description"
        }
      },
      "type": "string",
      "description": "ECG image, signal, or video manifest entry with an accessible description."
    }
  },
  "description": "Acquisition context plus independent rhythm and morphology findings; all supplied scale numbers must be positive."
}

leadConfiguration

resources.*.diagnostic.ecg.leadConfiguration

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "The lead configuration for this entry. Omit optional information that has not been specified."
}

paperSpeedMmPerSecond

resources.*.diagnostic.ecg.paperSpeedMmPerSecond

number · Optional; an omitted value is not a normal, negative, or zero value

Numeric paper speed mm per second. Do not infer an omitted value.

Field schema

{
  "exclusiveMinimum": 0,
  "type": "number",
  "description": "Numeric paper speed mm per second. Do not infer an omitted value."
}

gainMmPerMv

resources.*.diagnostic.ecg.gainMmPerMv

number · Optional; an omitted value is not a normal, negative, or zero value

Numeric gain mm per mv. Do not infer an omitted value.

Field schema

{
  "exclusiveMinimum": 0,
  "type": "number",
  "description": "Numeric gain mm per mv. Do not infer an omitted value."
}

Identifier

resources.*.diagnostic.ecg.rhythmObservationId

string · Optional; an omitted value is not a normal, negative, or zero value

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References observations using code as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "observations",
      "label": "code"
    }
  },
  "type": "string",
  "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
}

findingObservationIds

resources.*.diagnostic.ecg.findingObservationIds

array · Required when the parent is present

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

Field schema

{
  "minItems": 0,
  "uniqueItems": true,
  "type": "array",
  "items": {
    "minLength": 1,
    "maxLength": 128,
    "pattern": "\\S",
    "title": "Identifier",
    "x-usim": {
      "reference": {
        "collection": "observations",
        "label": "code"
      }
    },
    "type": "string",
    "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
  },
  "description": "Entries for finding observation ids. An empty list means no entries have been authored."
}

Identifier

resources.*.diagnostic.ecg.findingObservationIds.*

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References observations using code as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "observations",
      "label": "code"
    }
  },
  "type": "string",
  "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
}

Identifier

resources.*.diagnostic.ecg.recordingAssetId

string · Required when the parent is present

ECG image, signal, or video manifest entry with an accessible description.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References assets using description as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "assets",
      "label": "description"
    }
  },
  "type": "string",
  "description": "ECG image, signal, or video manifest entry with an accessible description."
}

Description shown to the learner

resources.*.description

string · Optional; an omitted value is not a normal, negative, or zero value

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.

  • Maximum length: 8000 characters

Field schema

{
  "title": "Description shown to the learner",
  "maxLength": 8000,
  "x-usim": {
    "authoring": {
      "editor": "textarea"
    }
  },
  "type": "string",
  "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."
}

equipment

resources.*.equipment

object · Optional; an omitted value is not a normal, negative, or zero value

Covers vascular access, urinary/gastric tubes, invasive monitoring, and other authored devices.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "description": "The type for this entry. Omit optional information that has not been specified."
    },
    "status": {
      "anyOf": [
        {
          "const": "available",
          "type": "string",
          "description": "The required literal value \"available\"."
        },
        {
          "const": "connected",
          "type": "string",
          "description": "The required literal value \"connected\"."
        },
        {
          "const": "malfunctioning",
          "type": "string",
          "description": "The required literal value \"malfunctioning\"."
        },
        {
          "const": "removed",
          "type": "string",
          "description": "The required literal value \"removed\"."
        }
      ],
      "description": "Select one of the declared status alternatives; use the fields belonging to that alternative."
    },
    "patientId": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "reference": {
          "collection": "patients",
          "label": "name"
        }
      },
      "type": "string",
      "description": "Identifier of an existing patients entry. Preserve the referenced entry when editing this field."
    },
    "site": {
      "type": "string",
      "description": "The site for this entry. Omit optional information that has not been specified."
    },
    "size": {
      "type": "string",
      "description": "The size for this entry. Omit optional information that has not been specified."
    },
    "measurementIds": {
      "minItems": 0,
      "uniqueItems": true,
      "type": "array",
      "items": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "reference": {
            "collection": "observations",
            "label": "code"
          }
        },
        "type": "string",
        "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
      },
      "description": "Entries for measurement ids. An empty list means no entries have been authored."
    },
    "placement": {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "confirmation"
      ],
      "properties": {
        "placedAtSeconds": {
          "type": "number",
          "description": "Numeric placed at seconds. Do not infer an omitted value."
        },
        "confirmation": {
          "anyOf": [
            {
              "const": "unknown",
              "type": "string",
              "description": "The required literal value \"unknown\"."
            },
            {
              "const": "confirmed",
              "type": "string",
              "description": "The required literal value \"confirmed\"."
            },
            {
              "const": "incorrect",
              "type": "string",
              "description": "The required literal value \"incorrect\"."
            }
          ],
          "description": "Select one of the declared confirmation alternatives; use the fields belonging to that alternative."
        },
        "note": {
          "type": "string",
          "description": "The note for this entry. Omit optional information that has not been specified."
        }
      },
      "description": "Separate placement time and authored confirmation from mere presence."
    },
    "capabilities": {
      "uniqueItems": true,
      "type": "array",
      "items": {
        "type": "string",
        "description": "The capabilities for this entry. Omit optional information that has not been specified."
      },
      "description": "Named capabilities referenced by procedure prerequisites or environment requirements."
    },
    "monitorConnection": {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "channel",
        "connected"
      ],
      "properties": {
        "channel": {
          "anyOf": [
            {
              "anyOf": [
                {
                  "const": "ecg",
                  "type": "string",
                  "description": "The required literal value \"ecg\"."
                },
                {
                  "const": "bloodPressure",
                  "type": "string",
                  "description": "The required literal value \"bloodPressure\"."
                },
                {
                  "const": "spo2",
                  "type": "string",
                  "description": "The required literal value \"spo2\"."
                },
                {
                  "const": "respiration",
                  "type": "string",
                  "description": "The required literal value \"respiration\"."
                },
                {
                  "const": "temperature",
                  "type": "string",
                  "description": "The required literal value \"temperature\"."
                },
                {
                  "const": "capnography",
                  "type": "string",
                  "description": "The required literal value \"capnography\"."
                },
                {
                  "const": "arterialPressure",
                  "type": "string",
                  "description": "The required literal value \"arterialPressure\"."
                }
              ],
              "description": "Select one of the declared channel alternatives; use the fields belonging to that alternative."
            },
            {
              "anyOf": [
                {
                  "const": "all",
                  "type": "string",
                  "description": "The required literal value \"all\"."
                },
                {
                  "const": "standard",
                  "type": "string",
                  "description": "The required literal value \"standard\"."
                }
              ],
              "description": "Select one of the declared channel alternatives; use the fields belonging to that alternative."
            }
          ],
          "description": "The monitor channel controlled by this equipment resource; all controls every channel; standard controls ECG, SpO2, NIBP, temperature, and respiratory rate."
        },
        "connected": {
          "type": "boolean",
          "description": "True connects this channel; false disconnects it."
        }
      },
      "description": "Connect or disconnect an equipment channel when this resource response is released."
    },
    "ventilation": {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "mode",
        "settings",
        "measurementIds",
        "alarms"
      ],
      "properties": {
        "mode": {
          "type": "string",
          "description": "The mode for this entry. Omit optional information that has not been specified."
        },
        "settings": {
          "type": "array",
          "items": {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "name",
              "value",
              "unit"
            ],
            "properties": {
              "name": {
                "type": "string",
                "description": "The name for this entry. Omit optional information that has not been specified."
              },
              "value": {
                "type": "number",
                "description": "Numeric value. Do not infer an omitted value."
              },
              "unit": {
                "type": "string",
                "description": "The unit for this entry. Omit optional information that has not been specified."
              }
            },
            "description": "Structured settings details. Omitted optional values remain unspecified."
          },
          "description": "Entries for settings. An empty list means no entries have been authored."
        },
        "measurementIds": {
          "minItems": 0,
          "uniqueItems": true,
          "type": "array",
          "items": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "observations",
                "label": "code"
              }
            },
            "type": "string",
            "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
          },
          "description": "Entries for measurement ids. An empty list means no entries have been authored."
        },
        "alarms": {
          "type": "array",
          "items": {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "id",
              "conditionId",
              "message",
              "severity"
            ],
            "properties": {
              "id": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "authoring": {
                    "hidden": true
                  }
                },
                "type": "string",
                "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
              },
              "conditionId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "events.conditions",
                    "label": "id"
                  }
                },
                "type": "string",
                "description": "Identifier of an existing events.conditions entry. Preserve the referenced entry when editing this field."
              },
              "message": {
                "type": "string",
                "description": "The message for this entry. Omit optional information that has not been specified."
              },
              "severity": {
                "anyOf": [
                  {
                    "const": "advisory",
                    "type": "string",
                    "description": "The required literal value \"advisory\"."
                  },
                  {
                    "const": "urgent",
                    "type": "string",
                    "description": "The required literal value \"urgent\"."
                  }
                ],
                "description": "Select one of the declared severity alternatives; use the fields belonging to that alternative."
              }
            },
            "description": "Authored alarm conditions and visible messages, evaluated from explicit conditions."
          },
          "description": "Entries for alarms. An empty list means no entries have been authored."
        }
      },
      "description": "Setting is { name: string, value: number, unit: string }; settings and observations remain distinct."
    }
  },
  "description": "Covers vascular access, urinary/gastric tubes, invasive monitoring, and other authored devices."
}

type

resources.*.equipment.type

string · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "string",
  "description": "The type for this entry. Omit optional information that has not been specified."
}

status

resources.*.equipment.status

Value · Optional; an omitted value is not a normal, negative, or zero value

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

Allowed values: available, connected, malfunctioning, removed

Field schema

{
  "anyOf": [
    {
      "const": "available",
      "type": "string",
      "description": "The required literal value \"available\"."
    },
    {
      "const": "connected",
      "type": "string",
      "description": "The required literal value \"connected\"."
    },
    {
      "const": "malfunctioning",
      "type": "string",
      "description": "The required literal value \"malfunctioning\"."
    },
    {
      "const": "removed",
      "type": "string",
      "description": "The required literal value \"removed\"."
    }
  ],
  "description": "Select one of the declared status alternatives; use the fields belonging to that alternative."
}

Identifier

resources.*.equipment.patientId

string · Optional; an omitted value is not a normal, negative, or zero value

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References patients using name as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "patients",
      "label": "name"
    }
  },
  "type": "string",
  "description": "Identifier of an existing patients entry. Preserve the referenced entry when editing this field."
}

site

resources.*.equipment.site

string · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "string",
  "description": "The site for this entry. Omit optional information that has not been specified."
}

size

resources.*.equipment.size

string · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "string",
  "description": "The size for this entry. Omit optional information that has not been specified."
}

measurementIds

resources.*.equipment.measurementIds

array · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "minItems": 0,
  "uniqueItems": true,
  "type": "array",
  "items": {
    "minLength": 1,
    "maxLength": 128,
    "pattern": "\\S",
    "title": "Identifier",
    "x-usim": {
      "reference": {
        "collection": "observations",
        "label": "code"
      }
    },
    "type": "string",
    "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
  },
  "description": "Entries for measurement ids. An empty list means no entries have been authored."
}

Identifier

resources.*.equipment.measurementIds.*

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References observations using code as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "observations",
      "label": "code"
    }
  },
  "type": "string",
  "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
}

placement

resources.*.equipment.placement

object · Optional; an omitted value is not a normal, negative, or zero value

Separate placement time and authored confirmation from mere presence.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "confirmation"
  ],
  "properties": {
    "placedAtSeconds": {
      "type": "number",
      "description": "Numeric placed at seconds. Do not infer an omitted value."
    },
    "confirmation": {
      "anyOf": [
        {
          "const": "unknown",
          "type": "string",
          "description": "The required literal value \"unknown\"."
        },
        {
          "const": "confirmed",
          "type": "string",
          "description": "The required literal value \"confirmed\"."
        },
        {
          "const": "incorrect",
          "type": "string",
          "description": "The required literal value \"incorrect\"."
        }
      ],
      "description": "Select one of the declared confirmation alternatives; use the fields belonging to that alternative."
    },
    "note": {
      "type": "string",
      "description": "The note for this entry. Omit optional information that has not been specified."
    }
  },
  "description": "Separate placement time and authored confirmation from mere presence."
}

placedAtSeconds

resources.*.equipment.placement.placedAtSeconds

number · Optional; an omitted value is not a normal, negative, or zero value

Numeric placed at seconds. Do not infer an omitted value.

Field schema

{
  "type": "number",
  "description": "Numeric placed at seconds. Do not infer an omitted value."
}

confirmation

resources.*.equipment.placement.confirmation

Value · Required when the parent is present

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

Allowed values: unknown, confirmed, incorrect

Field schema

{
  "anyOf": [
    {
      "const": "unknown",
      "type": "string",
      "description": "The required literal value \"unknown\"."
    },
    {
      "const": "confirmed",
      "type": "string",
      "description": "The required literal value \"confirmed\"."
    },
    {
      "const": "incorrect",
      "type": "string",
      "description": "The required literal value \"incorrect\"."
    }
  ],
  "description": "Select one of the declared confirmation alternatives; use the fields belonging to that alternative."
}

note

resources.*.equipment.placement.note

string · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "string",
  "description": "The note for this entry. Omit optional information that has not been specified."
}

capabilities

resources.*.equipment.capabilities

array · Optional; an omitted value is not a normal, negative, or zero value

Named capabilities referenced by procedure prerequisites or environment requirements.

Field schema

{
  "uniqueItems": true,
  "type": "array",
  "items": {
    "type": "string",
    "description": "The capabilities for this entry. Omit optional information that has not been specified."
  },
  "description": "Named capabilities referenced by procedure prerequisites or environment requirements."
}

*

resources.*.equipment.capabilities.*

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "The capabilities for this entry. Omit optional information that has not been specified."
}

monitorConnection

resources.*.equipment.monitorConnection

object · Optional; an omitted value is not a normal, negative, or zero value

Connect or disconnect an equipment channel when this resource response is released.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "channel",
    "connected"
  ],
  "properties": {
    "channel": {
      "anyOf": [
        {
          "anyOf": [
            {
              "const": "ecg",
              "type": "string",
              "description": "The required literal value \"ecg\"."
            },
            {
              "const": "bloodPressure",
              "type": "string",
              "description": "The required literal value \"bloodPressure\"."
            },
            {
              "const": "spo2",
              "type": "string",
              "description": "The required literal value \"spo2\"."
            },
            {
              "const": "respiration",
              "type": "string",
              "description": "The required literal value \"respiration\"."
            },
            {
              "const": "temperature",
              "type": "string",
              "description": "The required literal value \"temperature\"."
            },
            {
              "const": "capnography",
              "type": "string",
              "description": "The required literal value \"capnography\"."
            },
            {
              "const": "arterialPressure",
              "type": "string",
              "description": "The required literal value \"arterialPressure\"."
            }
          ],
          "description": "Select one of the declared channel alternatives; use the fields belonging to that alternative."
        },
        {
          "anyOf": [
            {
              "const": "all",
              "type": "string",
              "description": "The required literal value \"all\"."
            },
            {
              "const": "standard",
              "type": "string",
              "description": "The required literal value \"standard\"."
            }
          ],
          "description": "Select one of the declared channel alternatives; use the fields belonging to that alternative."
        }
      ],
      "description": "The monitor channel controlled by this equipment resource; all controls every channel; standard controls ECG, SpO2, NIBP, temperature, and respiratory rate."
    },
    "connected": {
      "type": "boolean",
      "description": "True connects this channel; false disconnects it."
    }
  },
  "description": "Connect or disconnect an equipment channel when this resource response is released."
}

channel

resources.*.equipment.monitorConnection.channel

Value · Required when the parent is present

The monitor channel controlled by this equipment resource; all controls every channel; standard controls ECG, SpO2, NIBP, temperature, and respiratory rate.

Field schema

{
  "anyOf": [
    {
      "anyOf": [
        {
          "const": "ecg",
          "type": "string",
          "description": "The required literal value \"ecg\"."
        },
        {
          "const": "bloodPressure",
          "type": "string",
          "description": "The required literal value \"bloodPressure\"."
        },
        {
          "const": "spo2",
          "type": "string",
          "description": "The required literal value \"spo2\"."
        },
        {
          "const": "respiration",
          "type": "string",
          "description": "The required literal value \"respiration\"."
        },
        {
          "const": "temperature",
          "type": "string",
          "description": "The required literal value \"temperature\"."
        },
        {
          "const": "capnography",
          "type": "string",
          "description": "The required literal value \"capnography\"."
        },
        {
          "const": "arterialPressure",
          "type": "string",
          "description": "The required literal value \"arterialPressure\"."
        }
      ],
      "description": "Select one of the declared channel alternatives; use the fields belonging to that alternative."
    },
    {
      "anyOf": [
        {
          "const": "all",
          "type": "string",
          "description": "The required literal value \"all\"."
        },
        {
          "const": "standard",
          "type": "string",
          "description": "The required literal value \"standard\"."
        }
      ],
      "description": "Select one of the declared channel alternatives; use the fields belonging to that alternative."
    }
  ],
  "description": "The monitor channel controlled by this equipment resource; all controls every channel; standard controls ECG, SpO2, NIBP, temperature, and respiratory rate."
}

connected

resources.*.equipment.monitorConnection.connected

boolean · Required when the parent is present

True connects this channel; false disconnects it.

Field schema

{
  "type": "boolean",
  "description": "True connects this channel; false disconnects it."
}

ventilation

resources.*.equipment.ventilation

object · Optional; an omitted value is not a normal, negative, or zero value

Setting is { name: string, value: number, unit: string }; settings and observations remain distinct.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "mode",
    "settings",
    "measurementIds",
    "alarms"
  ],
  "properties": {
    "mode": {
      "type": "string",
      "description": "The mode for this entry. Omit optional information that has not been specified."
    },
    "settings": {
      "type": "array",
      "items": {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "name",
          "value",
          "unit"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "The name for this entry. Omit optional information that has not been specified."
          },
          "value": {
            "type": "number",
            "description": "Numeric value. Do not infer an omitted value."
          },
          "unit": {
            "type": "string",
            "description": "The unit for this entry. Omit optional information that has not been specified."
          }
        },
        "description": "Structured settings details. Omitted optional values remain unspecified."
      },
      "description": "Entries for settings. An empty list means no entries have been authored."
    },
    "measurementIds": {
      "minItems": 0,
      "uniqueItems": true,
      "type": "array",
      "items": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "reference": {
            "collection": "observations",
            "label": "code"
          }
        },
        "type": "string",
        "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
      },
      "description": "Entries for measurement ids. An empty list means no entries have been authored."
    },
    "alarms": {
      "type": "array",
      "items": {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "conditionId",
          "message",
          "severity"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
          },
          "conditionId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "events.conditions",
                "label": "id"
              }
            },
            "type": "string",
            "description": "Identifier of an existing events.conditions entry. Preserve the referenced entry when editing this field."
          },
          "message": {
            "type": "string",
            "description": "The message for this entry. Omit optional information that has not been specified."
          },
          "severity": {
            "anyOf": [
              {
                "const": "advisory",
                "type": "string",
                "description": "The required literal value \"advisory\"."
              },
              {
                "const": "urgent",
                "type": "string",
                "description": "The required literal value \"urgent\"."
              }
            ],
            "description": "Select one of the declared severity alternatives; use the fields belonging to that alternative."
          }
        },
        "description": "Authored alarm conditions and visible messages, evaluated from explicit conditions."
      },
      "description": "Entries for alarms. An empty list means no entries have been authored."
    }
  },
  "description": "Setting is { name: string, value: number, unit: string }; settings and observations remain distinct."
}

mode

resources.*.equipment.ventilation.mode

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "The mode for this entry. Omit optional information that has not been specified."
}

settings

resources.*.equipment.ventilation.settings

array · Required when the parent is present

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

Field schema

{
  "type": "array",
  "items": {
    "additionalProperties": false,
    "type": "object",
    "required": [
      "name",
      "value",
      "unit"
    ],
    "properties": {
      "name": {
        "type": "string",
        "description": "The name for this entry. Omit optional information that has not been specified."
      },
      "value": {
        "type": "number",
        "description": "Numeric value. Do not infer an omitted value."
      },
      "unit": {
        "type": "string",
        "description": "The unit for this entry. Omit optional information that has not been specified."
      }
    },
    "description": "Structured settings details. Omitted optional values remain unspecified."
  },
  "description": "Entries for settings. An empty list means no entries have been authored."
}

*

resources.*.equipment.ventilation.settings.*

object · Required when the parent is present

Structured settings details. Omitted optional values remain unspecified.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "name",
    "value",
    "unit"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "The name for this entry. Omit optional information that has not been specified."
    },
    "value": {
      "type": "number",
      "description": "Numeric value. Do not infer an omitted value."
    },
    "unit": {
      "type": "string",
      "description": "The unit for this entry. Omit optional information that has not been specified."
    }
  },
  "description": "Structured settings details. Omitted optional values remain unspecified."
}

name

resources.*.equipment.ventilation.settings.*.name

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "The name for this entry. Omit optional information that has not been specified."
}

unit

resources.*.equipment.ventilation.settings.*.unit

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "The unit for this entry. Omit optional information that has not been specified."
}

measurementIds

resources.*.equipment.ventilation.measurementIds

array · Required when the parent is present

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

Field schema

{
  "minItems": 0,
  "uniqueItems": true,
  "type": "array",
  "items": {
    "minLength": 1,
    "maxLength": 128,
    "pattern": "\\S",
    "title": "Identifier",
    "x-usim": {
      "reference": {
        "collection": "observations",
        "label": "code"
      }
    },
    "type": "string",
    "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
  },
  "description": "Entries for measurement ids. An empty list means no entries have been authored."
}

Identifier

resources.*.equipment.ventilation.measurementIds.*

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References observations using code as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "observations",
      "label": "code"
    }
  },
  "type": "string",
  "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
}

alarms

resources.*.equipment.ventilation.alarms

array · Required when the parent is present

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

Field schema

{
  "type": "array",
  "items": {
    "additionalProperties": false,
    "type": "object",
    "required": [
      "id",
      "conditionId",
      "message",
      "severity"
    ],
    "properties": {
      "id": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "authoring": {
            "hidden": true
          }
        },
        "type": "string",
        "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
      },
      "conditionId": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "reference": {
            "collection": "events.conditions",
            "label": "id"
          }
        },
        "type": "string",
        "description": "Identifier of an existing events.conditions entry. Preserve the referenced entry when editing this field."
      },
      "message": {
        "type": "string",
        "description": "The message for this entry. Omit optional information that has not been specified."
      },
      "severity": {
        "anyOf": [
          {
            "const": "advisory",
            "type": "string",
            "description": "The required literal value \"advisory\"."
          },
          {
            "const": "urgent",
            "type": "string",
            "description": "The required literal value \"urgent\"."
          }
        ],
        "description": "Select one of the declared severity alternatives; use the fields belonging to that alternative."
      }
    },
    "description": "Authored alarm conditions and visible messages, evaluated from explicit conditions."
  },
  "description": "Entries for alarms. An empty list means no entries have been authored."
}

*

resources.*.equipment.ventilation.alarms.*

object · Required when the parent is present

Authored alarm conditions and visible messages, evaluated from explicit conditions.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "id",
    "conditionId",
    "message",
    "severity"
  ],
  "properties": {
    "id": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "authoring": {
          "hidden": true
        }
      },
      "type": "string",
      "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
    },
    "conditionId": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "reference": {
          "collection": "events.conditions",
          "label": "id"
        }
      },
      "type": "string",
      "description": "Identifier of an existing events.conditions entry. Preserve the referenced entry when editing this field."
    },
    "message": {
      "type": "string",
      "description": "The message for this entry. Omit optional information that has not been specified."
    },
    "severity": {
      "anyOf": [
        {
          "const": "advisory",
          "type": "string",
          "description": "The required literal value \"advisory\"."
        },
        {
          "const": "urgent",
          "type": "string",
          "description": "The required literal value \"urgent\"."
        }
      ],
      "description": "Select one of the declared severity alternatives; use the fields belonging to that alternative."
    }
  },
  "description": "Authored alarm conditions and visible messages, evaluated from explicit conditions."
}

Identifier

resources.*.equipment.ventilation.alarms.*.id

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
}

Identifier

resources.*.equipment.ventilation.alarms.*.conditionId

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References events.conditions using id as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "events.conditions",
      "label": "id"
    }
  },
  "type": "string",
  "description": "Identifier of an existing events.conditions entry. Preserve the referenced entry when editing this field."
}

message

resources.*.equipment.ventilation.alarms.*.message

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "The message for this entry. Omit optional information that has not been specified."
}

severity

resources.*.equipment.ventilation.alarms.*.severity

Value · Required when the parent is present

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

Allowed values: advisory, urgent

Field schema

{
  "anyOf": [
    {
      "const": "advisory",
      "type": "string",
      "description": "The required literal value \"advisory\"."
    },
    {
      "const": "urgent",
      "type": "string",
      "description": "The required literal value \"urgent\"."
    }
  ],
  "description": "Select one of the declared severity alternatives; use the fields belonging to that alternative."
}

Source / attribution

resources.*.source

string · Optional; an omitted value is not a normal, negative, or zero value

Credit the source of the resource content, including a citation or URL when available. Attribution alone does not verify clinical accuracy.

  • Maximum length: 2000 characters

Field schema

{
  "title": "Source / attribution",
  "maxLength": 2000,
  "x-usim": {
    "authoring": {}
  },
  "type": "string",
  "description": "Credit the source of the resource content, including a citation or URL when available. Attribution alone does not verify clinical accuracy."
}

Resource response

resources.*.response

object · Optional; an omitted value is not a normal, negative, or zero value

Structured Resource response details. Omitted optional values remain unspecified.

Field schema

{
  "additionalProperties": false,
  "title": "Resource response",
  "type": "object",
  "properties": {
    "releaseOnStateId": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "When learners receive this result",
      "x-usim": {
        "reference": {
          "collection": "events.states",
          "label": "title"
        }
      },
      "type": "string",
      "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."
    },
    "delaySeconds": {
      "minimum": 0,
      "type": "number",
      "description": "Numeric delay seconds, at least 0. Do not infer an omitted value."
    },
    "effectIds": {
      "type": "array",
      "items": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "reference": {
            "collection": "events.effects",
            "label": "id"
          }
        },
        "type": "string",
        "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field."
      },
      "description": "Entries for effect ids. An empty list means no entries have been authored."
    },
    "nextStateId": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "reference": {
          "collection": "events.states",
          "label": "title"
        }
      },
      "type": "string",
      "description": "Identifier of an existing events.states entry. Preserve the referenced entry when editing this field."
    }
  },
  "description": "Structured Resource response details. Omitted optional values remain unspecified."
}

When learners receive this result

resources.*.response.releaseOnStateId

string · Optional; an omitted value is not a normal, negative, or zero value

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.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References events.states using title as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "When learners receive this result",
  "x-usim": {
    "reference": {
      "collection": "events.states",
      "label": "title"
    }
  },
  "type": "string",
  "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."
}

delaySeconds

resources.*.response.delaySeconds

number · Optional; an omitted value is not a normal, negative, or zero value

Numeric delay seconds, at least 0. Do not infer an omitted value.

  • Minimum: 0

Field schema

{
  "minimum": 0,
  "type": "number",
  "description": "Numeric delay seconds, at least 0. Do not infer an omitted value."
}

effectIds

resources.*.response.effectIds

array · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "array",
  "items": {
    "minLength": 1,
    "maxLength": 128,
    "pattern": "\\S",
    "title": "Identifier",
    "x-usim": {
      "reference": {
        "collection": "events.effects",
        "label": "id"
      }
    },
    "type": "string",
    "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field."
  },
  "description": "Entries for effect ids. An empty list means no entries have been authored."
}

Identifier

resources.*.response.effectIds.*

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References events.effects using id as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "events.effects",
      "label": "id"
    }
  },
  "type": "string",
  "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field."
}

Identifier

resources.*.response.nextStateId

string · Optional; an omitted value is not a normal, negative, or zero value

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References events.states using title as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "events.states",
      "label": "title"
    }
  },
  "type": "string",
  "description": "Identifier of an existing events.states entry. Preserve the referenced entry when editing this field."
}

sourceIds

resources.*.sourceIds

array · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "array",
  "items": {
    "title": "Source",
    "maxLength": 128,
    "minLength": 1,
    "pattern": "\\S",
    "x-usim": {
      "reference": {
        "collection": "metadata.sources",
        "label": "citation",
        "excludeScheduled": false
      },
      "authoring": {}
    },
    "type": "string",
    "description": "Identifier of an existing metadata.sources entry. Preserve the referenced entry when editing this field."
  },
  "description": "Entries for source ids. An empty list means no entries have been authored."
}

Source

resources.*.sourceIds.*

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References metadata.sources using citation as the display label.

Field schema

{
  "title": "Source",
  "maxLength": 128,
  "minLength": 1,
  "pattern": "\\S",
  "x-usim": {
    "reference": {
      "collection": "metadata.sources",
      "label": "citation",
      "excludeScheduled": false
    },
    "authoring": {}
  },
  "type": "string",
  "description": "Identifier of an existing metadata.sources entry. Preserve the referenced entry when editing this field."
}

medication

resources.*.medication

object · Optional; an omitted value is not a normal, negative, or zero value

Reusable product definition. QuantityRatio is numerator Quantity / denominator Quantity; positive denominator is required.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "ingredient",
    "formulation",
    "allowedRoutes"
  ],
  "properties": {
    "ingredient": {
      "type": "string",
      "description": "The ingredient for this entry. Omit optional information that has not been specified."
    },
    "formulation": {
      "type": "string",
      "description": "The formulation for this entry. Omit optional information that has not been specified."
    },
    "concentration": {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "numerator",
        "denominator"
      ],
      "properties": {
        "numerator": {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "value",
            "unit"
          ],
          "properties": {
            "value": {
              "exclusiveMinimum": 0,
              "type": "number",
              "description": "Numeric value. Do not infer an omitted value."
            },
            "unit": {
              "type": "string",
              "description": "The unit for this entry. Omit optional information that has not been specified."
            }
          },
          "description": "Structured numerator details. Omitted optional values remain unspecified."
        },
        "denominator": {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "value",
            "unit"
          ],
          "properties": {
            "value": {
              "exclusiveMinimum": 0,
              "type": "number",
              "description": "Numeric value. Do not infer an omitted value."
            },
            "unit": {
              "type": "string",
              "description": "The unit for this entry. Omit optional information that has not been specified."
            }
          },
          "description": "Structured numerator details. Omitted optional values remain unspecified."
        }
      },
      "description": "Structured concentration details. Omitted optional values remain unspecified."
    },
    "allowedRoutes": {
      "minItems": 1,
      "uniqueItems": true,
      "type": "array",
      "items": {
        "type": "string",
        "description": "The allowed routes for this entry. Omit optional information that has not been specified."
      },
      "description": "Entries for allowed routes. An empty list means no entries have been authored."
    }
  },
  "description": "Reusable product definition. QuantityRatio is numerator Quantity / denominator Quantity; positive denominator is required."
}

ingredient

resources.*.medication.ingredient

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "The ingredient for this entry. Omit optional information that has not been specified."
}

formulation

resources.*.medication.formulation

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "The formulation for this entry. Omit optional information that has not been specified."
}

concentration

resources.*.medication.concentration

object · Optional; an omitted value is not a normal, negative, or zero value

Structured concentration details. Omitted optional values remain unspecified.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "numerator",
    "denominator"
  ],
  "properties": {
    "numerator": {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "value",
        "unit"
      ],
      "properties": {
        "value": {
          "exclusiveMinimum": 0,
          "type": "number",
          "description": "Numeric value. Do not infer an omitted value."
        },
        "unit": {
          "type": "string",
          "description": "The unit for this entry. Omit optional information that has not been specified."
        }
      },
      "description": "Structured numerator details. Omitted optional values remain unspecified."
    },
    "denominator": {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "value",
        "unit"
      ],
      "properties": {
        "value": {
          "exclusiveMinimum": 0,
          "type": "number",
          "description": "Numeric value. Do not infer an omitted value."
        },
        "unit": {
          "type": "string",
          "description": "The unit for this entry. Omit optional information that has not been specified."
        }
      },
      "description": "Structured numerator details. Omitted optional values remain unspecified."
    }
  },
  "description": "Structured concentration details. Omitted optional values remain unspecified."
}

numerator

resources.*.medication.concentration.numerator

object · Required when the parent is present

Structured numerator details. Omitted optional values remain unspecified.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "value",
    "unit"
  ],
  "properties": {
    "value": {
      "exclusiveMinimum": 0,
      "type": "number",
      "description": "Numeric value. Do not infer an omitted value."
    },
    "unit": {
      "type": "string",
      "description": "The unit for this entry. Omit optional information that has not been specified."
    }
  },
  "description": "Structured numerator details. Omitted optional values remain unspecified."
}

value

resources.*.medication.concentration.numerator.value

number · Required when the parent is present

Numeric value. Do not infer an omitted value.

Field schema

{
  "exclusiveMinimum": 0,
  "type": "number",
  "description": "Numeric value. Do not infer an omitted value."
}

unit

resources.*.medication.concentration.numerator.unit

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "The unit for this entry. Omit optional information that has not been specified."
}

denominator

resources.*.medication.concentration.denominator

object · Required when the parent is present

Structured numerator details. Omitted optional values remain unspecified.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "value",
    "unit"
  ],
  "properties": {
    "value": {
      "exclusiveMinimum": 0,
      "type": "number",
      "description": "Numeric value. Do not infer an omitted value."
    },
    "unit": {
      "type": "string",
      "description": "The unit for this entry. Omit optional information that has not been specified."
    }
  },
  "description": "Structured numerator details. Omitted optional values remain unspecified."
}

unit

resources.*.medication.concentration.denominator.unit

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "The unit for this entry. Omit optional information that has not been specified."
}

allowedRoutes

resources.*.medication.allowedRoutes

array · Required when the parent is present

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

Field schema

{
  "minItems": 1,
  "uniqueItems": true,
  "type": "array",
  "items": {
    "type": "string",
    "description": "The allowed routes for this entry. Omit optional information that has not been specified."
  },
  "description": "Entries for allowed routes. An empty list means no entries have been authored."
}

*

resources.*.medication.allowedRoutes.*

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "The allowed routes for this entry. Omit optional information that has not been specified."
}

consultation

resources.*.consultation

object · Optional; an omitted value is not a normal, negative, or zero value

A structured exchange with authored requests and responses rather than a one-line result.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "service",
    "actorId",
    "requestedInformation",
    "responseResultIds"
  ],
  "properties": {
    "service": {
      "type": "string",
      "description": "The service for this entry. Omit optional information that has not been specified."
    },
    "actorId": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "reference": {
          "collection": "environment.actors",
          "label": "name"
        }
      },
      "type": "string",
      "description": "Identifier of an existing environment.actors entry. Preserve the referenced entry when editing this field."
    },
    "requestedInformation": {
      "type": "array",
      "items": {
        "type": "string",
        "description": "The requested information for this entry. Omit optional information that has not been specified."
      },
      "description": "Entries for requested information. An empty list means no entries have been authored."
    },
    "responseResultIds": {
      "minItems": 0,
      "uniqueItems": true,
      "type": "array",
      "items": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "reference": {
            "collection": "resources.*.results",
            "label": "id"
          }
        },
        "type": "string",
        "description": "Identifier of an existing resources.*.results entry. Preserve the referenced entry when editing this field."
      },
      "description": "Entries for response result ids. An empty list means no entries have been authored."
    }
  },
  "description": "A structured exchange with authored requests and responses rather than a one-line result."
}

service

resources.*.consultation.service

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "The service for this entry. Omit optional information that has not been specified."
}

Identifier

resources.*.consultation.actorId

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References environment.actors using name as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "environment.actors",
      "label": "name"
    }
  },
  "type": "string",
  "description": "Identifier of an existing environment.actors entry. Preserve the referenced entry when editing this field."
}

requestedInformation

resources.*.consultation.requestedInformation

array · Required when the parent is present

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

Field schema

{
  "type": "array",
  "items": {
    "type": "string",
    "description": "The requested information for this entry. Omit optional information that has not been specified."
  },
  "description": "Entries for requested information. An empty list means no entries have been authored."
}

*

resources.*.consultation.requestedInformation.*

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "The requested information for this entry. Omit optional information that has not been specified."
}

responseResultIds

resources.*.consultation.responseResultIds

array · Required when the parent is present

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

Field schema

{
  "minItems": 0,
  "uniqueItems": true,
  "type": "array",
  "items": {
    "minLength": 1,
    "maxLength": 128,
    "pattern": "\\S",
    "title": "Identifier",
    "x-usim": {
      "reference": {
        "collection": "resources.*.results",
        "label": "id"
      }
    },
    "type": "string",
    "description": "Identifier of an existing resources.*.results entry. Preserve the referenced entry when editing this field."
  },
  "description": "Entries for response result ids. An empty list means no entries have been authored."
}

Identifier

resources.*.consultation.responseResultIds.*

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References resources.*.results using id as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "resources.*.results",
      "label": "id"
    }
  },
  "type": "string",
  "description": "Identifier of an existing resources.*.results entry. Preserve the referenced entry when editing this field."
}

procedure

resources.*.procedure

object · Optional; an omitted value is not a normal, negative, or zero value

Preparation and performance content with an explicit action deciding the authored result.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "indication",
    "requiredResourceIds",
    "steps",
    "outcomeActionId"
  ],
  "properties": {
    "indication": {
      "type": "string",
      "description": "The indication for this entry. Omit optional information that has not been specified."
    },
    "requiredResourceIds": {
      "minItems": 0,
      "uniqueItems": true,
      "type": "array",
      "items": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "reference": {
            "collection": "resources",
            "label": "name"
          }
        },
        "type": "string",
        "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
      },
      "description": "Entries for required resource ids. An empty list means no entries have been authored."
    },
    "steps": {
      "minItems": 1,
      "type": "array",
      "items": {
        "anyOf": [
          {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "id",
              "instruction",
              "evidence",
              "critical"
            ],
            "properties": {
              "id": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "authoring": {
                    "hidden": true
                  }
                },
                "type": "string",
                "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
              },
              "instruction": {
                "type": "string",
                "description": "The instruction for this entry. Omit optional information that has not been specified."
              },
              "evidence": {
                "const": "facilitator",
                "type": "string",
                "description": "The required literal value \"facilitator\"."
              },
              "critical": {
                "type": "boolean",
                "description": "Whether critical applies. Omitted optional values remain unspecified."
              }
            },
            "description": "Ordered observable steps. Action evidence requires actionId; facilitator evidence is recorded during the run."
          },
          {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "id",
              "instruction",
              "evidence",
              "actionId",
              "critical"
            ],
            "properties": {
              "id": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "authoring": {
                    "hidden": true
                  }
                },
                "type": "string",
                "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
              },
              "instruction": {
                "type": "string",
                "description": "The instruction for this entry. Omit optional information that has not been specified."
              },
              "evidence": {
                "const": "action",
                "type": "string",
                "description": "The required literal value \"action\"."
              },
              "actionId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "events.actions",
                    "label": "label"
                  }
                },
                "type": "string",
                "description": "Identifier of an existing events.actions entry. Preserve the referenced entry when editing this field."
              },
              "critical": {
                "type": "boolean",
                "description": "Whether critical applies. Omitted optional values remain unspecified."
              }
            },
            "description": "Ordered observable steps. Action evidence requires actionId; facilitator evidence is recorded during the run."
          }
        ],
        "description": "Ordered observable steps. Action evidence requires actionId; facilitator evidence is recorded during the run."
      },
      "description": "Entries for steps. An empty list means no entries have been authored."
    },
    "outcomeActionId": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "reference": {
          "collection": "events.actions",
          "label": "label"
        }
      },
      "type": "string",
      "description": "Identifier of an existing events.actions entry. Preserve the referenced entry when editing this field."
    },
    "complications": {
      "type": "array",
      "items": {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "description",
          "conditionId",
          "effectIds"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
          },
          "description": {
            "type": "string",
            "description": "The description for this entry. Omit optional information that has not been specified."
          },
          "conditionId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "events.conditions",
                "label": "id"
              }
            },
            "type": "string",
            "description": "Identifier of an existing events.conditions entry. Preserve the referenced entry when editing this field."
          },
          "effectIds": {
            "type": "array",
            "items": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "events.effects",
                  "label": "id"
                }
              },
              "type": "string",
              "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field."
            },
            "description": "Entries for effect ids. An empty list means no entries have been authored."
          }
        },
        "description": "Conditional authored consequences evaluated once at procedure completion, in listed order."
      },
      "description": "Entries for complications. An empty list means no entries have been authored."
    }
  },
  "description": "Preparation and performance content with an explicit action deciding the authored result."
}

indication

resources.*.procedure.indication

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "The indication for this entry. Omit optional information that has not been specified."
}

requiredResourceIds

resources.*.procedure.requiredResourceIds

array · Required when the parent is present

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

Field schema

{
  "minItems": 0,
  "uniqueItems": true,
  "type": "array",
  "items": {
    "minLength": 1,
    "maxLength": 128,
    "pattern": "\\S",
    "title": "Identifier",
    "x-usim": {
      "reference": {
        "collection": "resources",
        "label": "name"
      }
    },
    "type": "string",
    "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
  },
  "description": "Entries for required resource ids. An empty list means no entries have been authored."
}

Identifier

resources.*.procedure.requiredResourceIds.*

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References resources using name as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "resources",
      "label": "name"
    }
  },
  "type": "string",
  "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
}

steps

resources.*.procedure.steps

array · Required when the parent is present

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

Field schema

{
  "minItems": 1,
  "type": "array",
  "items": {
    "anyOf": [
      {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "instruction",
          "evidence",
          "critical"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
          },
          "instruction": {
            "type": "string",
            "description": "The instruction for this entry. Omit optional information that has not been specified."
          },
          "evidence": {
            "const": "facilitator",
            "type": "string",
            "description": "The required literal value \"facilitator\"."
          },
          "critical": {
            "type": "boolean",
            "description": "Whether critical applies. Omitted optional values remain unspecified."
          }
        },
        "description": "Ordered observable steps. Action evidence requires actionId; facilitator evidence is recorded during the run."
      },
      {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "instruction",
          "evidence",
          "actionId",
          "critical"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
          },
          "instruction": {
            "type": "string",
            "description": "The instruction for this entry. Omit optional information that has not been specified."
          },
          "evidence": {
            "const": "action",
            "type": "string",
            "description": "The required literal value \"action\"."
          },
          "actionId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "events.actions",
                "label": "label"
              }
            },
            "type": "string",
            "description": "Identifier of an existing events.actions entry. Preserve the referenced entry when editing this field."
          },
          "critical": {
            "type": "boolean",
            "description": "Whether critical applies. Omitted optional values remain unspecified."
          }
        },
        "description": "Ordered observable steps. Action evidence requires actionId; facilitator evidence is recorded during the run."
      }
    ],
    "description": "Ordered observable steps. Action evidence requires actionId; facilitator evidence is recorded during the run."
  },
  "description": "Entries for steps. An empty list means no entries have been authored."
}

*

resources.*.procedure.steps.*

Value · Required when the parent is present

Ordered observable steps. Action evidence requires actionId; facilitator evidence is recorded during the run.

Field schema

{
  "anyOf": [
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "id",
        "instruction",
        "evidence",
        "critical"
      ],
      "properties": {
        "id": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "authoring": {
              "hidden": true
            }
          },
          "type": "string",
          "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
        },
        "instruction": {
          "type": "string",
          "description": "The instruction for this entry. Omit optional information that has not been specified."
        },
        "evidence": {
          "const": "facilitator",
          "type": "string",
          "description": "The required literal value \"facilitator\"."
        },
        "critical": {
          "type": "boolean",
          "description": "Whether critical applies. Omitted optional values remain unspecified."
        }
      },
      "description": "Ordered observable steps. Action evidence requires actionId; facilitator evidence is recorded during the run."
    },
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "id",
        "instruction",
        "evidence",
        "actionId",
        "critical"
      ],
      "properties": {
        "id": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "authoring": {
              "hidden": true
            }
          },
          "type": "string",
          "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
        },
        "instruction": {
          "type": "string",
          "description": "The instruction for this entry. Omit optional information that has not been specified."
        },
        "evidence": {
          "const": "action",
          "type": "string",
          "description": "The required literal value \"action\"."
        },
        "actionId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "events.actions",
              "label": "label"
            }
          },
          "type": "string",
          "description": "Identifier of an existing events.actions entry. Preserve the referenced entry when editing this field."
        },
        "critical": {
          "type": "boolean",
          "description": "Whether critical applies. Omitted optional values remain unspecified."
        }
      },
      "description": "Ordered observable steps. Action evidence requires actionId; facilitator evidence is recorded during the run."
    }
  ],
  "description": "Ordered observable steps. Action evidence requires actionId; facilitator evidence is recorded during the run."
}

Identifier

resources.*.procedure.steps.*.id

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
}

instruction

resources.*.procedure.steps.*.instruction

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "The instruction for this entry. Omit optional information that has not been specified."
}

evidence

resources.*.procedure.steps.*.evidence

string · Required when the parent is present

The required literal value "facilitator".

Field schema

{
  "const": "facilitator",
  "type": "string",
  "description": "The required literal value \"facilitator\"."
}

critical

resources.*.procedure.steps.*.critical

boolean · Required when the parent is present

Whether critical applies. Omitted optional values remain unspecified.

Field schema

{
  "type": "boolean",
  "description": "Whether critical applies. Omitted optional values remain unspecified."
}

Identifier

resources.*.procedure.steps.*.actionId

string · Optional; an omitted value is not a normal, negative, or zero value

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References events.actions using label as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "events.actions",
      "label": "label"
    }
  },
  "type": "string",
  "description": "Identifier of an existing events.actions entry. Preserve the referenced entry when editing this field."
}

Identifier

resources.*.procedure.outcomeActionId

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References events.actions using label as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "events.actions",
      "label": "label"
    }
  },
  "type": "string",
  "description": "Identifier of an existing events.actions entry. Preserve the referenced entry when editing this field."
}

complications

resources.*.procedure.complications

array · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "array",
  "items": {
    "additionalProperties": false,
    "type": "object",
    "required": [
      "id",
      "description",
      "conditionId",
      "effectIds"
    ],
    "properties": {
      "id": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "authoring": {
            "hidden": true
          }
        },
        "type": "string",
        "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
      },
      "description": {
        "type": "string",
        "description": "The description for this entry. Omit optional information that has not been specified."
      },
      "conditionId": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "reference": {
            "collection": "events.conditions",
            "label": "id"
          }
        },
        "type": "string",
        "description": "Identifier of an existing events.conditions entry. Preserve the referenced entry when editing this field."
      },
      "effectIds": {
        "type": "array",
        "items": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "events.effects",
              "label": "id"
            }
          },
          "type": "string",
          "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field."
        },
        "description": "Entries for effect ids. An empty list means no entries have been authored."
      }
    },
    "description": "Conditional authored consequences evaluated once at procedure completion, in listed order."
  },
  "description": "Entries for complications. An empty list means no entries have been authored."
}

*

resources.*.procedure.complications.*

object · Required when the parent is present

Conditional authored consequences evaluated once at procedure completion, in listed order.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "id",
    "description",
    "conditionId",
    "effectIds"
  ],
  "properties": {
    "id": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "authoring": {
          "hidden": true
        }
      },
      "type": "string",
      "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
    },
    "description": {
      "type": "string",
      "description": "The description for this entry. Omit optional information that has not been specified."
    },
    "conditionId": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "reference": {
          "collection": "events.conditions",
          "label": "id"
        }
      },
      "type": "string",
      "description": "Identifier of an existing events.conditions entry. Preserve the referenced entry when editing this field."
    },
    "effectIds": {
      "type": "array",
      "items": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "reference": {
            "collection": "events.effects",
            "label": "id"
          }
        },
        "type": "string",
        "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field."
      },
      "description": "Entries for effect ids. An empty list means no entries have been authored."
    }
  },
  "description": "Conditional authored consequences evaluated once at procedure completion, in listed order."
}

Identifier

resources.*.procedure.complications.*.id

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
}

description

resources.*.procedure.complications.*.description

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "The description for this entry. Omit optional information that has not been specified."
}

Identifier

resources.*.procedure.complications.*.conditionId

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References events.conditions using id as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "events.conditions",
      "label": "id"
    }
  },
  "type": "string",
  "description": "Identifier of an existing events.conditions entry. Preserve the referenced entry when editing this field."
}

effectIds

resources.*.procedure.complications.*.effectIds

array · Required when the parent is present

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

Field schema

{
  "type": "array",
  "items": {
    "minLength": 1,
    "maxLength": 128,
    "pattern": "\\S",
    "title": "Identifier",
    "x-usim": {
      "reference": {
        "collection": "events.effects",
        "label": "id"
      }
    },
    "type": "string",
    "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field."
  },
  "description": "Entries for effect ids. An empty list means no entries have been authored."
}

Identifier

resources.*.procedure.complications.*.effectIds.*

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References events.effects using id as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "events.effects",
      "label": "id"
    }
  },
  "type": "string",
  "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field."
}

results

resources.*.results

array · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "array",
  "items": {
    "additionalProperties": false,
    "type": "object",
    "required": [
      "id",
      "content",
      "observationIds",
      "assetIds",
      "disclosure"
    ],
    "properties": {
      "id": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "authoring": {
            "hidden": true
          }
        },
        "type": "string",
        "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
      },
      "content": {
        "type": "string",
        "description": "The content for this entry. Omit optional information that has not been specified."
      },
      "observationIds": {
        "minItems": 0,
        "uniqueItems": true,
        "type": "array",
        "items": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "observations",
              "label": "code"
            }
          },
          "type": "string",
          "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
        },
        "description": "Entries for observation ids. An empty list means no entries have been authored."
      },
      "assetIds": {
        "minItems": 0,
        "uniqueItems": true,
        "type": "array",
        "items": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "assets",
              "label": "description"
            }
          },
          "type": "string",
          "description": "Identifier of an existing assets entry. Preserve the referenced entry when editing this field."
        },
        "description": "Entries for asset ids. An empty list means no entries have been authored."
      },
      "disclosure": {
        "anyOf": [
          {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "audience",
              "mode"
            ],
            "properties": {
              "audience": {
                "minItems": 1,
                "uniqueItems": true,
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "const": "learner",
                      "type": "string",
                      "description": "The required literal value \"learner\"."
                    },
                    {
                      "const": "facilitator",
                      "type": "string",
                      "description": "The required literal value \"facilitator\"."
                    }
                  ],
                  "title": "Audience",
                  "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                },
                "title": "Audience",
                "description": "Authorized output audiences. UI hints do not replace output filtering."
              },
              "mode": {
                "anyOf": [
                  {
                    "const": "initial",
                    "type": "string",
                    "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                  },
                  {
                    "const": "facilitator",
                    "type": "string",
                    "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                  }
                ],
                "title": "Mode",
                "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
              }
            },
            "description": "Structured disclosure details. Omitted optional values remain unspecified."
          },
          {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "audience",
              "mode",
              "resourceId"
            ],
            "properties": {
              "audience": {
                "minItems": 1,
                "uniqueItems": true,
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "const": "learner",
                      "type": "string",
                      "description": "The required literal value \"learner\"."
                    },
                    {
                      "const": "facilitator",
                      "type": "string",
                      "description": "The required literal value \"facilitator\"."
                    }
                  ],
                  "title": "Audience",
                  "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                },
                "title": "Audience",
                "description": "Authorized output audiences. UI hints do not replace output filtering."
              },
              "mode": {
                "const": "on-resource-response",
                "type": "string",
                "title": "Mode",
                "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
              },
              "resourceId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "resources",
                    "label": "name"
                  }
                },
                "type": "string",
                "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
              }
            },
            "description": "Structured disclosure details. Omitted optional values remain unspecified."
          },
          {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "audience",
              "mode",
              "actionId"
            ],
            "properties": {
              "audience": {
                "minItems": 1,
                "uniqueItems": true,
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "const": "learner",
                      "type": "string",
                      "description": "The required literal value \"learner\"."
                    },
                    {
                      "const": "facilitator",
                      "type": "string",
                      "description": "The required literal value \"facilitator\"."
                    }
                  ],
                  "title": "Audience",
                  "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                },
                "title": "Audience",
                "description": "Authorized output audiences. UI hints do not replace output filtering."
              },
              "mode": {
                "const": "on-action",
                "type": "string",
                "title": "Mode",
                "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
              },
              "actionId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "events.actions",
                    "label": "label"
                  }
                },
                "type": "string",
                "description": "Successful completion of this action reveals the entry."
              }
            },
            "description": "Structured disclosure details. Omitted optional values remain unspecified."
          },
          {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "audience",
              "mode",
              "conditionId"
            ],
            "properties": {
              "audience": {
                "minItems": 1,
                "uniqueItems": true,
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "const": "learner",
                      "type": "string",
                      "description": "The required literal value \"learner\"."
                    },
                    {
                      "const": "facilitator",
                      "type": "string",
                      "description": "The required literal value \"facilitator\"."
                    }
                  ],
                  "title": "Audience",
                  "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
                },
                "title": "Audience",
                "description": "Authorized output audiences. UI hints do not replace output filtering."
              },
              "mode": {
                "const": "on-condition",
                "type": "string",
                "title": "Mode",
                "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
              },
              "conditionId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "events.conditions",
                    "label": "id"
                  }
                },
                "type": "string",
                "description": "Reveal when the condition first becomes true; reject unrelated trigger fields."
              }
            },
            "description": "Structured disclosure details. Omitted optional values remain unspecified."
          }
        ],
        "title": "Disclosure",
        "description": "Select one of the declared Disclosure alternatives; use the fields belonging to that alternative."
      },
      "interpretation": {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "facilitator"
        ],
        "properties": {
          "learner": {
            "type": "string",
            "description": "The learner for this entry. Omit optional information that has not been specified."
          },
          "facilitator": {
            "type": "string",
            "description": "The facilitator for this entry. Omit optional information that has not been specified."
          }
        },
        "description": "Separate diagnostic or teaching explanation from the raw learner result."
      },
      "panelName": {
        "type": "string",
        "description": "Human-readable panel grouping; does not inject assumed analytes."
      },
      "specimenStatus": {
        "anyOf": [
          {
            "const": "adequate",
            "type": "string",
            "description": "Allows rejected or unavailable specimens to drive a repeat-collection branch."
          },
          {
            "const": "inadequate",
            "type": "string",
            "description": "Allows rejected or unavailable specimens to drive a repeat-collection branch."
          },
          {
            "const": "not-collected",
            "type": "string",
            "description": "Allows rejected or unavailable specimens to drive a repeat-collection branch."
          }
        ],
        "description": "Allows rejected or unavailable specimens to drive a repeat-collection branch."
      }
    },
    "description": "Named result combines authored report text, structured observations, media, and audience rules."
  },
  "description": "Entries for results. An empty list means no entries have been authored."
}

*

resources.*.results.*

object · Required when the parent is present

Named result combines authored report text, structured observations, media, and audience rules.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "id",
    "content",
    "observationIds",
    "assetIds",
    "disclosure"
  ],
  "properties": {
    "id": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "authoring": {
          "hidden": true
        }
      },
      "type": "string",
      "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
    },
    "content": {
      "type": "string",
      "description": "The content for this entry. Omit optional information that has not been specified."
    },
    "observationIds": {
      "minItems": 0,
      "uniqueItems": true,
      "type": "array",
      "items": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "reference": {
            "collection": "observations",
            "label": "code"
          }
        },
        "type": "string",
        "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
      },
      "description": "Entries for observation ids. An empty list means no entries have been authored."
    },
    "assetIds": {
      "minItems": 0,
      "uniqueItems": true,
      "type": "array",
      "items": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "reference": {
            "collection": "assets",
            "label": "description"
          }
        },
        "type": "string",
        "description": "Identifier of an existing assets entry. Preserve the referenced entry when editing this field."
      },
      "description": "Entries for asset ids. An empty list means no entries have been authored."
    },
    "disclosure": {
      "anyOf": [
        {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "audience",
            "mode"
          ],
          "properties": {
            "audience": {
              "minItems": 1,
              "uniqueItems": true,
              "type": "array",
              "items": {
                "anyOf": [
                  {
                    "const": "learner",
                    "type": "string",
                    "description": "The required literal value \"learner\"."
                  },
                  {
                    "const": "facilitator",
                    "type": "string",
                    "description": "The required literal value \"facilitator\"."
                  }
                ],
                "title": "Audience",
                "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
              },
              "title": "Audience",
              "description": "Authorized output audiences. UI hints do not replace output filtering."
            },
            "mode": {
              "anyOf": [
                {
                  "const": "initial",
                  "type": "string",
                  "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                },
                {
                  "const": "facilitator",
                  "type": "string",
                  "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
                }
              ],
              "title": "Mode",
              "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
            }
          },
          "description": "Structured disclosure details. Omitted optional values remain unspecified."
        },
        {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "audience",
            "mode",
            "resourceId"
          ],
          "properties": {
            "audience": {
              "minItems": 1,
              "uniqueItems": true,
              "type": "array",
              "items": {
                "anyOf": [
                  {
                    "const": "learner",
                    "type": "string",
                    "description": "The required literal value \"learner\"."
                  },
                  {
                    "const": "facilitator",
                    "type": "string",
                    "description": "The required literal value \"facilitator\"."
                  }
                ],
                "title": "Audience",
                "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
              },
              "title": "Audience",
              "description": "Authorized output audiences. UI hints do not replace output filtering."
            },
            "mode": {
              "const": "on-resource-response",
              "type": "string",
              "title": "Mode",
              "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
            },
            "resourceId": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "resources",
                  "label": "name"
                }
              },
              "type": "string",
              "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
            }
          },
          "description": "Structured disclosure details. Omitted optional values remain unspecified."
        },
        {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "audience",
            "mode",
            "actionId"
          ],
          "properties": {
            "audience": {
              "minItems": 1,
              "uniqueItems": true,
              "type": "array",
              "items": {
                "anyOf": [
                  {
                    "const": "learner",
                    "type": "string",
                    "description": "The required literal value \"learner\"."
                  },
                  {
                    "const": "facilitator",
                    "type": "string",
                    "description": "The required literal value \"facilitator\"."
                  }
                ],
                "title": "Audience",
                "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
              },
              "title": "Audience",
              "description": "Authorized output audiences. UI hints do not replace output filtering."
            },
            "mode": {
              "const": "on-action",
              "type": "string",
              "title": "Mode",
              "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
            },
            "actionId": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "events.actions",
                  "label": "label"
                }
              },
              "type": "string",
              "description": "Successful completion of this action reveals the entry."
            }
          },
          "description": "Structured disclosure details. Omitted optional values remain unspecified."
        },
        {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "audience",
            "mode",
            "conditionId"
          ],
          "properties": {
            "audience": {
              "minItems": 1,
              "uniqueItems": true,
              "type": "array",
              "items": {
                "anyOf": [
                  {
                    "const": "learner",
                    "type": "string",
                    "description": "The required literal value \"learner\"."
                  },
                  {
                    "const": "facilitator",
                    "type": "string",
                    "description": "The required literal value \"facilitator\"."
                  }
                ],
                "title": "Audience",
                "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
              },
              "title": "Audience",
              "description": "Authorized output audiences. UI hints do not replace output filtering."
            },
            "mode": {
              "const": "on-condition",
              "type": "string",
              "title": "Mode",
              "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
            },
            "conditionId": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "events.conditions",
                  "label": "id"
                }
              },
              "type": "string",
              "description": "Reveal when the condition first becomes true; reject unrelated trigger fields."
            }
          },
          "description": "Structured disclosure details. Omitted optional values remain unspecified."
        }
      ],
      "title": "Disclosure",
      "description": "Select one of the declared Disclosure alternatives; use the fields belonging to that alternative."
    },
    "interpretation": {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "facilitator"
      ],
      "properties": {
        "learner": {
          "type": "string",
          "description": "The learner for this entry. Omit optional information that has not been specified."
        },
        "facilitator": {
          "type": "string",
          "description": "The facilitator for this entry. Omit optional information that has not been specified."
        }
      },
      "description": "Separate diagnostic or teaching explanation from the raw learner result."
    },
    "panelName": {
      "type": "string",
      "description": "Human-readable panel grouping; does not inject assumed analytes."
    },
    "specimenStatus": {
      "anyOf": [
        {
          "const": "adequate",
          "type": "string",
          "description": "Allows rejected or unavailable specimens to drive a repeat-collection branch."
        },
        {
          "const": "inadequate",
          "type": "string",
          "description": "Allows rejected or unavailable specimens to drive a repeat-collection branch."
        },
        {
          "const": "not-collected",
          "type": "string",
          "description": "Allows rejected or unavailable specimens to drive a repeat-collection branch."
        }
      ],
      "description": "Allows rejected or unavailable specimens to drive a repeat-collection branch."
    }
  },
  "description": "Named result combines authored report text, structured observations, media, and audience rules."
}

Identifier

resources.*.results.*.id

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
}

content

resources.*.results.*.content

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "The content for this entry. Omit optional information that has not been specified."
}

observationIds

resources.*.results.*.observationIds

array · Required when the parent is present

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

Field schema

{
  "minItems": 0,
  "uniqueItems": true,
  "type": "array",
  "items": {
    "minLength": 1,
    "maxLength": 128,
    "pattern": "\\S",
    "title": "Identifier",
    "x-usim": {
      "reference": {
        "collection": "observations",
        "label": "code"
      }
    },
    "type": "string",
    "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
  },
  "description": "Entries for observation ids. An empty list means no entries have been authored."
}

Identifier

resources.*.results.*.observationIds.*

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References observations using code as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "observations",
      "label": "code"
    }
  },
  "type": "string",
  "description": "Identifier of an existing observations entry. Preserve the referenced entry when editing this field."
}

assetIds

resources.*.results.*.assetIds

array · Required when the parent is present

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

Field schema

{
  "minItems": 0,
  "uniqueItems": true,
  "type": "array",
  "items": {
    "minLength": 1,
    "maxLength": 128,
    "pattern": "\\S",
    "title": "Identifier",
    "x-usim": {
      "reference": {
        "collection": "assets",
        "label": "description"
      }
    },
    "type": "string",
    "description": "Identifier of an existing assets entry. Preserve the referenced entry when editing this field."
  },
  "description": "Entries for asset ids. An empty list means no entries have been authored."
}

Identifier

resources.*.results.*.assetIds.*

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References assets using description as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "assets",
      "label": "description"
    }
  },
  "type": "string",
  "description": "Identifier of an existing assets entry. Preserve the referenced entry when editing this field."
}

Disclosure

resources.*.results.*.disclosure

Value · Required when the parent is present

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

Field schema

{
  "anyOf": [
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "audience",
        "mode"
      ],
      "properties": {
        "audience": {
          "minItems": 1,
          "uniqueItems": true,
          "type": "array",
          "items": {
            "anyOf": [
              {
                "const": "learner",
                "type": "string",
                "description": "The required literal value \"learner\"."
              },
              {
                "const": "facilitator",
                "type": "string",
                "description": "The required literal value \"facilitator\"."
              }
            ],
            "title": "Audience",
            "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
          },
          "title": "Audience",
          "description": "Authorized output audiences. UI hints do not replace output filtering."
        },
        "mode": {
          "anyOf": [
            {
              "const": "initial",
              "type": "string",
              "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
            },
            {
              "const": "facilitator",
              "type": "string",
              "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
            }
          ],
          "title": "Mode",
          "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
        }
      },
      "description": "Structured disclosure details. Omitted optional values remain unspecified."
    },
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "audience",
        "mode",
        "resourceId"
      ],
      "properties": {
        "audience": {
          "minItems": 1,
          "uniqueItems": true,
          "type": "array",
          "items": {
            "anyOf": [
              {
                "const": "learner",
                "type": "string",
                "description": "The required literal value \"learner\"."
              },
              {
                "const": "facilitator",
                "type": "string",
                "description": "The required literal value \"facilitator\"."
              }
            ],
            "title": "Audience",
            "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
          },
          "title": "Audience",
          "description": "Authorized output audiences. UI hints do not replace output filtering."
        },
        "mode": {
          "const": "on-resource-response",
          "type": "string",
          "title": "Mode",
          "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
        },
        "resourceId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "resources",
              "label": "name"
            }
          },
          "type": "string",
          "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
        }
      },
      "description": "Structured disclosure details. Omitted optional values remain unspecified."
    },
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "audience",
        "mode",
        "actionId"
      ],
      "properties": {
        "audience": {
          "minItems": 1,
          "uniqueItems": true,
          "type": "array",
          "items": {
            "anyOf": [
              {
                "const": "learner",
                "type": "string",
                "description": "The required literal value \"learner\"."
              },
              {
                "const": "facilitator",
                "type": "string",
                "description": "The required literal value \"facilitator\"."
              }
            ],
            "title": "Audience",
            "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
          },
          "title": "Audience",
          "description": "Authorized output audiences. UI hints do not replace output filtering."
        },
        "mode": {
          "const": "on-action",
          "type": "string",
          "title": "Mode",
          "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
        },
        "actionId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "events.actions",
              "label": "label"
            }
          },
          "type": "string",
          "description": "Successful completion of this action reveals the entry."
        }
      },
      "description": "Structured disclosure details. Omitted optional values remain unspecified."
    },
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "audience",
        "mode",
        "conditionId"
      ],
      "properties": {
        "audience": {
          "minItems": 1,
          "uniqueItems": true,
          "type": "array",
          "items": {
            "anyOf": [
              {
                "const": "learner",
                "type": "string",
                "description": "The required literal value \"learner\"."
              },
              {
                "const": "facilitator",
                "type": "string",
                "description": "The required literal value \"facilitator\"."
              }
            ],
            "title": "Audience",
            "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
          },
          "title": "Audience",
          "description": "Authorized output audiences. UI hints do not replace output filtering."
        },
        "mode": {
          "const": "on-condition",
          "type": "string",
          "title": "Mode",
          "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
        },
        "conditionId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "events.conditions",
              "label": "id"
            }
          },
          "type": "string",
          "description": "Reveal when the condition first becomes true; reject unrelated trigger fields."
        }
      },
      "description": "Structured disclosure details. Omitted optional values remain unspecified."
    }
  ],
  "title": "Disclosure",
  "description": "Select one of the declared Disclosure alternatives; use the fields belonging to that alternative."
}

Audience

resources.*.results.*.disclosure.audience

array · Required when the parent is present

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

Field schema

{
  "minItems": 1,
  "uniqueItems": true,
  "type": "array",
  "items": {
    "anyOf": [
      {
        "const": "learner",
        "type": "string",
        "description": "The required literal value \"learner\"."
      },
      {
        "const": "facilitator",
        "type": "string",
        "description": "The required literal value \"facilitator\"."
      }
    ],
    "title": "Audience",
    "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
  },
  "title": "Audience",
  "description": "Authorized output audiences. UI hints do not replace output filtering."
}

Audience

resources.*.results.*.disclosure.audience.*

Value · Required when the parent is present

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

Allowed values: learner, facilitator

Field schema

{
  "anyOf": [
    {
      "const": "learner",
      "type": "string",
      "description": "The required literal value \"learner\"."
    },
    {
      "const": "facilitator",
      "type": "string",
      "description": "The required literal value \"facilitator\"."
    }
  ],
  "title": "Audience",
  "description": "Select one of the declared Audience alternatives; use the fields belonging to that alternative."
}

Mode

resources.*.results.*.disclosure.mode

Value · Required when the parent is present

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

Allowed values: initial, facilitator

Field schema

{
  "anyOf": [
    {
      "const": "initial",
      "type": "string",
      "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
    },
    {
      "const": "facilitator",
      "type": "string",
      "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
    }
  ],
  "title": "Mode",
  "description": "Initial reveals at baseline; other modes require an action, condition, or facilitator release."
}

Identifier

resources.*.results.*.disclosure.resourceId

string · Optional; an omitted value is not a normal, negative, or zero value

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References resources using name as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "resources",
      "label": "name"
    }
  },
  "type": "string",
  "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
}

Identifier

resources.*.results.*.disclosure.actionId

string · Optional; an omitted value is not a normal, negative, or zero value

Successful completion of this action reveals the entry.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References events.actions using label as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "events.actions",
      "label": "label"
    }
  },
  "type": "string",
  "description": "Successful completion of this action reveals the entry."
}

Identifier

resources.*.results.*.disclosure.conditionId

string · Optional; an omitted value is not a normal, negative, or zero value

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References events.conditions using id as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "events.conditions",
      "label": "id"
    }
  },
  "type": "string",
  "description": "Reveal when the condition first becomes true; reject unrelated trigger fields."
}

interpretation

resources.*.results.*.interpretation

object · Optional; an omitted value is not a normal, negative, or zero value

Separate diagnostic or teaching explanation from the raw learner result.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "facilitator"
  ],
  "properties": {
    "learner": {
      "type": "string",
      "description": "The learner for this entry. Omit optional information that has not been specified."
    },
    "facilitator": {
      "type": "string",
      "description": "The facilitator for this entry. Omit optional information that has not been specified."
    }
  },
  "description": "Separate diagnostic or teaching explanation from the raw learner result."
}

learner

resources.*.results.*.interpretation.learner

string · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "string",
  "description": "The learner for this entry. Omit optional information that has not been specified."
}

facilitator

resources.*.results.*.interpretation.facilitator

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "The facilitator for this entry. Omit optional information that has not been specified."
}

panelName

resources.*.results.*.panelName

string · Optional; an omitted value is not a normal, negative, or zero value

Human-readable panel grouping; does not inject assumed analytes.

Field schema

{
  "type": "string",
  "description": "Human-readable panel grouping; does not inject assumed analytes."
}

specimenStatus

resources.*.results.*.specimenStatus

Value · Optional; an omitted value is not a normal, negative, or zero value

Allows rejected or unavailable specimens to drive a repeat-collection branch.

Allowed values: adequate, inadequate, not-collected

Field schema

{
  "anyOf": [
    {
      "const": "adequate",
      "type": "string",
      "description": "Allows rejected or unavailable specimens to drive a repeat-collection branch."
    },
    {
      "const": "inadequate",
      "type": "string",
      "description": "Allows rejected or unavailable specimens to drive a repeat-collection branch."
    },
    {
      "const": "not-collected",
      "type": "string",
      "description": "Allows rejected or unavailable specimens to drive a repeat-collection branch."
    }
  ],
  "description": "Allows rejected or unavailable specimens to drive a repeat-collection branch."
}

events

events

object · Required when the parent is present

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

Field schema

{
  "additionalProperties": false,
  "x-usim": {
    "authoring": {}
  },
  "type": "object",
  "required": [
    "states",
    "actions"
  ],
  "properties": {
    "flags": {
      "type": "array",
      "items": {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "initialValue"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
          },
          "initialValue": {
            "type": "boolean",
            "description": "Whether initial value applies. Omitted optional values remain unspecified."
          }
        },
        "description": "Concurrent facts such as ownership-agreed; flags coexist independently of the single active phase."
      },
      "description": "Entries for flags. An empty list means no entries have been authored."
    },
    "conditions": {
      "type": "array",
      "items": {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "all"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
          },
          "all": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "additionalProperties": false,
                  "type": "object",
                  "required": [
                    "targetId",
                    "operator",
                    "value"
                  ],
                  "properties": {
                    "targetId": {
                      "minLength": 1,
                      "maxLength": 128,
                      "pattern": "\\S",
                      "title": "Identifier",
                      "x-usim": {
                        "authoring": {
                          "hidden": true
                        }
                      },
                      "type": "string",
                      "description": "The Identifier for this entry. Omit optional information that has not been specified."
                    },
                    "operator": {
                      "anyOf": [
                        {
                          "const": "eq",
                          "type": "string",
                          "description": "The required literal value \"eq\"."
                        },
                        {
                          "const": "ne",
                          "type": "string",
                          "description": "The required literal value \"ne\"."
                        },
                        {
                          "const": "lt",
                          "type": "string",
                          "description": "The required literal value \"lt\"."
                        },
                        {
                          "const": "lte",
                          "type": "string",
                          "description": "The required literal value \"lte\"."
                        },
                        {
                          "const": "gt",
                          "type": "string",
                          "description": "The required literal value \"gt\"."
                        },
                        {
                          "const": "gte",
                          "type": "string",
                          "description": "The required literal value \"gte\"."
                        }
                      ],
                      "description": "Select one of the declared operator alternatives; use the fields belonging to that alternative."
                    },
                    "value": {
                      "type": "number",
                      "description": "Numeric value. Do not infer an omitted value."
                    }
                  },
                  "description": "Operand types must match the target. Boolean flags support only eq/ne; numeric comparisons use the variable's declared unit."
                },
                {
                  "additionalProperties": false,
                  "type": "object",
                  "required": [
                    "targetId",
                    "operator",
                    "value"
                  ],
                  "properties": {
                    "targetId": {
                      "minLength": 1,
                      "maxLength": 128,
                      "pattern": "\\S",
                      "title": "Identifier",
                      "x-usim": {
                        "authoring": {
                          "hidden": true
                        }
                      },
                      "type": "string",
                      "description": "The Identifier for this entry. Omit optional information that has not been specified."
                    },
                    "operator": {
                      "anyOf": [
                        {
                          "const": "eq",
                          "type": "string",
                          "description": "The required literal value \"eq\"."
                        },
                        {
                          "const": "ne",
                          "type": "string",
                          "description": "The required literal value \"ne\"."
                        }
                      ],
                      "description": "Select one of the declared operator alternatives; use the fields belonging to that alternative."
                    },
                    "value": {
                      "type": "boolean",
                      "description": "Whether value applies. Omitted optional values remain unspecified."
                    }
                  },
                  "description": "Operand types must match the target. Boolean flags support only eq/ne; numeric comparisons use the variable's declared unit."
                }
              ],
              "description": "Operand types must match the target. Boolean flags support only eq/ne; numeric comparisons use the variable's declared unit."
            },
            "description": "Entries for all. An empty list means no entries have been authored."
          }
        },
        "description": "All predicates must be true; empty all is explicitly true. No recursive or executable expression text."
      },
      "description": "Named, bounded predicates referenced by actions, states, and cues."
    },
    "schedules": {
      "title": "Schedules",
      "type": "array",
      "items": {
        "anyOf": [
          {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "id",
              "delaySeconds",
              "priority",
              "effectIds",
              "anchor"
            ],
            "properties": {
              "id": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "authoring": {
                    "hidden": true
                  }
                },
                "type": "string",
                "description": "Named event allows explicit cancellation."
              },
              "label": {
                "type": "string",
                "description": "The label for this entry. Omit optional information that has not been specified."
              },
              "description": {
                "type": "string",
                "description": "The description for this entry. Omit optional information that has not been specified."
              },
              "resourceId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "resources",
                    "label": "name"
                  }
                },
                "type": "string",
                "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
              },
              "cancelOnActionIds": {
                "minItems": 0,
                "uniqueItems": true,
                "type": "array",
                "items": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "reference": {
                      "collection": "events.actions",
                      "label": "label"
                    }
                  },
                  "type": "string",
                  "description": "A learner action whose completion prevents this scheduled transition from firing."
                },
                "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."
              },
              "delaySeconds": {
                "exclusiveMinimum": 0,
                "type": "number",
                "description": "Simulated seconds after the declared schedule anchor. State-entry schedules follow onAnchorStateExit and cancellation references; action timing is separate."
              },
              "conditionId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "events.conditions",
                    "label": "id"
                  }
                },
                "type": "string",
                "description": "Evaluate when due. False skips that occurrence; it does not poll until true."
              },
              "priority": {
                "type": "integer",
                "description": "Explicit ordering for simultaneous events. Equal priority uses schedule ID lexical order."
              },
              "effectIds": {
                "type": "array",
                "items": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "reference": {
                      "collection": "events.effects",
                      "label": "id"
                    }
                  },
                  "type": "string",
                  "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field."
                },
                "description": "Operations applied atomically if the due event and transition guards are valid."
              },
              "nextStateId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "events.states",
                    "label": "title"
                  }
                },
                "type": "string",
                "description": "Optional phase transition; omit for a result or actor cue that does not move the main phase."
              },
              "repeat": {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "intervalSeconds",
                  "count"
                ],
                "properties": {
                  "intervalSeconds": {
                    "exclusiveMinimum": 0,
                    "type": "number",
                    "description": "Numeric interval seconds. Do not infer an omitted value."
                  },
                  "count": {
                    "minimum": 1,
                    "type": "integer",
                    "description": "Numeric count, at least 1. Do not infer an omitted value."
                  }
                },
                "description": "Count includes the initial occurrence. Finite repetition prevents unbounded schedules."
              },
              "anchor": {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "kind"
                ],
                "properties": {
                  "kind": {
                    "const": "scenario-start",
                    "type": "string",
                    "description": "The required literal value \"scenario-start\"."
                  }
                },
                "description": "State/action anchors require the corresponding ID. Scenario-start prohibits refId."
              }
            },
            "description": "Structured schedules details. Omitted optional values remain unspecified."
          },
          {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "id",
              "delaySeconds",
              "priority",
              "effectIds",
              "anchor"
            ],
            "properties": {
              "id": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "authoring": {
                    "hidden": true
                  }
                },
                "type": "string",
                "description": "Named event allows explicit cancellation."
              },
              "label": {
                "type": "string",
                "description": "The label for this entry. Omit optional information that has not been specified."
              },
              "description": {
                "type": "string",
                "description": "The description for this entry. Omit optional information that has not been specified."
              },
              "resourceId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "resources",
                    "label": "name"
                  }
                },
                "type": "string",
                "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
              },
              "cancelOnActionIds": {
                "minItems": 0,
                "uniqueItems": true,
                "type": "array",
                "items": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "reference": {
                      "collection": "events.actions",
                      "label": "label"
                    }
                  },
                  "type": "string",
                  "description": "A learner action whose completion prevents this scheduled transition from firing."
                },
                "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."
              },
              "delaySeconds": {
                "exclusiveMinimum": 0,
                "type": "number",
                "description": "Simulated seconds after the declared schedule anchor. State-entry schedules follow onAnchorStateExit and cancellation references; action timing is separate."
              },
              "conditionId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "events.conditions",
                    "label": "id"
                  }
                },
                "type": "string",
                "description": "Evaluate when due. False skips that occurrence; it does not poll until true."
              },
              "priority": {
                "type": "integer",
                "description": "Explicit ordering for simultaneous events. Equal priority uses schedule ID lexical order."
              },
              "effectIds": {
                "type": "array",
                "items": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "reference": {
                      "collection": "events.effects",
                      "label": "id"
                    }
                  },
                  "type": "string",
                  "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field."
                },
                "description": "Operations applied atomically if the due event and transition guards are valid."
              },
              "nextStateId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "events.states",
                    "label": "title"
                  }
                },
                "type": "string",
                "description": "Optional phase transition; omit for a result or actor cue that does not move the main phase."
              },
              "repeat": {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "intervalSeconds",
                  "count"
                ],
                "properties": {
                  "intervalSeconds": {
                    "exclusiveMinimum": 0,
                    "type": "number",
                    "description": "Numeric interval seconds. Do not infer an omitted value."
                  },
                  "count": {
                    "minimum": 1,
                    "type": "integer",
                    "description": "Numeric count, at least 1. Do not infer an omitted value."
                  }
                },
                "description": "Count includes the initial occurrence. Finite repetition prevents unbounded schedules."
              },
              "anchor": {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "kind",
                  "refId"
                ],
                "properties": {
                  "kind": {
                    "const": "action-completion",
                    "type": "string",
                    "description": "The required literal value \"action-completion\"."
                  },
                  "refId": {
                    "minLength": 1,
                    "maxLength": 128,
                    "pattern": "\\S",
                    "title": "Identifier",
                    "x-usim": {
                      "reference": {
                        "collection": "events.actions",
                        "label": "label"
                      }
                    },
                    "type": "string",
                    "description": "Identifier of an existing events.actions entry. Preserve the referenced entry when editing this field."
                  }
                },
                "description": "State/action anchors require the corresponding ID. Scenario-start prohibits refId."
              }
            },
            "description": "Structured schedules details. Omitted optional values remain unspecified."
          },
          {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "id",
              "delaySeconds",
              "priority",
              "effectIds",
              "anchor",
              "onAnchorStateExit"
            ],
            "properties": {
              "id": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "authoring": {
                    "hidden": true
                  }
                },
                "type": "string",
                "description": "Named event allows explicit cancellation."
              },
              "label": {
                "type": "string",
                "description": "The label for this entry. Omit optional information that has not been specified."
              },
              "description": {
                "type": "string",
                "description": "The description for this entry. Omit optional information that has not been specified."
              },
              "resourceId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "resources",
                    "label": "name"
                  }
                },
                "type": "string",
                "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
              },
              "cancelOnActionIds": {
                "minItems": 0,
                "uniqueItems": true,
                "type": "array",
                "items": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "reference": {
                      "collection": "events.actions",
                      "label": "label"
                    }
                  },
                  "type": "string",
                  "description": "A learner action whose completion prevents this scheduled transition from firing."
                },
                "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."
              },
              "delaySeconds": {
                "exclusiveMinimum": 0,
                "type": "number",
                "description": "Simulated seconds after the declared schedule anchor. State-entry schedules follow onAnchorStateExit and cancellation references; action timing is separate."
              },
              "conditionId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "events.conditions",
                    "label": "id"
                  }
                },
                "type": "string",
                "description": "Evaluate when due. False skips that occurrence; it does not poll until true."
              },
              "priority": {
                "type": "integer",
                "description": "Explicit ordering for simultaneous events. Equal priority uses schedule ID lexical order."
              },
              "effectIds": {
                "type": "array",
                "items": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "reference": {
                      "collection": "events.effects",
                      "label": "id"
                    }
                  },
                  "type": "string",
                  "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field."
                },
                "description": "Operations applied atomically if the due event and transition guards are valid."
              },
              "nextStateId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "events.states",
                    "label": "title"
                  }
                },
                "type": "string",
                "description": "Optional phase transition; omit for a result or actor cue that does not move the main phase."
              },
              "repeat": {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "intervalSeconds",
                  "count"
                ],
                "properties": {
                  "intervalSeconds": {
                    "exclusiveMinimum": 0,
                    "type": "number",
                    "description": "Numeric interval seconds. Do not infer an omitted value."
                  },
                  "count": {
                    "minimum": 1,
                    "type": "integer",
                    "description": "Numeric count, at least 1. Do not infer an omitted value."
                  }
                },
                "description": "Count includes the initial occurrence. Finite repetition prevents unbounded schedules."
              },
              "anchor": {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "kind",
                  "refId"
                ],
                "properties": {
                  "kind": {
                    "const": "state-entry",
                    "type": "string",
                    "description": "The required literal value \"state-entry\"."
                  },
                  "refId": {
                    "minLength": 1,
                    "maxLength": 128,
                    "pattern": "\\S",
                    "title": "Identifier",
                    "x-usim": {
                      "reference": {
                        "collection": "events.states",
                        "label": "title"
                      }
                    },
                    "type": "string",
                    "description": "Identifier of an existing events.states entry. Preserve the referenced entry when editing this field."
                  }
                },
                "description": "State/action anchors require the corresponding ID. Scenario-start prohibits refId."
              },
              "onAnchorStateExit": {
                "anyOf": [
                  {
                    "const": "cancel",
                    "type": "string",
                    "description": "Cancel removes pending occurrences from that entry; re-entry creates a new schedule instance."
                  },
                  {
                    "const": "continue",
                    "type": "string",
                    "description": "Cancel removes pending occurrences from that entry; re-entry creates a new schedule instance."
                  }
                ],
                "description": "Cancel removes pending occurrences from that entry; re-entry creates a new schedule instance."
              }
            },
            "description": "Structured schedules details. Omitted optional values remain unspecified."
          }
        ],
        "description": "Select one of the declared schedules alternatives; use the fields belonging to that alternative."
      },
      "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."
    },
    "effects": {
      "title": "Effects",
      "type": "array",
      "items": {
        "anyOf": [
          {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "id",
              "kind",
              "targetId",
              "value",
              "unit"
            ],
            "properties": {
              "id": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "authoring": {
                    "hidden": true
                  }
                },
                "type": "string",
                "description": "Stable effect identifier referenced by states, actions, or schedules."
              },
              "kind": {
                "const": "set-variable",
                "type": "string",
                "description": "The operation performed by this effect."
              },
              "targetId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "patients.*.variables",
                    "label": "id"
                  }
                },
                "type": "string",
                "description": "The identifier of the variable or other entity changed by this effect."
              },
              "value": {
                "type": "number",
                "description": "The resulting value, expressed in the target variable’s declared unit."
              },
              "unit": {
                "type": "string",
                "description": "The target variable’s declared unit; effects cannot silently convert units."
              }
            },
            "description": "Structured effects details. Omitted optional values remain unspecified."
          },
          {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "id",
              "kind",
              "targetId",
              "value",
              "unit",
              "durationSeconds",
              "interpolation"
            ],
            "properties": {
              "id": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "authoring": {
                    "hidden": true
                  }
                },
                "type": "string",
                "description": "Stable effect identifier referenced by states, actions, or schedules."
              },
              "kind": {
                "const": "trend-variable",
                "type": "string",
                "description": "Closed operation vocabulary; each kind has its own required operands as defined in this section."
              },
              "targetId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "patients.*.variables",
                    "label": "id"
                  }
                },
                "type": "string",
                "description": "set-variable/trend-variable target a variable; set-flag targets a flag; reveal targets a history entry, observation, or result; cancel-event targets a schedule; set-monitor-connection targets a patient."
              },
              "value": {
                "type": "number",
                "description": "Absolute replacement or trend target, never an implicit increment. Numeric variable effects require a matching unit field."
              },
              "unit": {
                "type": "string",
                "description": "Unit for a numeric variable target. It must match the target variable's declared unit; the format does not infer conversions."
              },
              "durationSeconds": {
                "exclusiveMinimum": 0,
                "type": "number",
                "description": "Duration of a linear authored change from current value to target. Instant changes use set-variable."
              },
              "interpolation": {
                "const": "linear",
                "type": "string",
                "description": "The format supports one explicit interpolation rule; no inferred dose-response or disease model."
              }
            },
            "description": "Structured effects details. Omitted optional values remain unspecified."
          },
          {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "id",
              "kind",
              "targetId",
              "percent",
              "unit"
            ],
            "properties": {
              "id": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "authoring": {
                    "hidden": true
                  }
                },
                "type": "string",
                "description": "Stable effect identifier referenced by states, actions, or schedules."
              },
              "kind": {
                "const": "scale-variable",
                "type": "string",
                "description": "Closed operation vocabulary; each kind has its own required operands as defined in this section."
              },
              "targetId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "patients.*.variables",
                    "label": "id"
                  }
                },
                "type": "string",
                "description": "set-variable/trend-variable target a variable; set-flag targets a flag; reveal targets a history entry, observation, or result; cancel-event targets a schedule; set-monitor-connection targets a patient."
              },
              "percent": {
                "minimum": -100,
                "maximum": 1000,
                "type": "number",
                "description": "Numeric percent, at least -100, at most 1000. Do not infer an omitted value."
              },
              "unit": {
                "type": "string",
                "description": "Unit for a numeric variable target. It must match the target variable's declared unit; the format does not infer conversions."
              }
            },
            "description": "Structured effects details. Omitted optional values remain unspecified."
          },
          {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "id",
              "kind",
              "patientId",
              "modelId"
            ],
            "properties": {
              "id": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "authoring": {
                    "hidden": true
                  }
                },
                "type": "string",
                "description": "Stable effect identifier referenced by states, actions, or schedules."
              },
              "kind": {
                "const": "apply-model",
                "type": "string",
                "description": "Closed operation vocabulary; each kind has its own required operands as defined in this section."
              },
              "patientId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "patients",
                    "label": "name"
                  }
                },
                "type": "string",
                "description": "Identifier of an existing patients entry. Preserve the referenced entry when editing this field."
              },
              "modelId": {
                "pattern": "^[A-Za-z][A-Za-z0-9+.-]*:",
                "type": "string",
                "description": "The model id for this entry. Omit optional information that has not been specified."
              }
            },
            "description": "Structured effects details. Omitted optional values remain unspecified."
          },
          {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "id",
              "kind",
              "targetId",
              "value"
            ],
            "properties": {
              "id": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "authoring": {
                    "hidden": true
                  }
                },
                "type": "string",
                "description": "Stable effect identifier referenced by states, actions, or schedules."
              },
              "kind": {
                "const": "set-flag",
                "type": "string",
                "description": "Closed operation vocabulary; each kind has its own required operands as defined in this section."
              },
              "targetId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "events.flags",
                    "label": "id"
                  }
                },
                "type": "string",
                "description": "set-variable/trend-variable target a variable; set-flag targets a flag; reveal targets a history entry, observation, or result; cancel-event targets a schedule; set-monitor-connection targets a patient."
              },
              "value": {
                "type": "boolean",
                "description": "Absolute replacement or trend target, never an implicit increment. Numeric variable effects require a matching unit field."
              }
            },
            "description": "Structured effects details. Omitted optional values remain unspecified."
          },
          {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "id",
              "kind",
              "targetId"
            ],
            "properties": {
              "id": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "authoring": {
                    "hidden": true
                  }
                },
                "type": "string",
                "description": "Stable effect identifier referenced by states, actions, or schedules."
              },
              "kind": {
                "const": "reveal",
                "type": "string",
                "description": "Closed operation vocabulary; each kind has its own required operands as defined in this section."
              },
              "targetId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "authoring": {
                    "hidden": true
                  }
                },
                "type": "string",
                "description": "set-variable/trend-variable target a variable; set-flag targets a flag; reveal targets a history entry, observation, or result; cancel-event targets a schedule; set-monitor-connection targets a patient."
              }
            },
            "description": "Structured effects details. Omitted optional values remain unspecified."
          },
          {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "id",
              "kind",
              "targetId"
            ],
            "properties": {
              "id": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "authoring": {
                    "hidden": true
                  }
                },
                "type": "string",
                "description": "Stable effect identifier referenced by states, actions, or schedules."
              },
              "kind": {
                "const": "cancel-event",
                "type": "string",
                "description": "Closed operation vocabulary; each kind has its own required operands as defined in this section."
              },
              "targetId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "events.schedules",
                    "label": "id"
                  }
                },
                "type": "string",
                "description": "set-variable/trend-variable target a variable; set-flag targets a flag; reveal targets a history entry, observation, or result; cancel-event targets a schedule; set-monitor-connection targets a patient."
              }
            },
            "description": "Structured effects details. Omitted optional values remain unspecified."
          },
          {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "id",
              "kind",
              "targetId",
              "channel",
              "value"
            ],
            "properties": {
              "id": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "authoring": {
                    "hidden": true
                  }
                },
                "type": "string",
                "description": "Stable effect identifier referenced by states, actions, or schedules."
              },
              "kind": {
                "const": "set-monitor-connection",
                "type": "string",
                "description": "Closed operation vocabulary; each kind has its own required operands as defined in this section."
              },
              "targetId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "patients",
                    "label": "name"
                  }
                },
                "type": "string",
                "description": "set-variable/trend-variable target a variable; set-flag targets a flag; reveal targets a history entry, observation, or result; cancel-event targets a schedule; set-monitor-connection targets a patient."
              },
              "channel": {
                "anyOf": [
                  {
                    "const": "ecg",
                    "type": "string",
                    "description": "The required literal value \"ecg\"."
                  },
                  {
                    "const": "bloodPressure",
                    "type": "string",
                    "description": "The required literal value \"bloodPressure\"."
                  },
                  {
                    "const": "spo2",
                    "type": "string",
                    "description": "The required literal value \"spo2\"."
                  },
                  {
                    "const": "respiration",
                    "type": "string",
                    "description": "The required literal value \"respiration\"."
                  },
                  {
                    "const": "temperature",
                    "type": "string",
                    "description": "The required literal value \"temperature\"."
                  },
                  {
                    "const": "capnography",
                    "type": "string",
                    "description": "The required literal value \"capnography\"."
                  },
                  {
                    "const": "arterialPressure",
                    "type": "string",
                    "description": "The required literal value \"arterialPressure\"."
                  }
                ],
                "description": "Select one of the declared channel alternatives; use the fields belonging to that alternative."
              },
              "value": {
                "type": "boolean",
                "description": "Absolute replacement or trend target, never an implicit increment. Numeric variable effects require a matching unit field."
              }
            },
            "description": "Structured effects details. Omitted optional values remain unspecified."
          }
        ],
        "description": "One typed effect with a stable identifier and explicit target."
      },
      "description": "Named reusable effects that change scenario state or disclosure."
    },
    "states": {
      "title": "States",
      "maxItems": 128,
      "x-usim": {
        "authoring": {
          "editor": "graph"
        }
      },
      "type": "array",
      "items": {
        "additionalProperties": false,
        "x-usim": {
          "authoring": {}
        },
        "type": "object",
        "required": [
          "id",
          "title",
          "learnerBrief",
          "facilitatorBrief",
          "kind"
        ],
        "properties": {
          "id": {
            "title": "Identifier",
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "A stable identifier used to reference this entry. Keep it unchanged when editing the entry's name or content."
          },
          "title": {
            "title": "State title",
            "maxLength": 240,
            "x-usim": {
              "authoring": {}
            },
            "type": "string",
            "description": "A short name for this phase, such as Initial assessment or Worsening respiratory distress."
          },
          "entryConditionId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "events.conditions",
                "label": "id"
              },
              "execution": {
                "capability": "conditional-execution"
              }
            },
            "type": "string",
            "description": "Guard checked immediately before entry. Failed manual transitions are rejected; scheduled failures are recorded and skipped."
          },
          "exitConditionId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "events.conditions",
                "label": "id"
              },
              "execution": {
                "capability": "conditional-execution"
              }
            },
            "type": "string",
            "description": "Must hold to leave the phase; does not cause a transition by itself."
          },
          "onEnterEffectIds": {
            "title": "Effects on entry",
            "type": "array",
            "items": {
              "title": "Entry effect",
              "maxLength": 128,
              "minLength": 1,
              "pattern": "\\S",
              "x-usim": {
                "reference": {
                  "collection": "events.effects",
                  "label": "id",
                  "excludeScheduled": false
                },
                "authoring": {}
              },
              "type": "string",
              "description": "An effect applied at this position in the state’s entry sequence."
            },
            "description": "Ordered effect identifiers applied when this state is entered."
          },
          "onExitEffectIds": {
            "title": "Effects on exit",
            "type": "array",
            "items": {
              "title": "Exit effect",
              "maxLength": 128,
              "minLength": 1,
              "pattern": "\\S",
              "x-usim": {
                "reference": {
                  "collection": "events.effects",
                  "label": "id",
                  "excludeScheduled": false
                },
                "authoring": {}
              },
              "type": "string",
              "description": "An effect applied at this position in the state’s exit sequence."
            },
            "description": "Ordered effect identifiers applied when this state is exited; execution requires support for exit effects."
          },
          "learnerBrief": {
            "title": "Learner prompt",
            "maxLength": 8000,
            "x-usim": {
              "authoring": {
                "editor": "textarea"
              }
            },
            "type": "string",
            "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."
          },
          "facilitatorBrief": {
            "title": "Tutor prompt",
            "maxLength": 8000,
            "x-usim": {
              "authoring": {
                "editor": "textarea"
              }
            },
            "type": "string",
            "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."
          },
          "objectiveIds": {
            "minItems": 0,
            "uniqueItems": true,
            "type": "array",
            "items": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "education.objectives",
                  "label": "statement"
                }
              },
              "type": "string",
              "description": "Identifier of an existing education.objectives entry. Preserve the referenced entry when editing this field."
            },
            "description": "Links the phase to an educational objective."
          },
          "kind": {
            "type": "string",
            "title": "State kind",
            "enum": [
              "baseline",
              "phase",
              "conclusion"
            ],
            "description": "Baseline starts the case; triggered and scheduled describe intermediate phases; conclusion ends the run. A scheduled phase still needs an incoming timed interaction."
          },
          "monitor": {
            "title": "Monitor",
            "additionalProperties": false,
            "x-usim": {
              "authoring": {
                "editor": "monitor"
              }
            },
            "type": "object",
            "properties": {
              "rhythm": {
                "type": "string",
                "title": "Monitor rhythm",
                "enum": [
                  "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"
                ],
                "description": "The ECG rhythm displayed on the monitor. Select the rhythm separately from whether the patient has a palpable pulse."
              },
              "pulsePresent": {
                "title": "Pulse present",
                "type": "boolean",
                "description": "Whether a palpable pulse is present. Use this to distinguish perfusing and pulseless presentations of the displayed rhythm."
              },
              "connections": {
                "title": "Monitor connections",
                "additionalProperties": false,
                "x-usim": {
                  "authoring": {}
                },
                "type": "object",
                "properties": {
                  "ecg": {
                    "title": "ECG",
                    "type": "boolean",
                    "description": "ECG: connected exposes the available measurement; disconnected hides it without changing physiology."
                  },
                  "bloodPressure": {
                    "title": "Blood pressure cuff",
                    "type": "boolean",
                    "description": "Blood pressure cuff: connected exposes the available measurement; disconnected hides it without changing physiology."
                  },
                  "spo2": {
                    "title": "Pulse oximetry",
                    "type": "boolean",
                    "description": "Pulse oximetry: connected exposes the available measurement; disconnected hides it without changing physiology."
                  },
                  "respiration": {
                    "title": "Respiratory monitoring",
                    "type": "boolean",
                    "description": "Respiratory monitoring: connected exposes the available measurement; disconnected hides it without changing physiology."
                  },
                  "temperature": {
                    "title": "Temperature probe",
                    "type": "boolean",
                    "description": "Temperature probe: connected exposes the available measurement; disconnected hides it without changing physiology."
                  },
                  "capnography": {
                    "title": "Capnography",
                    "type": "boolean",
                    "description": "Capnography: connected exposes the available measurement; disconnected hides it without changing physiology."
                  },
                  "arterialPressure": {
                    "title": "Arterial pressure",
                    "type": "boolean",
                    "description": "Arterial pressure: connected exposes the available measurement; disconnected hides it without changing physiology."
                  }
                },
                "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."
              }
            },
            "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."
          },
          "key": {
            "title": "Key state",
            "type": "boolean",
            "description": "Mark an educationally important phase. This does not award points or require every path to pass through the phase."
          },
          "resourceTrigger": {
            "title": "Enter when resource results are available",
            "additionalProperties": false,
            "x-usim": {
              "authoring": {}
            },
            "type": "object",
            "required": [
              "mode",
              "objectIds"
            ],
            "properties": {
              "mode": {
                "type": "string",
                "title": "Results required",
                "enum": [
                  "any",
                  "all"
                ],
                "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."
              },
              "objectIds": {
                "title": "Selected resources",
                "minItems": 1,
                "maxItems": 1000,
                "uniqueItems": true,
                "type": "array",
                "items": {
                  "title": "Resource",
                  "maxLength": 128,
                  "minLength": 1,
                  "pattern": "\\S",
                  "x-usim": {
                    "reference": {
                      "collection": "resources",
                      "label": "name",
                      "excludeScheduled": false
                    },
                    "authoring": {}
                  },
                  "type": "string",
                  "description": "The identifier of a learner-requestable resource required by this event result trigger."
                },
                "description": "Scenario resources whose completed results trigger this event. Select learner-requestable resources without a separate resource destination event."
              }
            },
            "description": "Enter this event once when selected learner-requested resource results become available. Incoming transitions remain alternative paths into the event."
          }
        },
        "description": "One phase of the case, with learner information, tutor guidance, and any changed patient observations."
      },
      "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."
    },
    "actions": {
      "title": "Interactions",
      "maxItems": 512,
      "x-usim": {
        "authoring": {
          "addLabel": "Add interaction"
        }
      },
      "type": "array",
      "items": {
        "additionalProperties": false,
        "x-usim": {
          "authoring": {}
        },
        "type": "object",
        "required": [
          "id",
          "label",
          "availableInStateIds",
          "outcomes"
        ],
        "properties": {
          "id": {
            "title": "Identifier",
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "A stable identifier used to reference this entry. Keep it unchanged when editing the entry's name or content."
          },
          "label": {
            "title": "Interaction",
            "maxLength": 1000,
            "x-usim": {
              "authoring": {}
            },
            "type": "string",
            "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."
          },
          "description": {
            "title": "Description",
            "maxLength": 6000,
            "x-usim": {
              "authoring": {
                "editor": "textarea"
              }
            },
            "type": "string",
            "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."
          },
          "patientId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "patients",
                "label": "name"
              }
            },
            "type": "string",
            "description": "Required when the action targets a patient; omit for team-only actions."
          },
          "resourceId": {
            "title": "Linked resource",
            "maxLength": 128,
            "minLength": 1,
            "pattern": "\\S",
            "x-usim": {
              "reference": {
                "collection": "resources",
                "label": "name",
                "excludeScheduled": false
              },
              "authoring": {}
            },
            "type": "string",
            "description": "Requests a resource when this transition fires. Builder authors resource links on the state under Results."
          },
          "completionCriteria": {
            "title": "When this action is complete",
            "maxLength": 6000,
            "x-usim": {
              "authoring": {
                "editor": "textarea"
              }
            },
            "type": "string",
            "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."
          },
          "completion": {
            "title": "Action recognition",
            "additionalProperties": false,
            "x-usim": {
              "authoring": {}
            },
            "type": "object",
            "required": [
              "mode",
              "resourceIds"
            ],
            "properties": {
              "mode": {
                "type": "string",
                "title": "Resources required",
                "enum": [
                  "any",
                  "all"
                ],
                "description": "Choose whether any or all selected resource requests complete this action."
              },
              "resourceIds": {
                "title": "Recognize resource interactions",
                "minItems": 1,
                "maxItems": 1000,
                "uniqueItems": true,
                "type": "array",
                "items": {
                  "title": "Resource",
                  "maxLength": 128,
                  "minLength": 1,
                  "pattern": "\\S",
                  "x-usim": {
                    "reference": {
                      "collection": "resources",
                      "label": "name",
                      "excludeScheduled": false
                    },
                    "authoring": {}
                  },
                  "type": "string",
                  "description": "A learner-requestable resource used to recognize the action."
                },
                "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."
              }
            },
            "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."
          },
          "availableInStateIds": {
            "title": "Available in states",
            "minItems": 1,
            "uniqueItems": true,
            "type": "array",
            "items": {
              "title": "Available in state",
              "maxLength": 128,
              "minLength": 1,
              "pattern": "\\S",
              "x-usim": {
                "reference": {
                  "collection": "events.states",
                  "label": "title",
                  "excludeScheduled": false
                },
                "authoring": {}
              },
              "type": "string",
              "description": "Identifier of an existing events.states entry. Preserve the referenced entry when editing this field."
            },
            "description": "The phase in which this interaction is available or its scheduled timer begins."
          },
          "conditionId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "events.conditions",
                "label": "id"
              },
              "execution": {
                "capability": "conditional-execution"
              }
            },
            "type": "string",
            "description": "Prerequisite evaluated at start and again at completion."
          },
          "durationSeconds": {
            "minimum": 0,
            "type": "number",
            "default": 0,
            "description": "Simulated time between start and completion. Availability is evaluated at start."
          },
          "repeat": {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "cooldownSeconds"
            ],
            "properties": {
              "maxUses": {
                "minimum": 1,
                "type": "integer",
                "description": "Numeric max uses, at least 1. Do not infer an omitted value."
              },
              "cooldownSeconds": {
                "minimum": 0,
                "type": "number",
                "description": "Numeric cooldown seconds, at least 0. Do not infer an omitted value."
              }
            },
            "description": "Completed uses count against maxUses; cooldown starts at completion. No implicit unlimited repeats."
          },
          "cancellable": {
            "default": false,
            "type": "boolean",
            "description": "Whether an operator can cancel before completion; cancellation does not count as a completed use."
          },
          "onPhaseExit": {
            "anyOf": [
              {
                "const": "cancel",
                "type": "string",
                "description": "Policy for unfinished work when another event changes phase. Conclusion always cancels."
              },
              {
                "const": "continue",
                "type": "string",
                "description": "Policy for unfinished work when another event changes phase. Conclusion always cancels."
              }
            ],
            "default": "cancel",
            "description": "Policy for unfinished work when another event changes phase. Conclusion always cancels."
          },
          "outcomes": {
            "title": "Ordered outcomes",
            "minItems": 1,
            "type": "array",
            "items": {
              "additionalProperties": false,
              "title": "Outcome",
              "type": "object",
              "required": [
                "id",
                "effectIds"
              ],
              "properties": {
                "id": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "authoring": {
                      "hidden": true
                    }
                  },
                  "type": "string",
                  "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
                },
                "whenConditionId": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "reference": {
                      "collection": "events.conditions",
                      "label": "id"
                    },
                    "execution": {
                      "capability": "conditional-execution"
                    }
                  },
                  "type": "string",
                  "description": "Identifier of an existing events.conditions entry. Preserve the referenced entry when editing this field."
                },
                "effectIds": {
                  "type": "array",
                  "items": {
                    "minLength": 1,
                    "maxLength": 128,
                    "pattern": "\\S",
                    "title": "Identifier",
                    "x-usim": {
                      "reference": {
                        "collection": "events.effects",
                        "label": "id"
                      }
                    },
                    "type": "string",
                    "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field."
                  },
                  "description": "Entries for effect ids. An empty list means no entries have been authored."
                },
                "nextStateId": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "reference": {
                      "collection": "events.states",
                      "label": "title"
                    }
                  },
                  "type": "string",
                  "description": "Identifier of an existing events.states entry. Preserve the referenced entry when editing this field."
                }
              },
              "description": "Choose first matching outcome at completion. Exactly one final unconditional fallback is required. Omit nextStateId to stay in the phase."
            },
            "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."
          },
          "kind": {
            "type": "string",
            "title": "Action kind",
            "enum": [
              "generic",
              "medication-order",
              "medication-administration"
            ],
            "description": "Discriminator for conditional action payloads. Specialized fields are prohibited unless kind selects the corresponding branch."
          },
          "medicationOrder": {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "resourceId",
              "patientId",
              "dose",
              "route"
            ],
            "properties": {
              "resourceId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "resources",
                    "label": "name"
                  }
                },
                "type": "string",
                "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
              },
              "patientId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "patients",
                    "label": "name"
                  }
                },
                "type": "string",
                "description": "Identifier of an existing patients entry. Preserve the referenced entry when editing this field."
              },
              "dose": {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "value",
                  "unit"
                ],
                "properties": {
                  "value": {
                    "exclusiveMinimum": 0,
                    "type": "number",
                    "description": "Numeric value. Do not infer an omitted value."
                  },
                  "unit": {
                    "type": "string",
                    "description": "The unit for this entry. Omit optional information that has not been specified."
                  }
                },
                "description": "Structured numerator details. Omitted optional values remain unspecified."
              },
              "route": {
                "type": "string",
                "description": "The route for this entry. Omit optional information that has not been specified."
              },
              "rate": {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "numerator",
                  "denominator"
                ],
                "properties": {
                  "numerator": {
                    "additionalProperties": false,
                    "type": "object",
                    "required": [
                      "value",
                      "unit"
                    ],
                    "properties": {
                      "value": {
                        "exclusiveMinimum": 0,
                        "type": "number",
                        "description": "Numeric value. Do not infer an omitted value."
                      },
                      "unit": {
                        "type": "string",
                        "description": "The unit for this entry. Omit optional information that has not been specified."
                      }
                    },
                    "description": "Structured numerator details. Omitted optional values remain unspecified."
                  },
                  "denominator": {
                    "additionalProperties": false,
                    "type": "object",
                    "required": [
                      "value",
                      "unit"
                    ],
                    "properties": {
                      "value": {
                        "exclusiveMinimum": 0,
                        "type": "number",
                        "description": "Numeric value. Do not infer an omitted value."
                      },
                      "unit": {
                        "type": "string",
                        "description": "The unit for this entry. Omit optional information that has not been specified."
                      }
                    },
                    "description": "Structured numerator details. Omitted optional values remain unspecified."
                  }
                },
                "description": "Structured rate details. Omitted optional values remain unspecified."
              }
            },
            "description": "Quantity is { value: positive number, unit: string }. Units are explicit; route must belong to allowedRoutes.",
            "x-usim": {
              "execution": {
                "capability": "medication-orders"
              }
            }
          },
          "administration": {
            "anyOf": [
              {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "orderActionId",
                  "mode"
                ],
                "properties": {
                  "orderActionId": {
                    "minLength": 1,
                    "maxLength": 128,
                    "pattern": "\\S",
                    "title": "Identifier",
                    "x-usim": {
                      "reference": {
                        "collection": "events.actions",
                        "label": "label"
                      }
                    },
                    "type": "string",
                    "description": "Identifier of an existing events.actions entry. Preserve the referenced entry when editing this field."
                  },
                  "mode": {
                    "anyOf": [
                      {
                        "const": "bolus",
                        "type": "string",
                        "description": "The required literal value \"bolus\"."
                      },
                      {
                        "const": "infusion-stop",
                        "type": "string",
                        "description": "The required literal value \"infusion-stop\"."
                      }
                    ],
                    "description": "Select one of the declared mode alternatives; use the fields belonging to that alternative."
                  }
                },
                "description": "Administration is a separate observable action referencing an order, not an automatic consequence of writing it."
              },
              {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "orderActionId",
                  "mode",
                  "rate"
                ],
                "properties": {
                  "orderActionId": {
                    "minLength": 1,
                    "maxLength": 128,
                    "pattern": "\\S",
                    "title": "Identifier",
                    "x-usim": {
                      "reference": {
                        "collection": "events.actions",
                        "label": "label"
                      }
                    },
                    "type": "string",
                    "description": "Identifier of an existing events.actions entry. Preserve the referenced entry when editing this field."
                  },
                  "mode": {
                    "anyOf": [
                      {
                        "const": "infusion-start",
                        "type": "string",
                        "description": "The required literal value \"infusion-start\"."
                      },
                      {
                        "const": "infusion-change",
                        "type": "string",
                        "description": "The required literal value \"infusion-change\"."
                      }
                    ],
                    "description": "Select one of the declared mode alternatives; use the fields belonging to that alternative."
                  },
                  "rate": {
                    "additionalProperties": false,
                    "type": "object",
                    "required": [
                      "numerator",
                      "denominator"
                    ],
                    "properties": {
                      "numerator": {
                        "additionalProperties": false,
                        "type": "object",
                        "required": [
                          "value",
                          "unit"
                        ],
                        "properties": {
                          "value": {
                            "exclusiveMinimum": 0,
                            "type": "number",
                            "description": "Numeric value. Do not infer an omitted value."
                          },
                          "unit": {
                            "type": "string",
                            "description": "The unit for this entry. Omit optional information that has not been specified."
                          }
                        },
                        "description": "Structured numerator details. Omitted optional values remain unspecified."
                      },
                      "denominator": {
                        "additionalProperties": false,
                        "type": "object",
                        "required": [
                          "value",
                          "unit"
                        ],
                        "properties": {
                          "value": {
                            "exclusiveMinimum": 0,
                            "type": "number",
                            "description": "Numeric value. Do not infer an omitted value."
                          },
                          "unit": {
                            "type": "string",
                            "description": "The unit for this entry. Omit optional information that has not been specified."
                          }
                        },
                        "description": "Structured numerator details. Omitted optional values remain unspecified."
                      }
                    },
                    "description": "Explicit amount per time or volume per time. No implicit unit conversion or pump calculation."
                  }
                },
                "description": "Administration is a separate observable action referencing an order, not an automatic consequence of writing it."
              }
            ],
            "description": "Administration is a separate observable action referencing an order, not an automatic consequence of writing it.",
            "x-usim": {
              "execution": {
                "capability": "medication-administration"
              }
            }
          }
        },
        "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."
      },
      "description": "Connections between phases, activated by a learner action or a timer measured from entry into the source phase."
    }
  },
  "description": "The patient phases, transitions, and requestable resources that define how the scenario progresses."
}

flags

events.flags

array · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "array",
  "items": {
    "additionalProperties": false,
    "type": "object",
    "required": [
      "id",
      "initialValue"
    ],
    "properties": {
      "id": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "authoring": {
            "hidden": true
          }
        },
        "type": "string",
        "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
      },
      "initialValue": {
        "type": "boolean",
        "description": "Whether initial value applies. Omitted optional values remain unspecified."
      }
    },
    "description": "Concurrent facts such as ownership-agreed; flags coexist independently of the single active phase."
  },
  "description": "Entries for flags. An empty list means no entries have been authored."
}

*

events.flags.*

object · Required when the parent is present

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

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "id",
    "initialValue"
  ],
  "properties": {
    "id": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "authoring": {
          "hidden": true
        }
      },
      "type": "string",
      "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
    },
    "initialValue": {
      "type": "boolean",
      "description": "Whether initial value applies. Omitted optional values remain unspecified."
    }
  },
  "description": "Concurrent facts such as ownership-agreed; flags coexist independently of the single active phase."
}

Identifier

events.flags.*.id

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
}

initialValue

events.flags.*.initialValue

boolean · Required when the parent is present

Whether initial value applies. Omitted optional values remain unspecified.

Field schema

{
  "type": "boolean",
  "description": "Whether initial value applies. Omitted optional values remain unspecified."
}

conditions

events.conditions

array · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "array",
  "items": {
    "additionalProperties": false,
    "type": "object",
    "required": [
      "id",
      "all"
    ],
    "properties": {
      "id": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "authoring": {
            "hidden": true
          }
        },
        "type": "string",
        "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
      },
      "all": {
        "type": "array",
        "items": {
          "anyOf": [
            {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "targetId",
                "operator",
                "value"
              ],
              "properties": {
                "targetId": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "authoring": {
                      "hidden": true
                    }
                  },
                  "type": "string",
                  "description": "The Identifier for this entry. Omit optional information that has not been specified."
                },
                "operator": {
                  "anyOf": [
                    {
                      "const": "eq",
                      "type": "string",
                      "description": "The required literal value \"eq\"."
                    },
                    {
                      "const": "ne",
                      "type": "string",
                      "description": "The required literal value \"ne\"."
                    },
                    {
                      "const": "lt",
                      "type": "string",
                      "description": "The required literal value \"lt\"."
                    },
                    {
                      "const": "lte",
                      "type": "string",
                      "description": "The required literal value \"lte\"."
                    },
                    {
                      "const": "gt",
                      "type": "string",
                      "description": "The required literal value \"gt\"."
                    },
                    {
                      "const": "gte",
                      "type": "string",
                      "description": "The required literal value \"gte\"."
                    }
                  ],
                  "description": "Select one of the declared operator alternatives; use the fields belonging to that alternative."
                },
                "value": {
                  "type": "number",
                  "description": "Numeric value. Do not infer an omitted value."
                }
              },
              "description": "Operand types must match the target. Boolean flags support only eq/ne; numeric comparisons use the variable's declared unit."
            },
            {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "targetId",
                "operator",
                "value"
              ],
              "properties": {
                "targetId": {
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "\\S",
                  "title": "Identifier",
                  "x-usim": {
                    "authoring": {
                      "hidden": true
                    }
                  },
                  "type": "string",
                  "description": "The Identifier for this entry. Omit optional information that has not been specified."
                },
                "operator": {
                  "anyOf": [
                    {
                      "const": "eq",
                      "type": "string",
                      "description": "The required literal value \"eq\"."
                    },
                    {
                      "const": "ne",
                      "type": "string",
                      "description": "The required literal value \"ne\"."
                    }
                  ],
                  "description": "Select one of the declared operator alternatives; use the fields belonging to that alternative."
                },
                "value": {
                  "type": "boolean",
                  "description": "Whether value applies. Omitted optional values remain unspecified."
                }
              },
              "description": "Operand types must match the target. Boolean flags support only eq/ne; numeric comparisons use the variable's declared unit."
            }
          ],
          "description": "Operand types must match the target. Boolean flags support only eq/ne; numeric comparisons use the variable's declared unit."
        },
        "description": "Entries for all. An empty list means no entries have been authored."
      }
    },
    "description": "All predicates must be true; empty all is explicitly true. No recursive or executable expression text."
  },
  "description": "Named, bounded predicates referenced by actions, states, and cues."
}

*

events.conditions.*

object · Required when the parent is present

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

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "id",
    "all"
  ],
  "properties": {
    "id": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "authoring": {
          "hidden": true
        }
      },
      "type": "string",
      "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
    },
    "all": {
      "type": "array",
      "items": {
        "anyOf": [
          {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "targetId",
              "operator",
              "value"
            ],
            "properties": {
              "targetId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "authoring": {
                    "hidden": true
                  }
                },
                "type": "string",
                "description": "The Identifier for this entry. Omit optional information that has not been specified."
              },
              "operator": {
                "anyOf": [
                  {
                    "const": "eq",
                    "type": "string",
                    "description": "The required literal value \"eq\"."
                  },
                  {
                    "const": "ne",
                    "type": "string",
                    "description": "The required literal value \"ne\"."
                  },
                  {
                    "const": "lt",
                    "type": "string",
                    "description": "The required literal value \"lt\"."
                  },
                  {
                    "const": "lte",
                    "type": "string",
                    "description": "The required literal value \"lte\"."
                  },
                  {
                    "const": "gt",
                    "type": "string",
                    "description": "The required literal value \"gt\"."
                  },
                  {
                    "const": "gte",
                    "type": "string",
                    "description": "The required literal value \"gte\"."
                  }
                ],
                "description": "Select one of the declared operator alternatives; use the fields belonging to that alternative."
              },
              "value": {
                "type": "number",
                "description": "Numeric value. Do not infer an omitted value."
              }
            },
            "description": "Operand types must match the target. Boolean flags support only eq/ne; numeric comparisons use the variable's declared unit."
          },
          {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "targetId",
              "operator",
              "value"
            ],
            "properties": {
              "targetId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "authoring": {
                    "hidden": true
                  }
                },
                "type": "string",
                "description": "The Identifier for this entry. Omit optional information that has not been specified."
              },
              "operator": {
                "anyOf": [
                  {
                    "const": "eq",
                    "type": "string",
                    "description": "The required literal value \"eq\"."
                  },
                  {
                    "const": "ne",
                    "type": "string",
                    "description": "The required literal value \"ne\"."
                  }
                ],
                "description": "Select one of the declared operator alternatives; use the fields belonging to that alternative."
              },
              "value": {
                "type": "boolean",
                "description": "Whether value applies. Omitted optional values remain unspecified."
              }
            },
            "description": "Operand types must match the target. Boolean flags support only eq/ne; numeric comparisons use the variable's declared unit."
          }
        ],
        "description": "Operand types must match the target. Boolean flags support only eq/ne; numeric comparisons use the variable's declared unit."
      },
      "description": "Entries for all. An empty list means no entries have been authored."
    }
  },
  "description": "All predicates must be true; empty all is explicitly true. No recursive or executable expression text."
}

Identifier

events.conditions.*.id

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
}

all

events.conditions.*.all

array · Required when the parent is present

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

Field schema

{
  "type": "array",
  "items": {
    "anyOf": [
      {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "targetId",
          "operator",
          "value"
        ],
        "properties": {
          "targetId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "The Identifier for this entry. Omit optional information that has not been specified."
          },
          "operator": {
            "anyOf": [
              {
                "const": "eq",
                "type": "string",
                "description": "The required literal value \"eq\"."
              },
              {
                "const": "ne",
                "type": "string",
                "description": "The required literal value \"ne\"."
              },
              {
                "const": "lt",
                "type": "string",
                "description": "The required literal value \"lt\"."
              },
              {
                "const": "lte",
                "type": "string",
                "description": "The required literal value \"lte\"."
              },
              {
                "const": "gt",
                "type": "string",
                "description": "The required literal value \"gt\"."
              },
              {
                "const": "gte",
                "type": "string",
                "description": "The required literal value \"gte\"."
              }
            ],
            "description": "Select one of the declared operator alternatives; use the fields belonging to that alternative."
          },
          "value": {
            "type": "number",
            "description": "Numeric value. Do not infer an omitted value."
          }
        },
        "description": "Operand types must match the target. Boolean flags support only eq/ne; numeric comparisons use the variable's declared unit."
      },
      {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "targetId",
          "operator",
          "value"
        ],
        "properties": {
          "targetId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "The Identifier for this entry. Omit optional information that has not been specified."
          },
          "operator": {
            "anyOf": [
              {
                "const": "eq",
                "type": "string",
                "description": "The required literal value \"eq\"."
              },
              {
                "const": "ne",
                "type": "string",
                "description": "The required literal value \"ne\"."
              }
            ],
            "description": "Select one of the declared operator alternatives; use the fields belonging to that alternative."
          },
          "value": {
            "type": "boolean",
            "description": "Whether value applies. Omitted optional values remain unspecified."
          }
        },
        "description": "Operand types must match the target. Boolean flags support only eq/ne; numeric comparisons use the variable's declared unit."
      }
    ],
    "description": "Operand types must match the target. Boolean flags support only eq/ne; numeric comparisons use the variable's declared unit."
  },
  "description": "Entries for all. An empty list means no entries have been authored."
}

*

events.conditions.*.all.*

Value · Required when the parent is present

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

Field schema

{
  "anyOf": [
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "targetId",
        "operator",
        "value"
      ],
      "properties": {
        "targetId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "authoring": {
              "hidden": true
            }
          },
          "type": "string",
          "description": "The Identifier for this entry. Omit optional information that has not been specified."
        },
        "operator": {
          "anyOf": [
            {
              "const": "eq",
              "type": "string",
              "description": "The required literal value \"eq\"."
            },
            {
              "const": "ne",
              "type": "string",
              "description": "The required literal value \"ne\"."
            },
            {
              "const": "lt",
              "type": "string",
              "description": "The required literal value \"lt\"."
            },
            {
              "const": "lte",
              "type": "string",
              "description": "The required literal value \"lte\"."
            },
            {
              "const": "gt",
              "type": "string",
              "description": "The required literal value \"gt\"."
            },
            {
              "const": "gte",
              "type": "string",
              "description": "The required literal value \"gte\"."
            }
          ],
          "description": "Select one of the declared operator alternatives; use the fields belonging to that alternative."
        },
        "value": {
          "type": "number",
          "description": "Numeric value. Do not infer an omitted value."
        }
      },
      "description": "Operand types must match the target. Boolean flags support only eq/ne; numeric comparisons use the variable's declared unit."
    },
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "targetId",
        "operator",
        "value"
      ],
      "properties": {
        "targetId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "authoring": {
              "hidden": true
            }
          },
          "type": "string",
          "description": "The Identifier for this entry. Omit optional information that has not been specified."
        },
        "operator": {
          "anyOf": [
            {
              "const": "eq",
              "type": "string",
              "description": "The required literal value \"eq\"."
            },
            {
              "const": "ne",
              "type": "string",
              "description": "The required literal value \"ne\"."
            }
          ],
          "description": "Select one of the declared operator alternatives; use the fields belonging to that alternative."
        },
        "value": {
          "type": "boolean",
          "description": "Whether value applies. Omitted optional values remain unspecified."
        }
      },
      "description": "Operand types must match the target. Boolean flags support only eq/ne; numeric comparisons use the variable's declared unit."
    }
  ],
  "description": "Operand types must match the target. Boolean flags support only eq/ne; numeric comparisons use the variable's declared unit."
}

Identifier

events.conditions.*.all.*.targetId

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "The Identifier for this entry. Omit optional information that has not been specified."
}

operator

events.conditions.*.all.*.operator

Value · Required when the parent is present

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

Allowed values: eq, ne, lt, lte, gt, gte

Field schema

{
  "anyOf": [
    {
      "const": "eq",
      "type": "string",
      "description": "The required literal value \"eq\"."
    },
    {
      "const": "ne",
      "type": "string",
      "description": "The required literal value \"ne\"."
    },
    {
      "const": "lt",
      "type": "string",
      "description": "The required literal value \"lt\"."
    },
    {
      "const": "lte",
      "type": "string",
      "description": "The required literal value \"lte\"."
    },
    {
      "const": "gt",
      "type": "string",
      "description": "The required literal value \"gt\"."
    },
    {
      "const": "gte",
      "type": "string",
      "description": "The required literal value \"gte\"."
    }
  ],
  "description": "Select one of the declared operator alternatives; use the fields belonging to that alternative."
}

value

events.conditions.*.all.*.value

number · Required when the parent is present

Numeric value. Do not infer an omitted value.

Field schema

{
  "type": "number",
  "description": "Numeric value. Do not infer an omitted value."
}

Schedules

events.schedules

array · Optional; an omitted value is not a normal, negative, or zero value

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.

Field schema

{
  "title": "Schedules",
  "type": "array",
  "items": {
    "anyOf": [
      {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "delaySeconds",
          "priority",
          "effectIds",
          "anchor"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Named event allows explicit cancellation."
          },
          "label": {
            "type": "string",
            "description": "The label for this entry. Omit optional information that has not been specified."
          },
          "description": {
            "type": "string",
            "description": "The description for this entry. Omit optional information that has not been specified."
          },
          "resourceId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "resources",
                "label": "name"
              }
            },
            "type": "string",
            "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
          },
          "cancelOnActionIds": {
            "minItems": 0,
            "uniqueItems": true,
            "type": "array",
            "items": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "events.actions",
                  "label": "label"
                }
              },
              "type": "string",
              "description": "A learner action whose completion prevents this scheduled transition from firing."
            },
            "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."
          },
          "delaySeconds": {
            "exclusiveMinimum": 0,
            "type": "number",
            "description": "Simulated seconds after the declared schedule anchor. State-entry schedules follow onAnchorStateExit and cancellation references; action timing is separate."
          },
          "conditionId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "events.conditions",
                "label": "id"
              }
            },
            "type": "string",
            "description": "Evaluate when due. False skips that occurrence; it does not poll until true."
          },
          "priority": {
            "type": "integer",
            "description": "Explicit ordering for simultaneous events. Equal priority uses schedule ID lexical order."
          },
          "effectIds": {
            "type": "array",
            "items": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "events.effects",
                  "label": "id"
                }
              },
              "type": "string",
              "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field."
            },
            "description": "Operations applied atomically if the due event and transition guards are valid."
          },
          "nextStateId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "events.states",
                "label": "title"
              }
            },
            "type": "string",
            "description": "Optional phase transition; omit for a result or actor cue that does not move the main phase."
          },
          "repeat": {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "intervalSeconds",
              "count"
            ],
            "properties": {
              "intervalSeconds": {
                "exclusiveMinimum": 0,
                "type": "number",
                "description": "Numeric interval seconds. Do not infer an omitted value."
              },
              "count": {
                "minimum": 1,
                "type": "integer",
                "description": "Numeric count, at least 1. Do not infer an omitted value."
              }
            },
            "description": "Count includes the initial occurrence. Finite repetition prevents unbounded schedules."
          },
          "anchor": {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "kind"
            ],
            "properties": {
              "kind": {
                "const": "scenario-start",
                "type": "string",
                "description": "The required literal value \"scenario-start\"."
              }
            },
            "description": "State/action anchors require the corresponding ID. Scenario-start prohibits refId."
          }
        },
        "description": "Structured schedules details. Omitted optional values remain unspecified."
      },
      {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "delaySeconds",
          "priority",
          "effectIds",
          "anchor"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Named event allows explicit cancellation."
          },
          "label": {
            "type": "string",
            "description": "The label for this entry. Omit optional information that has not been specified."
          },
          "description": {
            "type": "string",
            "description": "The description for this entry. Omit optional information that has not been specified."
          },
          "resourceId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "resources",
                "label": "name"
              }
            },
            "type": "string",
            "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
          },
          "cancelOnActionIds": {
            "minItems": 0,
            "uniqueItems": true,
            "type": "array",
            "items": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "events.actions",
                  "label": "label"
                }
              },
              "type": "string",
              "description": "A learner action whose completion prevents this scheduled transition from firing."
            },
            "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."
          },
          "delaySeconds": {
            "exclusiveMinimum": 0,
            "type": "number",
            "description": "Simulated seconds after the declared schedule anchor. State-entry schedules follow onAnchorStateExit and cancellation references; action timing is separate."
          },
          "conditionId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "events.conditions",
                "label": "id"
              }
            },
            "type": "string",
            "description": "Evaluate when due. False skips that occurrence; it does not poll until true."
          },
          "priority": {
            "type": "integer",
            "description": "Explicit ordering for simultaneous events. Equal priority uses schedule ID lexical order."
          },
          "effectIds": {
            "type": "array",
            "items": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "events.effects",
                  "label": "id"
                }
              },
              "type": "string",
              "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field."
            },
            "description": "Operations applied atomically if the due event and transition guards are valid."
          },
          "nextStateId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "events.states",
                "label": "title"
              }
            },
            "type": "string",
            "description": "Optional phase transition; omit for a result or actor cue that does not move the main phase."
          },
          "repeat": {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "intervalSeconds",
              "count"
            ],
            "properties": {
              "intervalSeconds": {
                "exclusiveMinimum": 0,
                "type": "number",
                "description": "Numeric interval seconds. Do not infer an omitted value."
              },
              "count": {
                "minimum": 1,
                "type": "integer",
                "description": "Numeric count, at least 1. Do not infer an omitted value."
              }
            },
            "description": "Count includes the initial occurrence. Finite repetition prevents unbounded schedules."
          },
          "anchor": {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "kind",
              "refId"
            ],
            "properties": {
              "kind": {
                "const": "action-completion",
                "type": "string",
                "description": "The required literal value \"action-completion\"."
              },
              "refId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "events.actions",
                    "label": "label"
                  }
                },
                "type": "string",
                "description": "Identifier of an existing events.actions entry. Preserve the referenced entry when editing this field."
              }
            },
            "description": "State/action anchors require the corresponding ID. Scenario-start prohibits refId."
          }
        },
        "description": "Structured schedules details. Omitted optional values remain unspecified."
      },
      {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "delaySeconds",
          "priority",
          "effectIds",
          "anchor",
          "onAnchorStateExit"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Named event allows explicit cancellation."
          },
          "label": {
            "type": "string",
            "description": "The label for this entry. Omit optional information that has not been specified."
          },
          "description": {
            "type": "string",
            "description": "The description for this entry. Omit optional information that has not been specified."
          },
          "resourceId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "resources",
                "label": "name"
              }
            },
            "type": "string",
            "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
          },
          "cancelOnActionIds": {
            "minItems": 0,
            "uniqueItems": true,
            "type": "array",
            "items": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "events.actions",
                  "label": "label"
                }
              },
              "type": "string",
              "description": "A learner action whose completion prevents this scheduled transition from firing."
            },
            "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."
          },
          "delaySeconds": {
            "exclusiveMinimum": 0,
            "type": "number",
            "description": "Simulated seconds after the declared schedule anchor. State-entry schedules follow onAnchorStateExit and cancellation references; action timing is separate."
          },
          "conditionId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "events.conditions",
                "label": "id"
              }
            },
            "type": "string",
            "description": "Evaluate when due. False skips that occurrence; it does not poll until true."
          },
          "priority": {
            "type": "integer",
            "description": "Explicit ordering for simultaneous events. Equal priority uses schedule ID lexical order."
          },
          "effectIds": {
            "type": "array",
            "items": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "events.effects",
                  "label": "id"
                }
              },
              "type": "string",
              "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field."
            },
            "description": "Operations applied atomically if the due event and transition guards are valid."
          },
          "nextStateId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "events.states",
                "label": "title"
              }
            },
            "type": "string",
            "description": "Optional phase transition; omit for a result or actor cue that does not move the main phase."
          },
          "repeat": {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "intervalSeconds",
              "count"
            ],
            "properties": {
              "intervalSeconds": {
                "exclusiveMinimum": 0,
                "type": "number",
                "description": "Numeric interval seconds. Do not infer an omitted value."
              },
              "count": {
                "minimum": 1,
                "type": "integer",
                "description": "Numeric count, at least 1. Do not infer an omitted value."
              }
            },
            "description": "Count includes the initial occurrence. Finite repetition prevents unbounded schedules."
          },
          "anchor": {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "kind",
              "refId"
            ],
            "properties": {
              "kind": {
                "const": "state-entry",
                "type": "string",
                "description": "The required literal value \"state-entry\"."
              },
              "refId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "events.states",
                    "label": "title"
                  }
                },
                "type": "string",
                "description": "Identifier of an existing events.states entry. Preserve the referenced entry when editing this field."
              }
            },
            "description": "State/action anchors require the corresponding ID. Scenario-start prohibits refId."
          },
          "onAnchorStateExit": {
            "anyOf": [
              {
                "const": "cancel",
                "type": "string",
                "description": "Cancel removes pending occurrences from that entry; re-entry creates a new schedule instance."
              },
              {
                "const": "continue",
                "type": "string",
                "description": "Cancel removes pending occurrences from that entry; re-entry creates a new schedule instance."
              }
            ],
            "description": "Cancel removes pending occurrences from that entry; re-entry creates a new schedule instance."
          }
        },
        "description": "Structured schedules details. Omitted optional values remain unspecified."
      }
    ],
    "description": "Select one of the declared schedules alternatives; use the fields belonging to that alternative."
  },
  "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."
}

*

events.schedules.*

Value · Required when the parent is present

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

Field schema

{
  "anyOf": [
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "id",
        "delaySeconds",
        "priority",
        "effectIds",
        "anchor"
      ],
      "properties": {
        "id": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "authoring": {
              "hidden": true
            }
          },
          "type": "string",
          "description": "Named event allows explicit cancellation."
        },
        "label": {
          "type": "string",
          "description": "The label for this entry. Omit optional information that has not been specified."
        },
        "description": {
          "type": "string",
          "description": "The description for this entry. Omit optional information that has not been specified."
        },
        "resourceId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "resources",
              "label": "name"
            }
          },
          "type": "string",
          "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
        },
        "cancelOnActionIds": {
          "minItems": 0,
          "uniqueItems": true,
          "type": "array",
          "items": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "events.actions",
                "label": "label"
              }
            },
            "type": "string",
            "description": "A learner action whose completion prevents this scheduled transition from firing."
          },
          "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."
        },
        "delaySeconds": {
          "exclusiveMinimum": 0,
          "type": "number",
          "description": "Simulated seconds after the declared schedule anchor. State-entry schedules follow onAnchorStateExit and cancellation references; action timing is separate."
        },
        "conditionId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "events.conditions",
              "label": "id"
            }
          },
          "type": "string",
          "description": "Evaluate when due. False skips that occurrence; it does not poll until true."
        },
        "priority": {
          "type": "integer",
          "description": "Explicit ordering for simultaneous events. Equal priority uses schedule ID lexical order."
        },
        "effectIds": {
          "type": "array",
          "items": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "events.effects",
                "label": "id"
              }
            },
            "type": "string",
            "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field."
          },
          "description": "Operations applied atomically if the due event and transition guards are valid."
        },
        "nextStateId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "events.states",
              "label": "title"
            }
          },
          "type": "string",
          "description": "Optional phase transition; omit for a result or actor cue that does not move the main phase."
        },
        "repeat": {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "intervalSeconds",
            "count"
          ],
          "properties": {
            "intervalSeconds": {
              "exclusiveMinimum": 0,
              "type": "number",
              "description": "Numeric interval seconds. Do not infer an omitted value."
            },
            "count": {
              "minimum": 1,
              "type": "integer",
              "description": "Numeric count, at least 1. Do not infer an omitted value."
            }
          },
          "description": "Count includes the initial occurrence. Finite repetition prevents unbounded schedules."
        },
        "anchor": {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "kind"
          ],
          "properties": {
            "kind": {
              "const": "scenario-start",
              "type": "string",
              "description": "The required literal value \"scenario-start\"."
            }
          },
          "description": "State/action anchors require the corresponding ID. Scenario-start prohibits refId."
        }
      },
      "description": "Structured schedules details. Omitted optional values remain unspecified."
    },
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "id",
        "delaySeconds",
        "priority",
        "effectIds",
        "anchor"
      ],
      "properties": {
        "id": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "authoring": {
              "hidden": true
            }
          },
          "type": "string",
          "description": "Named event allows explicit cancellation."
        },
        "label": {
          "type": "string",
          "description": "The label for this entry. Omit optional information that has not been specified."
        },
        "description": {
          "type": "string",
          "description": "The description for this entry. Omit optional information that has not been specified."
        },
        "resourceId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "resources",
              "label": "name"
            }
          },
          "type": "string",
          "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
        },
        "cancelOnActionIds": {
          "minItems": 0,
          "uniqueItems": true,
          "type": "array",
          "items": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "events.actions",
                "label": "label"
              }
            },
            "type": "string",
            "description": "A learner action whose completion prevents this scheduled transition from firing."
          },
          "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."
        },
        "delaySeconds": {
          "exclusiveMinimum": 0,
          "type": "number",
          "description": "Simulated seconds after the declared schedule anchor. State-entry schedules follow onAnchorStateExit and cancellation references; action timing is separate."
        },
        "conditionId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "events.conditions",
              "label": "id"
            }
          },
          "type": "string",
          "description": "Evaluate when due. False skips that occurrence; it does not poll until true."
        },
        "priority": {
          "type": "integer",
          "description": "Explicit ordering for simultaneous events. Equal priority uses schedule ID lexical order."
        },
        "effectIds": {
          "type": "array",
          "items": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "events.effects",
                "label": "id"
              }
            },
            "type": "string",
            "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field."
          },
          "description": "Operations applied atomically if the due event and transition guards are valid."
        },
        "nextStateId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "events.states",
              "label": "title"
            }
          },
          "type": "string",
          "description": "Optional phase transition; omit for a result or actor cue that does not move the main phase."
        },
        "repeat": {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "intervalSeconds",
            "count"
          ],
          "properties": {
            "intervalSeconds": {
              "exclusiveMinimum": 0,
              "type": "number",
              "description": "Numeric interval seconds. Do not infer an omitted value."
            },
            "count": {
              "minimum": 1,
              "type": "integer",
              "description": "Numeric count, at least 1. Do not infer an omitted value."
            }
          },
          "description": "Count includes the initial occurrence. Finite repetition prevents unbounded schedules."
        },
        "anchor": {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "kind",
            "refId"
          ],
          "properties": {
            "kind": {
              "const": "action-completion",
              "type": "string",
              "description": "The required literal value \"action-completion\"."
            },
            "refId": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "events.actions",
                  "label": "label"
                }
              },
              "type": "string",
              "description": "Identifier of an existing events.actions entry. Preserve the referenced entry when editing this field."
            }
          },
          "description": "State/action anchors require the corresponding ID. Scenario-start prohibits refId."
        }
      },
      "description": "Structured schedules details. Omitted optional values remain unspecified."
    },
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "id",
        "delaySeconds",
        "priority",
        "effectIds",
        "anchor",
        "onAnchorStateExit"
      ],
      "properties": {
        "id": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "authoring": {
              "hidden": true
            }
          },
          "type": "string",
          "description": "Named event allows explicit cancellation."
        },
        "label": {
          "type": "string",
          "description": "The label for this entry. Omit optional information that has not been specified."
        },
        "description": {
          "type": "string",
          "description": "The description for this entry. Omit optional information that has not been specified."
        },
        "resourceId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "resources",
              "label": "name"
            }
          },
          "type": "string",
          "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
        },
        "cancelOnActionIds": {
          "minItems": 0,
          "uniqueItems": true,
          "type": "array",
          "items": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "events.actions",
                "label": "label"
              }
            },
            "type": "string",
            "description": "A learner action whose completion prevents this scheduled transition from firing."
          },
          "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."
        },
        "delaySeconds": {
          "exclusiveMinimum": 0,
          "type": "number",
          "description": "Simulated seconds after the declared schedule anchor. State-entry schedules follow onAnchorStateExit and cancellation references; action timing is separate."
        },
        "conditionId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "events.conditions",
              "label": "id"
            }
          },
          "type": "string",
          "description": "Evaluate when due. False skips that occurrence; it does not poll until true."
        },
        "priority": {
          "type": "integer",
          "description": "Explicit ordering for simultaneous events. Equal priority uses schedule ID lexical order."
        },
        "effectIds": {
          "type": "array",
          "items": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "events.effects",
                "label": "id"
              }
            },
            "type": "string",
            "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field."
          },
          "description": "Operations applied atomically if the due event and transition guards are valid."
        },
        "nextStateId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "events.states",
              "label": "title"
            }
          },
          "type": "string",
          "description": "Optional phase transition; omit for a result or actor cue that does not move the main phase."
        },
        "repeat": {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "intervalSeconds",
            "count"
          ],
          "properties": {
            "intervalSeconds": {
              "exclusiveMinimum": 0,
              "type": "number",
              "description": "Numeric interval seconds. Do not infer an omitted value."
            },
            "count": {
              "minimum": 1,
              "type": "integer",
              "description": "Numeric count, at least 1. Do not infer an omitted value."
            }
          },
          "description": "Count includes the initial occurrence. Finite repetition prevents unbounded schedules."
        },
        "anchor": {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "kind",
            "refId"
          ],
          "properties": {
            "kind": {
              "const": "state-entry",
              "type": "string",
              "description": "The required literal value \"state-entry\"."
            },
            "refId": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "events.states",
                  "label": "title"
                }
              },
              "type": "string",
              "description": "Identifier of an existing events.states entry. Preserve the referenced entry when editing this field."
            }
          },
          "description": "State/action anchors require the corresponding ID. Scenario-start prohibits refId."
        },
        "onAnchorStateExit": {
          "anyOf": [
            {
              "const": "cancel",
              "type": "string",
              "description": "Cancel removes pending occurrences from that entry; re-entry creates a new schedule instance."
            },
            {
              "const": "continue",
              "type": "string",
              "description": "Cancel removes pending occurrences from that entry; re-entry creates a new schedule instance."
            }
          ],
          "description": "Cancel removes pending occurrences from that entry; re-entry creates a new schedule instance."
        }
      },
      "description": "Structured schedules details. Omitted optional values remain unspecified."
    }
  ],
  "description": "Select one of the declared schedules alternatives; use the fields belonging to that alternative."
}

Identifier

events.schedules.*.id

string · Required when the parent is present

Named event allows explicit cancellation.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "Named event allows explicit cancellation."
}

label

events.schedules.*.label

string · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "string",
  "description": "The label for this entry. Omit optional information that has not been specified."
}

description

events.schedules.*.description

string · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "string",
  "description": "The description for this entry. Omit optional information that has not been specified."
}

Identifier

events.schedules.*.resourceId

string · Optional; an omitted value is not a normal, negative, or zero value

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References resources using name as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "resources",
      "label": "name"
    }
  },
  "type": "string",
  "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
}

cancelOnActionIds

events.schedules.*.cancelOnActionIds

array · Optional; an omitted value is not a normal, negative, or zero value

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.

Field schema

{
  "minItems": 0,
  "uniqueItems": true,
  "type": "array",
  "items": {
    "minLength": 1,
    "maxLength": 128,
    "pattern": "\\S",
    "title": "Identifier",
    "x-usim": {
      "reference": {
        "collection": "events.actions",
        "label": "label"
      }
    },
    "type": "string",
    "description": "A learner action whose completion prevents this scheduled transition from firing."
  },
  "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."
}

Identifier

events.schedules.*.cancelOnActionIds.*

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References events.actions using label as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "events.actions",
      "label": "label"
    }
  },
  "type": "string",
  "description": "A learner action whose completion prevents this scheduled transition from firing."
}

delaySeconds

events.schedules.*.delaySeconds

number · Required when the parent is present

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

Field schema

{
  "exclusiveMinimum": 0,
  "type": "number",
  "description": "Simulated seconds after the declared schedule anchor. State-entry schedules follow onAnchorStateExit and cancellation references; action timing is separate."
}

Identifier

events.schedules.*.conditionId

string · Optional; an omitted value is not a normal, negative, or zero value

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References events.conditions using id as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "events.conditions",
      "label": "id"
    }
  },
  "type": "string",
  "description": "Evaluate when due. False skips that occurrence; it does not poll until true."
}

priority

events.schedules.*.priority

integer · Required when the parent is present

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

Field schema

{
  "type": "integer",
  "description": "Explicit ordering for simultaneous events. Equal priority uses schedule ID lexical order."
}

effectIds

events.schedules.*.effectIds

array · Required when the parent is present

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

Field schema

{
  "type": "array",
  "items": {
    "minLength": 1,
    "maxLength": 128,
    "pattern": "\\S",
    "title": "Identifier",
    "x-usim": {
      "reference": {
        "collection": "events.effects",
        "label": "id"
      }
    },
    "type": "string",
    "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field."
  },
  "description": "Operations applied atomically if the due event and transition guards are valid."
}

Identifier

events.schedules.*.effectIds.*

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References events.effects using id as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "events.effects",
      "label": "id"
    }
  },
  "type": "string",
  "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field."
}

Identifier

events.schedules.*.nextStateId

string · Optional; an omitted value is not a normal, negative, or zero value

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References events.states using title as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "events.states",
      "label": "title"
    }
  },
  "type": "string",
  "description": "Optional phase transition; omit for a result or actor cue that does not move the main phase."
}

repeat

events.schedules.*.repeat

object · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "intervalSeconds",
    "count"
  ],
  "properties": {
    "intervalSeconds": {
      "exclusiveMinimum": 0,
      "type": "number",
      "description": "Numeric interval seconds. Do not infer an omitted value."
    },
    "count": {
      "minimum": 1,
      "type": "integer",
      "description": "Numeric count, at least 1. Do not infer an omitted value."
    }
  },
  "description": "Count includes the initial occurrence. Finite repetition prevents unbounded schedules."
}

intervalSeconds

events.schedules.*.repeat.intervalSeconds

number · Required when the parent is present

Numeric interval seconds. Do not infer an omitted value.

Field schema

{
  "exclusiveMinimum": 0,
  "type": "number",
  "description": "Numeric interval seconds. Do not infer an omitted value."
}

count

events.schedules.*.repeat.count

integer · Required when the parent is present

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

  • Minimum: 1

Field schema

{
  "minimum": 1,
  "type": "integer",
  "description": "Numeric count, at least 1. Do not infer an omitted value."
}

anchor

events.schedules.*.anchor

object · Required when the parent is present

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

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "kind"
  ],
  "properties": {
    "kind": {
      "const": "scenario-start",
      "type": "string",
      "description": "The required literal value \"scenario-start\"."
    }
  },
  "description": "State/action anchors require the corresponding ID. Scenario-start prohibits refId."
}

kind

events.schedules.*.anchor.kind

string · Required when the parent is present

The required literal value "scenario-start".

Field schema

{
  "const": "scenario-start",
  "type": "string",
  "description": "The required literal value \"scenario-start\"."
}

onAnchorStateExit

events.schedules.*.onAnchorStateExit

Value · Optional; an omitted value is not a normal, negative, or zero value

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

Allowed values: cancel, continue

Field schema

{
  "anyOf": [
    {
      "const": "cancel",
      "type": "string",
      "description": "Cancel removes pending occurrences from that entry; re-entry creates a new schedule instance."
    },
    {
      "const": "continue",
      "type": "string",
      "description": "Cancel removes pending occurrences from that entry; re-entry creates a new schedule instance."
    }
  ],
  "description": "Cancel removes pending occurrences from that entry; re-entry creates a new schedule instance."
}

Effects

events.effects

array · Optional; an omitted value is not a normal, negative, or zero value

Named reusable effects that change scenario state or disclosure.

Field schema

{
  "title": "Effects",
  "type": "array",
  "items": {
    "anyOf": [
      {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "kind",
          "targetId",
          "value",
          "unit"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Stable effect identifier referenced by states, actions, or schedules."
          },
          "kind": {
            "const": "set-variable",
            "type": "string",
            "description": "The operation performed by this effect."
          },
          "targetId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "patients.*.variables",
                "label": "id"
              }
            },
            "type": "string",
            "description": "The identifier of the variable or other entity changed by this effect."
          },
          "value": {
            "type": "number",
            "description": "The resulting value, expressed in the target variable’s declared unit."
          },
          "unit": {
            "type": "string",
            "description": "The target variable’s declared unit; effects cannot silently convert units."
          }
        },
        "description": "Structured effects details. Omitted optional values remain unspecified."
      },
      {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "kind",
          "targetId",
          "value",
          "unit",
          "durationSeconds",
          "interpolation"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Stable effect identifier referenced by states, actions, or schedules."
          },
          "kind": {
            "const": "trend-variable",
            "type": "string",
            "description": "Closed operation vocabulary; each kind has its own required operands as defined in this section."
          },
          "targetId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "patients.*.variables",
                "label": "id"
              }
            },
            "type": "string",
            "description": "set-variable/trend-variable target a variable; set-flag targets a flag; reveal targets a history entry, observation, or result; cancel-event targets a schedule; set-monitor-connection targets a patient."
          },
          "value": {
            "type": "number",
            "description": "Absolute replacement or trend target, never an implicit increment. Numeric variable effects require a matching unit field."
          },
          "unit": {
            "type": "string",
            "description": "Unit for a numeric variable target. It must match the target variable's declared unit; the format does not infer conversions."
          },
          "durationSeconds": {
            "exclusiveMinimum": 0,
            "type": "number",
            "description": "Duration of a linear authored change from current value to target. Instant changes use set-variable."
          },
          "interpolation": {
            "const": "linear",
            "type": "string",
            "description": "The format supports one explicit interpolation rule; no inferred dose-response or disease model."
          }
        },
        "description": "Structured effects details. Omitted optional values remain unspecified."
      },
      {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "kind",
          "targetId",
          "percent",
          "unit"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Stable effect identifier referenced by states, actions, or schedules."
          },
          "kind": {
            "const": "scale-variable",
            "type": "string",
            "description": "Closed operation vocabulary; each kind has its own required operands as defined in this section."
          },
          "targetId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "patients.*.variables",
                "label": "id"
              }
            },
            "type": "string",
            "description": "set-variable/trend-variable target a variable; set-flag targets a flag; reveal targets a history entry, observation, or result; cancel-event targets a schedule; set-monitor-connection targets a patient."
          },
          "percent": {
            "minimum": -100,
            "maximum": 1000,
            "type": "number",
            "description": "Numeric percent, at least -100, at most 1000. Do not infer an omitted value."
          },
          "unit": {
            "type": "string",
            "description": "Unit for a numeric variable target. It must match the target variable's declared unit; the format does not infer conversions."
          }
        },
        "description": "Structured effects details. Omitted optional values remain unspecified."
      },
      {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "kind",
          "patientId",
          "modelId"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Stable effect identifier referenced by states, actions, or schedules."
          },
          "kind": {
            "const": "apply-model",
            "type": "string",
            "description": "Closed operation vocabulary; each kind has its own required operands as defined in this section."
          },
          "patientId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "patients",
                "label": "name"
              }
            },
            "type": "string",
            "description": "Identifier of an existing patients entry. Preserve the referenced entry when editing this field."
          },
          "modelId": {
            "pattern": "^[A-Za-z][A-Za-z0-9+.-]*:",
            "type": "string",
            "description": "The model id for this entry. Omit optional information that has not been specified."
          }
        },
        "description": "Structured effects details. Omitted optional values remain unspecified."
      },
      {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "kind",
          "targetId",
          "value"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Stable effect identifier referenced by states, actions, or schedules."
          },
          "kind": {
            "const": "set-flag",
            "type": "string",
            "description": "Closed operation vocabulary; each kind has its own required operands as defined in this section."
          },
          "targetId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "events.flags",
                "label": "id"
              }
            },
            "type": "string",
            "description": "set-variable/trend-variable target a variable; set-flag targets a flag; reveal targets a history entry, observation, or result; cancel-event targets a schedule; set-monitor-connection targets a patient."
          },
          "value": {
            "type": "boolean",
            "description": "Absolute replacement or trend target, never an implicit increment. Numeric variable effects require a matching unit field."
          }
        },
        "description": "Structured effects details. Omitted optional values remain unspecified."
      },
      {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "kind",
          "targetId"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Stable effect identifier referenced by states, actions, or schedules."
          },
          "kind": {
            "const": "reveal",
            "type": "string",
            "description": "Closed operation vocabulary; each kind has its own required operands as defined in this section."
          },
          "targetId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "set-variable/trend-variable target a variable; set-flag targets a flag; reveal targets a history entry, observation, or result; cancel-event targets a schedule; set-monitor-connection targets a patient."
          }
        },
        "description": "Structured effects details. Omitted optional values remain unspecified."
      },
      {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "kind",
          "targetId"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Stable effect identifier referenced by states, actions, or schedules."
          },
          "kind": {
            "const": "cancel-event",
            "type": "string",
            "description": "Closed operation vocabulary; each kind has its own required operands as defined in this section."
          },
          "targetId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "events.schedules",
                "label": "id"
              }
            },
            "type": "string",
            "description": "set-variable/trend-variable target a variable; set-flag targets a flag; reveal targets a history entry, observation, or result; cancel-event targets a schedule; set-monitor-connection targets a patient."
          }
        },
        "description": "Structured effects details. Omitted optional values remain unspecified."
      },
      {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "kind",
          "targetId",
          "channel",
          "value"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Stable effect identifier referenced by states, actions, or schedules."
          },
          "kind": {
            "const": "set-monitor-connection",
            "type": "string",
            "description": "Closed operation vocabulary; each kind has its own required operands as defined in this section."
          },
          "targetId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "patients",
                "label": "name"
              }
            },
            "type": "string",
            "description": "set-variable/trend-variable target a variable; set-flag targets a flag; reveal targets a history entry, observation, or result; cancel-event targets a schedule; set-monitor-connection targets a patient."
          },
          "channel": {
            "anyOf": [
              {
                "const": "ecg",
                "type": "string",
                "description": "The required literal value \"ecg\"."
              },
              {
                "const": "bloodPressure",
                "type": "string",
                "description": "The required literal value \"bloodPressure\"."
              },
              {
                "const": "spo2",
                "type": "string",
                "description": "The required literal value \"spo2\"."
              },
              {
                "const": "respiration",
                "type": "string",
                "description": "The required literal value \"respiration\"."
              },
              {
                "const": "temperature",
                "type": "string",
                "description": "The required literal value \"temperature\"."
              },
              {
                "const": "capnography",
                "type": "string",
                "description": "The required literal value \"capnography\"."
              },
              {
                "const": "arterialPressure",
                "type": "string",
                "description": "The required literal value \"arterialPressure\"."
              }
            ],
            "description": "Select one of the declared channel alternatives; use the fields belonging to that alternative."
          },
          "value": {
            "type": "boolean",
            "description": "Absolute replacement or trend target, never an implicit increment. Numeric variable effects require a matching unit field."
          }
        },
        "description": "Structured effects details. Omitted optional values remain unspecified."
      }
    ],
    "description": "One typed effect with a stable identifier and explicit target."
  },
  "description": "Named reusable effects that change scenario state or disclosure."
}

*

events.effects.*

Value · Required when the parent is present

One typed effect with a stable identifier and explicit target.

Field schema

{
  "anyOf": [
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "id",
        "kind",
        "targetId",
        "value",
        "unit"
      ],
      "properties": {
        "id": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "authoring": {
              "hidden": true
            }
          },
          "type": "string",
          "description": "Stable effect identifier referenced by states, actions, or schedules."
        },
        "kind": {
          "const": "set-variable",
          "type": "string",
          "description": "The operation performed by this effect."
        },
        "targetId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "patients.*.variables",
              "label": "id"
            }
          },
          "type": "string",
          "description": "The identifier of the variable or other entity changed by this effect."
        },
        "value": {
          "type": "number",
          "description": "The resulting value, expressed in the target variable’s declared unit."
        },
        "unit": {
          "type": "string",
          "description": "The target variable’s declared unit; effects cannot silently convert units."
        }
      },
      "description": "Structured effects details. Omitted optional values remain unspecified."
    },
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "id",
        "kind",
        "targetId",
        "value",
        "unit",
        "durationSeconds",
        "interpolation"
      ],
      "properties": {
        "id": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "authoring": {
              "hidden": true
            }
          },
          "type": "string",
          "description": "Stable effect identifier referenced by states, actions, or schedules."
        },
        "kind": {
          "const": "trend-variable",
          "type": "string",
          "description": "Closed operation vocabulary; each kind has its own required operands as defined in this section."
        },
        "targetId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "patients.*.variables",
              "label": "id"
            }
          },
          "type": "string",
          "description": "set-variable/trend-variable target a variable; set-flag targets a flag; reveal targets a history entry, observation, or result; cancel-event targets a schedule; set-monitor-connection targets a patient."
        },
        "value": {
          "type": "number",
          "description": "Absolute replacement or trend target, never an implicit increment. Numeric variable effects require a matching unit field."
        },
        "unit": {
          "type": "string",
          "description": "Unit for a numeric variable target. It must match the target variable's declared unit; the format does not infer conversions."
        },
        "durationSeconds": {
          "exclusiveMinimum": 0,
          "type": "number",
          "description": "Duration of a linear authored change from current value to target. Instant changes use set-variable."
        },
        "interpolation": {
          "const": "linear",
          "type": "string",
          "description": "The format supports one explicit interpolation rule; no inferred dose-response or disease model."
        }
      },
      "description": "Structured effects details. Omitted optional values remain unspecified."
    },
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "id",
        "kind",
        "targetId",
        "percent",
        "unit"
      ],
      "properties": {
        "id": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "authoring": {
              "hidden": true
            }
          },
          "type": "string",
          "description": "Stable effect identifier referenced by states, actions, or schedules."
        },
        "kind": {
          "const": "scale-variable",
          "type": "string",
          "description": "Closed operation vocabulary; each kind has its own required operands as defined in this section."
        },
        "targetId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "patients.*.variables",
              "label": "id"
            }
          },
          "type": "string",
          "description": "set-variable/trend-variable target a variable; set-flag targets a flag; reveal targets a history entry, observation, or result; cancel-event targets a schedule; set-monitor-connection targets a patient."
        },
        "percent": {
          "minimum": -100,
          "maximum": 1000,
          "type": "number",
          "description": "Numeric percent, at least -100, at most 1000. Do not infer an omitted value."
        },
        "unit": {
          "type": "string",
          "description": "Unit for a numeric variable target. It must match the target variable's declared unit; the format does not infer conversions."
        }
      },
      "description": "Structured effects details. Omitted optional values remain unspecified."
    },
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "id",
        "kind",
        "patientId",
        "modelId"
      ],
      "properties": {
        "id": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "authoring": {
              "hidden": true
            }
          },
          "type": "string",
          "description": "Stable effect identifier referenced by states, actions, or schedules."
        },
        "kind": {
          "const": "apply-model",
          "type": "string",
          "description": "Closed operation vocabulary; each kind has its own required operands as defined in this section."
        },
        "patientId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "patients",
              "label": "name"
            }
          },
          "type": "string",
          "description": "Identifier of an existing patients entry. Preserve the referenced entry when editing this field."
        },
        "modelId": {
          "pattern": "^[A-Za-z][A-Za-z0-9+.-]*:",
          "type": "string",
          "description": "The model id for this entry. Omit optional information that has not been specified."
        }
      },
      "description": "Structured effects details. Omitted optional values remain unspecified."
    },
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "id",
        "kind",
        "targetId",
        "value"
      ],
      "properties": {
        "id": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "authoring": {
              "hidden": true
            }
          },
          "type": "string",
          "description": "Stable effect identifier referenced by states, actions, or schedules."
        },
        "kind": {
          "const": "set-flag",
          "type": "string",
          "description": "Closed operation vocabulary; each kind has its own required operands as defined in this section."
        },
        "targetId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "events.flags",
              "label": "id"
            }
          },
          "type": "string",
          "description": "set-variable/trend-variable target a variable; set-flag targets a flag; reveal targets a history entry, observation, or result; cancel-event targets a schedule; set-monitor-connection targets a patient."
        },
        "value": {
          "type": "boolean",
          "description": "Absolute replacement or trend target, never an implicit increment. Numeric variable effects require a matching unit field."
        }
      },
      "description": "Structured effects details. Omitted optional values remain unspecified."
    },
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "id",
        "kind",
        "targetId"
      ],
      "properties": {
        "id": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "authoring": {
              "hidden": true
            }
          },
          "type": "string",
          "description": "Stable effect identifier referenced by states, actions, or schedules."
        },
        "kind": {
          "const": "reveal",
          "type": "string",
          "description": "Closed operation vocabulary; each kind has its own required operands as defined in this section."
        },
        "targetId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "authoring": {
              "hidden": true
            }
          },
          "type": "string",
          "description": "set-variable/trend-variable target a variable; set-flag targets a flag; reveal targets a history entry, observation, or result; cancel-event targets a schedule; set-monitor-connection targets a patient."
        }
      },
      "description": "Structured effects details. Omitted optional values remain unspecified."
    },
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "id",
        "kind",
        "targetId"
      ],
      "properties": {
        "id": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "authoring": {
              "hidden": true
            }
          },
          "type": "string",
          "description": "Stable effect identifier referenced by states, actions, or schedules."
        },
        "kind": {
          "const": "cancel-event",
          "type": "string",
          "description": "Closed operation vocabulary; each kind has its own required operands as defined in this section."
        },
        "targetId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "events.schedules",
              "label": "id"
            }
          },
          "type": "string",
          "description": "set-variable/trend-variable target a variable; set-flag targets a flag; reveal targets a history entry, observation, or result; cancel-event targets a schedule; set-monitor-connection targets a patient."
        }
      },
      "description": "Structured effects details. Omitted optional values remain unspecified."
    },
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "id",
        "kind",
        "targetId",
        "channel",
        "value"
      ],
      "properties": {
        "id": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "authoring": {
              "hidden": true
            }
          },
          "type": "string",
          "description": "Stable effect identifier referenced by states, actions, or schedules."
        },
        "kind": {
          "const": "set-monitor-connection",
          "type": "string",
          "description": "Closed operation vocabulary; each kind has its own required operands as defined in this section."
        },
        "targetId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "patients",
              "label": "name"
            }
          },
          "type": "string",
          "description": "set-variable/trend-variable target a variable; set-flag targets a flag; reveal targets a history entry, observation, or result; cancel-event targets a schedule; set-monitor-connection targets a patient."
        },
        "channel": {
          "anyOf": [
            {
              "const": "ecg",
              "type": "string",
              "description": "The required literal value \"ecg\"."
            },
            {
              "const": "bloodPressure",
              "type": "string",
              "description": "The required literal value \"bloodPressure\"."
            },
            {
              "const": "spo2",
              "type": "string",
              "description": "The required literal value \"spo2\"."
            },
            {
              "const": "respiration",
              "type": "string",
              "description": "The required literal value \"respiration\"."
            },
            {
              "const": "temperature",
              "type": "string",
              "description": "The required literal value \"temperature\"."
            },
            {
              "const": "capnography",
              "type": "string",
              "description": "The required literal value \"capnography\"."
            },
            {
              "const": "arterialPressure",
              "type": "string",
              "description": "The required literal value \"arterialPressure\"."
            }
          ],
          "description": "Select one of the declared channel alternatives; use the fields belonging to that alternative."
        },
        "value": {
          "type": "boolean",
          "description": "Absolute replacement or trend target, never an implicit increment. Numeric variable effects require a matching unit field."
        }
      },
      "description": "Structured effects details. Omitted optional values remain unspecified."
    }
  ],
  "description": "One typed effect with a stable identifier and explicit target."
}

Identifier

events.effects.*.id

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "Stable effect identifier referenced by states, actions, or schedules."
}

kind

events.effects.*.kind

string · Required when the parent is present

The operation performed by this effect.

Field schema

{
  "const": "set-variable",
  "type": "string",
  "description": "The operation performed by this effect."
}

Identifier

events.effects.*.targetId

string · Optional; an omitted value is not a normal, negative, or zero value

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References patients.*.variables using id as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "patients.*.variables",
      "label": "id"
    }
  },
  "type": "string",
  "description": "The identifier of the variable or other entity changed by this effect."
}

value

events.effects.*.value

number · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "number",
  "description": "The resulting value, expressed in the target variable’s declared unit."
}

unit

events.effects.*.unit

string · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "type": "string",
  "description": "The target variable’s declared unit; effects cannot silently convert units."
}

durationSeconds

events.effects.*.durationSeconds

number · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "exclusiveMinimum": 0,
  "type": "number",
  "description": "Duration of a linear authored change from current value to target. Instant changes use set-variable."
}

interpolation

events.effects.*.interpolation

string · Optional; an omitted value is not a normal, negative, or zero value

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

Field schema

{
  "const": "linear",
  "type": "string",
  "description": "The format supports one explicit interpolation rule; no inferred dose-response or disease model."
}

percent

events.effects.*.percent

number · Optional; an omitted value is not a normal, negative, or zero value

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

  • Minimum: -100
  • Maximum: 1000

Field schema

{
  "minimum": -100,
  "maximum": 1000,
  "type": "number",
  "description": "Numeric percent, at least -100, at most 1000. Do not infer an omitted value."
}

Identifier

events.effects.*.patientId

string · Optional; an omitted value is not a normal, negative, or zero value

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References patients using name as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "patients",
      "label": "name"
    }
  },
  "type": "string",
  "description": "Identifier of an existing patients entry. Preserve the referenced entry when editing this field."
}

modelId

events.effects.*.modelId

string · Optional; an omitted value is not a normal, negative, or zero value

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

  • Pattern: ^[A-Za-z][A-Za-z0-9+.-]*:

Field schema

{
  "pattern": "^[A-Za-z][A-Za-z0-9+.-]*:",
  "type": "string",
  "description": "The model id for this entry. Omit optional information that has not been specified."
}

channel

events.effects.*.channel

Value · Optional; an omitted value is not a normal, negative, or zero value

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

Allowed values: ecg, bloodPressure, spo2, respiration, temperature, capnography, arterialPressure

Field schema

{
  "anyOf": [
    {
      "const": "ecg",
      "type": "string",
      "description": "The required literal value \"ecg\"."
    },
    {
      "const": "bloodPressure",
      "type": "string",
      "description": "The required literal value \"bloodPressure\"."
    },
    {
      "const": "spo2",
      "type": "string",
      "description": "The required literal value \"spo2\"."
    },
    {
      "const": "respiration",
      "type": "string",
      "description": "The required literal value \"respiration\"."
    },
    {
      "const": "temperature",
      "type": "string",
      "description": "The required literal value \"temperature\"."
    },
    {
      "const": "capnography",
      "type": "string",
      "description": "The required literal value \"capnography\"."
    },
    {
      "const": "arterialPressure",
      "type": "string",
      "description": "The required literal value \"arterialPressure\"."
    }
  ],
  "description": "Select one of the declared channel alternatives; use the fields belonging to that alternative."
}

States

events.states

array · Required when the parent is present

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.

  • Maximum entries: 128

Field schema

{
  "title": "States",
  "maxItems": 128,
  "x-usim": {
    "authoring": {
      "editor": "graph"
    }
  },
  "type": "array",
  "items": {
    "additionalProperties": false,
    "x-usim": {
      "authoring": {}
    },
    "type": "object",
    "required": [
      "id",
      "title",
      "learnerBrief",
      "facilitatorBrief",
      "kind"
    ],
    "properties": {
      "id": {
        "title": "Identifier",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "x-usim": {
          "authoring": {
            "hidden": true
          }
        },
        "type": "string",
        "description": "A stable identifier used to reference this entry. Keep it unchanged when editing the entry's name or content."
      },
      "title": {
        "title": "State title",
        "maxLength": 240,
        "x-usim": {
          "authoring": {}
        },
        "type": "string",
        "description": "A short name for this phase, such as Initial assessment or Worsening respiratory distress."
      },
      "entryConditionId": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "reference": {
            "collection": "events.conditions",
            "label": "id"
          },
          "execution": {
            "capability": "conditional-execution"
          }
        },
        "type": "string",
        "description": "Guard checked immediately before entry. Failed manual transitions are rejected; scheduled failures are recorded and skipped."
      },
      "exitConditionId": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "reference": {
            "collection": "events.conditions",
            "label": "id"
          },
          "execution": {
            "capability": "conditional-execution"
          }
        },
        "type": "string",
        "description": "Must hold to leave the phase; does not cause a transition by itself."
      },
      "onEnterEffectIds": {
        "title": "Effects on entry",
        "type": "array",
        "items": {
          "title": "Entry effect",
          "maxLength": 128,
          "minLength": 1,
          "pattern": "\\S",
          "x-usim": {
            "reference": {
              "collection": "events.effects",
              "label": "id",
              "excludeScheduled": false
            },
            "authoring": {}
          },
          "type": "string",
          "description": "An effect applied at this position in the state’s entry sequence."
        },
        "description": "Ordered effect identifiers applied when this state is entered."
      },
      "onExitEffectIds": {
        "title": "Effects on exit",
        "type": "array",
        "items": {
          "title": "Exit effect",
          "maxLength": 128,
          "minLength": 1,
          "pattern": "\\S",
          "x-usim": {
            "reference": {
              "collection": "events.effects",
              "label": "id",
              "excludeScheduled": false
            },
            "authoring": {}
          },
          "type": "string",
          "description": "An effect applied at this position in the state’s exit sequence."
        },
        "description": "Ordered effect identifiers applied when this state is exited; execution requires support for exit effects."
      },
      "learnerBrief": {
        "title": "Learner prompt",
        "maxLength": 8000,
        "x-usim": {
          "authoring": {
            "editor": "textarea"
          }
        },
        "type": "string",
        "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."
      },
      "facilitatorBrief": {
        "title": "Tutor prompt",
        "maxLength": 8000,
        "x-usim": {
          "authoring": {
            "editor": "textarea"
          }
        },
        "type": "string",
        "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."
      },
      "objectiveIds": {
        "minItems": 0,
        "uniqueItems": true,
        "type": "array",
        "items": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "education.objectives",
              "label": "statement"
            }
          },
          "type": "string",
          "description": "Identifier of an existing education.objectives entry. Preserve the referenced entry when editing this field."
        },
        "description": "Links the phase to an educational objective."
      },
      "kind": {
        "type": "string",
        "title": "State kind",
        "enum": [
          "baseline",
          "phase",
          "conclusion"
        ],
        "description": "Baseline starts the case; triggered and scheduled describe intermediate phases; conclusion ends the run. A scheduled phase still needs an incoming timed interaction."
      },
      "monitor": {
        "title": "Monitor",
        "additionalProperties": false,
        "x-usim": {
          "authoring": {
            "editor": "monitor"
          }
        },
        "type": "object",
        "properties": {
          "rhythm": {
            "type": "string",
            "title": "Monitor rhythm",
            "enum": [
              "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"
            ],
            "description": "The ECG rhythm displayed on the monitor. Select the rhythm separately from whether the patient has a palpable pulse."
          },
          "pulsePresent": {
            "title": "Pulse present",
            "type": "boolean",
            "description": "Whether a palpable pulse is present. Use this to distinguish perfusing and pulseless presentations of the displayed rhythm."
          },
          "connections": {
            "title": "Monitor connections",
            "additionalProperties": false,
            "x-usim": {
              "authoring": {}
            },
            "type": "object",
            "properties": {
              "ecg": {
                "title": "ECG",
                "type": "boolean",
                "description": "ECG: connected exposes the available measurement; disconnected hides it without changing physiology."
              },
              "bloodPressure": {
                "title": "Blood pressure cuff",
                "type": "boolean",
                "description": "Blood pressure cuff: connected exposes the available measurement; disconnected hides it without changing physiology."
              },
              "spo2": {
                "title": "Pulse oximetry",
                "type": "boolean",
                "description": "Pulse oximetry: connected exposes the available measurement; disconnected hides it without changing physiology."
              },
              "respiration": {
                "title": "Respiratory monitoring",
                "type": "boolean",
                "description": "Respiratory monitoring: connected exposes the available measurement; disconnected hides it without changing physiology."
              },
              "temperature": {
                "title": "Temperature probe",
                "type": "boolean",
                "description": "Temperature probe: connected exposes the available measurement; disconnected hides it without changing physiology."
              },
              "capnography": {
                "title": "Capnography",
                "type": "boolean",
                "description": "Capnography: connected exposes the available measurement; disconnected hides it without changing physiology."
              },
              "arterialPressure": {
                "title": "Arterial pressure",
                "type": "boolean",
                "description": "Arterial pressure: connected exposes the available measurement; disconnected hides it without changing physiology."
              }
            },
            "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."
          }
        },
        "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."
      },
      "key": {
        "title": "Key state",
        "type": "boolean",
        "description": "Mark an educationally important phase. This does not award points or require every path to pass through the phase."
      },
      "resourceTrigger": {
        "title": "Enter when resource results are available",
        "additionalProperties": false,
        "x-usim": {
          "authoring": {}
        },
        "type": "object",
        "required": [
          "mode",
          "objectIds"
        ],
        "properties": {
          "mode": {
            "type": "string",
            "title": "Results required",
            "enum": [
              "any",
              "all"
            ],
            "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."
          },
          "objectIds": {
            "title": "Selected resources",
            "minItems": 1,
            "maxItems": 1000,
            "uniqueItems": true,
            "type": "array",
            "items": {
              "title": "Resource",
              "maxLength": 128,
              "minLength": 1,
              "pattern": "\\S",
              "x-usim": {
                "reference": {
                  "collection": "resources",
                  "label": "name",
                  "excludeScheduled": false
                },
                "authoring": {}
              },
              "type": "string",
              "description": "The identifier of a learner-requestable resource required by this event result trigger."
            },
            "description": "Scenario resources whose completed results trigger this event. Select learner-requestable resources without a separate resource destination event."
          }
        },
        "description": "Enter this event once when selected learner-requested resource results become available. Incoming transitions remain alternative paths into the event."
      }
    },
    "description": "One phase of the case, with learner information, tutor guidance, and any changed patient observations."
  },
  "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."
}

*

events.states.*

object · Required when the parent is present

One phase of the case, with learner information, tutor guidance, and any changed patient observations.

Field schema

{
  "additionalProperties": false,
  "x-usim": {
    "authoring": {}
  },
  "type": "object",
  "required": [
    "id",
    "title",
    "learnerBrief",
    "facilitatorBrief",
    "kind"
  ],
  "properties": {
    "id": {
      "title": "Identifier",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "x-usim": {
        "authoring": {
          "hidden": true
        }
      },
      "type": "string",
      "description": "A stable identifier used to reference this entry. Keep it unchanged when editing the entry's name or content."
    },
    "title": {
      "title": "State title",
      "maxLength": 240,
      "x-usim": {
        "authoring": {}
      },
      "type": "string",
      "description": "A short name for this phase, such as Initial assessment or Worsening respiratory distress."
    },
    "entryConditionId": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "reference": {
          "collection": "events.conditions",
          "label": "id"
        },
        "execution": {
          "capability": "conditional-execution"
        }
      },
      "type": "string",
      "description": "Guard checked immediately before entry. Failed manual transitions are rejected; scheduled failures are recorded and skipped."
    },
    "exitConditionId": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "reference": {
          "collection": "events.conditions",
          "label": "id"
        },
        "execution": {
          "capability": "conditional-execution"
        }
      },
      "type": "string",
      "description": "Must hold to leave the phase; does not cause a transition by itself."
    },
    "onEnterEffectIds": {
      "title": "Effects on entry",
      "type": "array",
      "items": {
        "title": "Entry effect",
        "maxLength": 128,
        "minLength": 1,
        "pattern": "\\S",
        "x-usim": {
          "reference": {
            "collection": "events.effects",
            "label": "id",
            "excludeScheduled": false
          },
          "authoring": {}
        },
        "type": "string",
        "description": "An effect applied at this position in the state’s entry sequence."
      },
      "description": "Ordered effect identifiers applied when this state is entered."
    },
    "onExitEffectIds": {
      "title": "Effects on exit",
      "type": "array",
      "items": {
        "title": "Exit effect",
        "maxLength": 128,
        "minLength": 1,
        "pattern": "\\S",
        "x-usim": {
          "reference": {
            "collection": "events.effects",
            "label": "id",
            "excludeScheduled": false
          },
          "authoring": {}
        },
        "type": "string",
        "description": "An effect applied at this position in the state’s exit sequence."
      },
      "description": "Ordered effect identifiers applied when this state is exited; execution requires support for exit effects."
    },
    "learnerBrief": {
      "title": "Learner prompt",
      "maxLength": 8000,
      "x-usim": {
        "authoring": {
          "editor": "textarea"
        }
      },
      "type": "string",
      "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."
    },
    "facilitatorBrief": {
      "title": "Tutor prompt",
      "maxLength": 8000,
      "x-usim": {
        "authoring": {
          "editor": "textarea"
        }
      },
      "type": "string",
      "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."
    },
    "objectiveIds": {
      "minItems": 0,
      "uniqueItems": true,
      "type": "array",
      "items": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "reference": {
            "collection": "education.objectives",
            "label": "statement"
          }
        },
        "type": "string",
        "description": "Identifier of an existing education.objectives entry. Preserve the referenced entry when editing this field."
      },
      "description": "Links the phase to an educational objective."
    },
    "kind": {
      "type": "string",
      "title": "State kind",
      "enum": [
        "baseline",
        "phase",
        "conclusion"
      ],
      "description": "Baseline starts the case; triggered and scheduled describe intermediate phases; conclusion ends the run. A scheduled phase still needs an incoming timed interaction."
    },
    "monitor": {
      "title": "Monitor",
      "additionalProperties": false,
      "x-usim": {
        "authoring": {
          "editor": "monitor"
        }
      },
      "type": "object",
      "properties": {
        "rhythm": {
          "type": "string",
          "title": "Monitor rhythm",
          "enum": [
            "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"
          ],
          "description": "The ECG rhythm displayed on the monitor. Select the rhythm separately from whether the patient has a palpable pulse."
        },
        "pulsePresent": {
          "title": "Pulse present",
          "type": "boolean",
          "description": "Whether a palpable pulse is present. Use this to distinguish perfusing and pulseless presentations of the displayed rhythm."
        },
        "connections": {
          "title": "Monitor connections",
          "additionalProperties": false,
          "x-usim": {
            "authoring": {}
          },
          "type": "object",
          "properties": {
            "ecg": {
              "title": "ECG",
              "type": "boolean",
              "description": "ECG: connected exposes the available measurement; disconnected hides it without changing physiology."
            },
            "bloodPressure": {
              "title": "Blood pressure cuff",
              "type": "boolean",
              "description": "Blood pressure cuff: connected exposes the available measurement; disconnected hides it without changing physiology."
            },
            "spo2": {
              "title": "Pulse oximetry",
              "type": "boolean",
              "description": "Pulse oximetry: connected exposes the available measurement; disconnected hides it without changing physiology."
            },
            "respiration": {
              "title": "Respiratory monitoring",
              "type": "boolean",
              "description": "Respiratory monitoring: connected exposes the available measurement; disconnected hides it without changing physiology."
            },
            "temperature": {
              "title": "Temperature probe",
              "type": "boolean",
              "description": "Temperature probe: connected exposes the available measurement; disconnected hides it without changing physiology."
            },
            "capnography": {
              "title": "Capnography",
              "type": "boolean",
              "description": "Capnography: connected exposes the available measurement; disconnected hides it without changing physiology."
            },
            "arterialPressure": {
              "title": "Arterial pressure",
              "type": "boolean",
              "description": "Arterial pressure: connected exposes the available measurement; disconnected hides it without changing physiology."
            }
          },
          "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."
        }
      },
      "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."
    },
    "key": {
      "title": "Key state",
      "type": "boolean",
      "description": "Mark an educationally important phase. This does not award points or require every path to pass through the phase."
    },
    "resourceTrigger": {
      "title": "Enter when resource results are available",
      "additionalProperties": false,
      "x-usim": {
        "authoring": {}
      },
      "type": "object",
      "required": [
        "mode",
        "objectIds"
      ],
      "properties": {
        "mode": {
          "type": "string",
          "title": "Results required",
          "enum": [
            "any",
            "all"
          ],
          "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."
        },
        "objectIds": {
          "title": "Selected resources",
          "minItems": 1,
          "maxItems": 1000,
          "uniqueItems": true,
          "type": "array",
          "items": {
            "title": "Resource",
            "maxLength": 128,
            "minLength": 1,
            "pattern": "\\S",
            "x-usim": {
              "reference": {
                "collection": "resources",
                "label": "name",
                "excludeScheduled": false
              },
              "authoring": {}
            },
            "type": "string",
            "description": "The identifier of a learner-requestable resource required by this event result trigger."
          },
          "description": "Scenario resources whose completed results trigger this event. Select learner-requestable resources without a separate resource destination event."
        }
      },
      "description": "Enter this event once when selected learner-requested resource results become available. Incoming transitions remain alternative paths into the event."
    }
  },
  "description": "One phase of the case, with learner information, tutor guidance, and any changed patient observations."
}

Identifier

events.states.*.id

string · Required when the parent is present

A stable identifier used to reference this entry. Keep it unchanged when editing the entry's name or content.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "title": "Identifier",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "A stable identifier used to reference this entry. Keep it unchanged when editing the entry's name or content."
}

State title

events.states.*.title

string · Required when the parent is present

A short name for this phase, such as Initial assessment or Worsening respiratory distress.

  • Maximum length: 240 characters

Field schema

{
  "title": "State title",
  "maxLength": 240,
  "x-usim": {
    "authoring": {}
  },
  "type": "string",
  "description": "A short name for this phase, such as Initial assessment or Worsening respiratory distress."
}

Identifier

events.states.*.entryConditionId

string · Optional; an omitted value is not a normal, negative, or zero value

Guard checked immediately before entry. Failed manual transitions are rejected; scheduled failures are recorded and skipped.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References events.conditions using id as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "events.conditions",
      "label": "id"
    },
    "execution": {
      "capability": "conditional-execution"
    }
  },
  "type": "string",
  "description": "Guard checked immediately before entry. Failed manual transitions are rejected; scheduled failures are recorded and skipped."
}

Identifier

events.states.*.exitConditionId

string · Optional; an omitted value is not a normal, negative, or zero value

Must hold to leave the phase; does not cause a transition by itself.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References events.conditions using id as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "events.conditions",
      "label": "id"
    },
    "execution": {
      "capability": "conditional-execution"
    }
  },
  "type": "string",
  "description": "Must hold to leave the phase; does not cause a transition by itself."
}

Effects on entry

events.states.*.onEnterEffectIds

array · Optional; an omitted value is not a normal, negative, or zero value

Ordered effect identifiers applied when this state is entered.

Field schema

{
  "title": "Effects on entry",
  "type": "array",
  "items": {
    "title": "Entry effect",
    "maxLength": 128,
    "minLength": 1,
    "pattern": "\\S",
    "x-usim": {
      "reference": {
        "collection": "events.effects",
        "label": "id",
        "excludeScheduled": false
      },
      "authoring": {}
    },
    "type": "string",
    "description": "An effect applied at this position in the state’s entry sequence."
  },
  "description": "Ordered effect identifiers applied when this state is entered."
}

Entry effect

events.states.*.onEnterEffectIds.*

string · Required when the parent is present

An effect applied at this position in the state’s entry sequence.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References events.effects using id as the display label.

Field schema

{
  "title": "Entry effect",
  "maxLength": 128,
  "minLength": 1,
  "pattern": "\\S",
  "x-usim": {
    "reference": {
      "collection": "events.effects",
      "label": "id",
      "excludeScheduled": false
    },
    "authoring": {}
  },
  "type": "string",
  "description": "An effect applied at this position in the state’s entry sequence."
}

Effects on exit

events.states.*.onExitEffectIds

array · Optional; an omitted value is not a normal, negative, or zero value

Ordered effect identifiers applied when this state is exited; execution requires support for exit effects.

Field schema

{
  "title": "Effects on exit",
  "type": "array",
  "items": {
    "title": "Exit effect",
    "maxLength": 128,
    "minLength": 1,
    "pattern": "\\S",
    "x-usim": {
      "reference": {
        "collection": "events.effects",
        "label": "id",
        "excludeScheduled": false
      },
      "authoring": {}
    },
    "type": "string",
    "description": "An effect applied at this position in the state’s exit sequence."
  },
  "description": "Ordered effect identifiers applied when this state is exited; execution requires support for exit effects."
}

Exit effect

events.states.*.onExitEffectIds.*

string · Required when the parent is present

An effect applied at this position in the state’s exit sequence.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References events.effects using id as the display label.

Field schema

{
  "title": "Exit effect",
  "maxLength": 128,
  "minLength": 1,
  "pattern": "\\S",
  "x-usim": {
    "reference": {
      "collection": "events.effects",
      "label": "id",
      "excludeScheduled": false
    },
    "authoring": {}
  },
  "type": "string",
  "description": "An effect applied at this position in the state’s exit sequence."
}

Learner prompt

events.states.*.learnerBrief

string · Required when the parent is present

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.

  • Maximum length: 8000 characters

Field schema

{
  "title": "Learner prompt",
  "maxLength": 8000,
  "x-usim": {
    "authoring": {
      "editor": "textarea"
    }
  },
  "type": "string",
  "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."
}

Tutor prompt

events.states.*.facilitatorBrief

string · Required when the parent is present

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.

  • Maximum length: 8000 characters

Field schema

{
  "title": "Tutor prompt",
  "maxLength": 8000,
  "x-usim": {
    "authoring": {
      "editor": "textarea"
    }
  },
  "type": "string",
  "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."
}

objectiveIds

events.states.*.objectiveIds

array · Optional; an omitted value is not a normal, negative, or zero value

Links the phase to an educational objective.

Field schema

{
  "minItems": 0,
  "uniqueItems": true,
  "type": "array",
  "items": {
    "minLength": 1,
    "maxLength": 128,
    "pattern": "\\S",
    "title": "Identifier",
    "x-usim": {
      "reference": {
        "collection": "education.objectives",
        "label": "statement"
      }
    },
    "type": "string",
    "description": "Identifier of an existing education.objectives entry. Preserve the referenced entry when editing this field."
  },
  "description": "Links the phase to an educational objective."
}

Identifier

events.states.*.objectiveIds.*

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References education.objectives using statement as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "education.objectives",
      "label": "statement"
    }
  },
  "type": "string",
  "description": "Identifier of an existing education.objectives entry. Preserve the referenced entry when editing this field."
}

State kind

events.states.*.kind

string · Required when the parent is present

Baseline starts the case; triggered and scheduled describe intermediate phases; conclusion ends the run. A scheduled phase still needs an incoming timed interaction.

Allowed values: baseline, phase, conclusion

Field schema

{
  "type": "string",
  "title": "State kind",
  "enum": [
    "baseline",
    "phase",
    "conclusion"
  ],
  "description": "Baseline starts the case; triggered and scheduled describe intermediate phases; conclusion ends the run. A scheduled phase still needs an incoming timed interaction."
}

Monitor

events.states.*.monitor

object · Optional; an omitted value is not a normal, negative, or zero value

Monitor rhythm, pulse status, and channel connection overrides for this phase. Connection-only overrides preserve the preceding rhythm; omitted channels keep their preceding connection.

Field schema

{
  "title": "Monitor",
  "additionalProperties": false,
  "x-usim": {
    "authoring": {
      "editor": "monitor"
    }
  },
  "type": "object",
  "properties": {
    "rhythm": {
      "type": "string",
      "title": "Monitor rhythm",
      "enum": [
        "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"
      ],
      "description": "The ECG rhythm displayed on the monitor. Select the rhythm separately from whether the patient has a palpable pulse."
    },
    "pulsePresent": {
      "title": "Pulse present",
      "type": "boolean",
      "description": "Whether a palpable pulse is present. Use this to distinguish perfusing and pulseless presentations of the displayed rhythm."
    },
    "connections": {
      "title": "Monitor connections",
      "additionalProperties": false,
      "x-usim": {
        "authoring": {}
      },
      "type": "object",
      "properties": {
        "ecg": {
          "title": "ECG",
          "type": "boolean",
          "description": "ECG: connected exposes the available measurement; disconnected hides it without changing physiology."
        },
        "bloodPressure": {
          "title": "Blood pressure cuff",
          "type": "boolean",
          "description": "Blood pressure cuff: connected exposes the available measurement; disconnected hides it without changing physiology."
        },
        "spo2": {
          "title": "Pulse oximetry",
          "type": "boolean",
          "description": "Pulse oximetry: connected exposes the available measurement; disconnected hides it without changing physiology."
        },
        "respiration": {
          "title": "Respiratory monitoring",
          "type": "boolean",
          "description": "Respiratory monitoring: connected exposes the available measurement; disconnected hides it without changing physiology."
        },
        "temperature": {
          "title": "Temperature probe",
          "type": "boolean",
          "description": "Temperature probe: connected exposes the available measurement; disconnected hides it without changing physiology."
        },
        "capnography": {
          "title": "Capnography",
          "type": "boolean",
          "description": "Capnography: connected exposes the available measurement; disconnected hides it without changing physiology."
        },
        "arterialPressure": {
          "title": "Arterial pressure",
          "type": "boolean",
          "description": "Arterial pressure: connected exposes the available measurement; disconnected hides it without changing physiology."
        }
      },
      "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."
    }
  },
  "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."
}

Monitor rhythm

events.states.*.monitor.rhythm

string · Optional; an omitted value is not a normal, negative, or zero value

The ECG rhythm displayed on the monitor. Select the rhythm separately from whether the patient has a palpable pulse.

Allowed values: 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

Field schema

{
  "type": "string",
  "title": "Monitor rhythm",
  "enum": [
    "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"
  ],
  "description": "The ECG rhythm displayed on the monitor. Select the rhythm separately from whether the patient has a palpable pulse."
}

Pulse present

events.states.*.monitor.pulsePresent

boolean · Optional; an omitted value is not a normal, negative, or zero value

Whether a palpable pulse is present. Use this to distinguish perfusing and pulseless presentations of the displayed rhythm.

Field schema

{
  "title": "Pulse present",
  "type": "boolean",
  "description": "Whether a palpable pulse is present. Use this to distinguish perfusing and pulseless presentations of the displayed rhythm."
}

Monitor connections

events.states.*.monitor.connections

object · Optional; an omitted value is not a normal, negative, or zero value

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.

Field schema

{
  "title": "Monitor connections",
  "additionalProperties": false,
  "x-usim": {
    "authoring": {}
  },
  "type": "object",
  "properties": {
    "ecg": {
      "title": "ECG",
      "type": "boolean",
      "description": "ECG: connected exposes the available measurement; disconnected hides it without changing physiology."
    },
    "bloodPressure": {
      "title": "Blood pressure cuff",
      "type": "boolean",
      "description": "Blood pressure cuff: connected exposes the available measurement; disconnected hides it without changing physiology."
    },
    "spo2": {
      "title": "Pulse oximetry",
      "type": "boolean",
      "description": "Pulse oximetry: connected exposes the available measurement; disconnected hides it without changing physiology."
    },
    "respiration": {
      "title": "Respiratory monitoring",
      "type": "boolean",
      "description": "Respiratory monitoring: connected exposes the available measurement; disconnected hides it without changing physiology."
    },
    "temperature": {
      "title": "Temperature probe",
      "type": "boolean",
      "description": "Temperature probe: connected exposes the available measurement; disconnected hides it without changing physiology."
    },
    "capnography": {
      "title": "Capnography",
      "type": "boolean",
      "description": "Capnography: connected exposes the available measurement; disconnected hides it without changing physiology."
    },
    "arterialPressure": {
      "title": "Arterial pressure",
      "type": "boolean",
      "description": "Arterial pressure: connected exposes the available measurement; disconnected hides it without changing physiology."
    }
  },
  "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."
}

ECG

events.states.*.monitor.connections.ecg

boolean · Optional; an omitted value is not a normal, negative, or zero value

ECG: connected exposes the available measurement; disconnected hides it without changing physiology.

Field schema

{
  "title": "ECG",
  "type": "boolean",
  "description": "ECG: connected exposes the available measurement; disconnected hides it without changing physiology."
}

Blood pressure cuff

events.states.*.monitor.connections.bloodPressure

boolean · Optional; an omitted value is not a normal, negative, or zero value

Blood pressure cuff: connected exposes the available measurement; disconnected hides it without changing physiology.

Field schema

{
  "title": "Blood pressure cuff",
  "type": "boolean",
  "description": "Blood pressure cuff: connected exposes the available measurement; disconnected hides it without changing physiology."
}

Pulse oximetry

events.states.*.monitor.connections.spo2

boolean · Optional; an omitted value is not a normal, negative, or zero value

Pulse oximetry: connected exposes the available measurement; disconnected hides it without changing physiology.

Field schema

{
  "title": "Pulse oximetry",
  "type": "boolean",
  "description": "Pulse oximetry: connected exposes the available measurement; disconnected hides it without changing physiology."
}

Respiratory monitoring

events.states.*.monitor.connections.respiration

boolean · Optional; an omitted value is not a normal, negative, or zero value

Respiratory monitoring: connected exposes the available measurement; disconnected hides it without changing physiology.

Field schema

{
  "title": "Respiratory monitoring",
  "type": "boolean",
  "description": "Respiratory monitoring: connected exposes the available measurement; disconnected hides it without changing physiology."
}

Temperature probe

events.states.*.monitor.connections.temperature

boolean · Optional; an omitted value is not a normal, negative, or zero value

Temperature probe: connected exposes the available measurement; disconnected hides it without changing physiology.

Field schema

{
  "title": "Temperature probe",
  "type": "boolean",
  "description": "Temperature probe: connected exposes the available measurement; disconnected hides it without changing physiology."
}

Capnography

events.states.*.monitor.connections.capnography

boolean · Optional; an omitted value is not a normal, negative, or zero value

Capnography: connected exposes the available measurement; disconnected hides it without changing physiology.

Field schema

{
  "title": "Capnography",
  "type": "boolean",
  "description": "Capnography: connected exposes the available measurement; disconnected hides it without changing physiology."
}

Arterial pressure

events.states.*.monitor.connections.arterialPressure

boolean · Optional; an omitted value is not a normal, negative, or zero value

Arterial pressure: connected exposes the available measurement; disconnected hides it without changing physiology.

Field schema

{
  "title": "Arterial pressure",
  "type": "boolean",
  "description": "Arterial pressure: connected exposes the available measurement; disconnected hides it without changing physiology."
}

Key state

events.states.*.key

boolean · Optional; an omitted value is not a normal, negative, or zero value

Mark an educationally important phase. This does not award points or require every path to pass through the phase.

Field schema

{
  "title": "Key state",
  "type": "boolean",
  "description": "Mark an educationally important phase. This does not award points or require every path to pass through the phase."
}

Enter when resource results are available

events.states.*.resourceTrigger

object · Optional; an omitted value is not a normal, negative, or zero value

Enter this event once when selected learner-requested resource results become available. Incoming transitions remain alternative paths into the event.

Field schema

{
  "title": "Enter when resource results are available",
  "additionalProperties": false,
  "x-usim": {
    "authoring": {}
  },
  "type": "object",
  "required": [
    "mode",
    "objectIds"
  ],
  "properties": {
    "mode": {
      "type": "string",
      "title": "Results required",
      "enum": [
        "any",
        "all"
      ],
      "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."
    },
    "objectIds": {
      "title": "Selected resources",
      "minItems": 1,
      "maxItems": 1000,
      "uniqueItems": true,
      "type": "array",
      "items": {
        "title": "Resource",
        "maxLength": 128,
        "minLength": 1,
        "pattern": "\\S",
        "x-usim": {
          "reference": {
            "collection": "resources",
            "label": "name",
            "excludeScheduled": false
          },
          "authoring": {}
        },
        "type": "string",
        "description": "The identifier of a learner-requestable resource required by this event result trigger."
      },
      "description": "Scenario resources whose completed results trigger this event. Select learner-requestable resources without a separate resource destination event."
    }
  },
  "description": "Enter this event once when selected learner-requested resource results become available. Incoming transitions remain alternative paths into the event."
}

Results required

events.states.*.resourceTrigger.mode

string · Required when the parent is present

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.

Allowed values: any, all

Field schema

{
  "type": "string",
  "title": "Results required",
  "enum": [
    "any",
    "all"
  ],
  "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."
}

Selected resources

events.states.*.resourceTrigger.objectIds

array · Required when the parent is present

Scenario resources whose completed results trigger this event. Select learner-requestable resources without a separate resource destination event.

  • Maximum entries: 1000

Field schema

{
  "title": "Selected resources",
  "minItems": 1,
  "maxItems": 1000,
  "uniqueItems": true,
  "type": "array",
  "items": {
    "title": "Resource",
    "maxLength": 128,
    "minLength": 1,
    "pattern": "\\S",
    "x-usim": {
      "reference": {
        "collection": "resources",
        "label": "name",
        "excludeScheduled": false
      },
      "authoring": {}
    },
    "type": "string",
    "description": "The identifier of a learner-requestable resource required by this event result trigger."
  },
  "description": "Scenario resources whose completed results trigger this event. Select learner-requestable resources without a separate resource destination event."
}

Resource

events.states.*.resourceTrigger.objectIds.*

string · Required when the parent is present

The identifier of a learner-requestable resource required by this event result trigger.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References resources using name as the display label.

Field schema

{
  "title": "Resource",
  "maxLength": 128,
  "minLength": 1,
  "pattern": "\\S",
  "x-usim": {
    "reference": {
      "collection": "resources",
      "label": "name",
      "excludeScheduled": false
    },
    "authoring": {}
  },
  "type": "string",
  "description": "The identifier of a learner-requestable resource required by this event result trigger."
}

Interactions

events.actions

array · Required when the parent is present

Connections between phases, activated by a learner action or a timer measured from entry into the source phase.

  • Maximum entries: 512

Field schema

{
  "title": "Interactions",
  "maxItems": 512,
  "x-usim": {
    "authoring": {
      "addLabel": "Add interaction"
    }
  },
  "type": "array",
  "items": {
    "additionalProperties": false,
    "x-usim": {
      "authoring": {}
    },
    "type": "object",
    "required": [
      "id",
      "label",
      "availableInStateIds",
      "outcomes"
    ],
    "properties": {
      "id": {
        "title": "Identifier",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "x-usim": {
          "authoring": {
            "hidden": true
          }
        },
        "type": "string",
        "description": "A stable identifier used to reference this entry. Keep it unchanged when editing the entry's name or content."
      },
      "label": {
        "title": "Interaction",
        "maxLength": 1000,
        "x-usim": {
          "authoring": {}
        },
        "type": "string",
        "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."
      },
      "description": {
        "title": "Description",
        "maxLength": 6000,
        "x-usim": {
          "authoring": {
            "editor": "textarea"
          }
        },
        "type": "string",
        "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."
      },
      "patientId": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "reference": {
            "collection": "patients",
            "label": "name"
          }
        },
        "type": "string",
        "description": "Required when the action targets a patient; omit for team-only actions."
      },
      "resourceId": {
        "title": "Linked resource",
        "maxLength": 128,
        "minLength": 1,
        "pattern": "\\S",
        "x-usim": {
          "reference": {
            "collection": "resources",
            "label": "name",
            "excludeScheduled": false
          },
          "authoring": {}
        },
        "type": "string",
        "description": "Requests a resource when this transition fires. Builder authors resource links on the state under Results."
      },
      "completionCriteria": {
        "title": "When this action is complete",
        "maxLength": 6000,
        "x-usim": {
          "authoring": {
            "editor": "textarea"
          }
        },
        "type": "string",
        "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."
      },
      "completion": {
        "title": "Action recognition",
        "additionalProperties": false,
        "x-usim": {
          "authoring": {}
        },
        "type": "object",
        "required": [
          "mode",
          "resourceIds"
        ],
        "properties": {
          "mode": {
            "type": "string",
            "title": "Resources required",
            "enum": [
              "any",
              "all"
            ],
            "description": "Choose whether any or all selected resource requests complete this action."
          },
          "resourceIds": {
            "title": "Recognize resource interactions",
            "minItems": 1,
            "maxItems": 1000,
            "uniqueItems": true,
            "type": "array",
            "items": {
              "title": "Resource",
              "maxLength": 128,
              "minLength": 1,
              "pattern": "\\S",
              "x-usim": {
                "reference": {
                  "collection": "resources",
                  "label": "name",
                  "excludeScheduled": false
                },
                "authoring": {}
              },
              "type": "string",
              "description": "A learner-requestable resource used to recognize the action."
            },
            "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."
          }
        },
        "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."
      },
      "availableInStateIds": {
        "title": "Available in states",
        "minItems": 1,
        "uniqueItems": true,
        "type": "array",
        "items": {
          "title": "Available in state",
          "maxLength": 128,
          "minLength": 1,
          "pattern": "\\S",
          "x-usim": {
            "reference": {
              "collection": "events.states",
              "label": "title",
              "excludeScheduled": false
            },
            "authoring": {}
          },
          "type": "string",
          "description": "Identifier of an existing events.states entry. Preserve the referenced entry when editing this field."
        },
        "description": "The phase in which this interaction is available or its scheduled timer begins."
      },
      "conditionId": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "reference": {
            "collection": "events.conditions",
            "label": "id"
          },
          "execution": {
            "capability": "conditional-execution"
          }
        },
        "type": "string",
        "description": "Prerequisite evaluated at start and again at completion."
      },
      "durationSeconds": {
        "minimum": 0,
        "type": "number",
        "default": 0,
        "description": "Simulated time between start and completion. Availability is evaluated at start."
      },
      "repeat": {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "cooldownSeconds"
        ],
        "properties": {
          "maxUses": {
            "minimum": 1,
            "type": "integer",
            "description": "Numeric max uses, at least 1. Do not infer an omitted value."
          },
          "cooldownSeconds": {
            "minimum": 0,
            "type": "number",
            "description": "Numeric cooldown seconds, at least 0. Do not infer an omitted value."
          }
        },
        "description": "Completed uses count against maxUses; cooldown starts at completion. No implicit unlimited repeats."
      },
      "cancellable": {
        "default": false,
        "type": "boolean",
        "description": "Whether an operator can cancel before completion; cancellation does not count as a completed use."
      },
      "onPhaseExit": {
        "anyOf": [
          {
            "const": "cancel",
            "type": "string",
            "description": "Policy for unfinished work when another event changes phase. Conclusion always cancels."
          },
          {
            "const": "continue",
            "type": "string",
            "description": "Policy for unfinished work when another event changes phase. Conclusion always cancels."
          }
        ],
        "default": "cancel",
        "description": "Policy for unfinished work when another event changes phase. Conclusion always cancels."
      },
      "outcomes": {
        "title": "Ordered outcomes",
        "minItems": 1,
        "type": "array",
        "items": {
          "additionalProperties": false,
          "title": "Outcome",
          "type": "object",
          "required": [
            "id",
            "effectIds"
          ],
          "properties": {
            "id": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "authoring": {
                  "hidden": true
                }
              },
              "type": "string",
              "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
            },
            "whenConditionId": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "events.conditions",
                  "label": "id"
                },
                "execution": {
                  "capability": "conditional-execution"
                }
              },
              "type": "string",
              "description": "Identifier of an existing events.conditions entry. Preserve the referenced entry when editing this field."
            },
            "effectIds": {
              "type": "array",
              "items": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "events.effects",
                    "label": "id"
                  }
                },
                "type": "string",
                "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field."
              },
              "description": "Entries for effect ids. An empty list means no entries have been authored."
            },
            "nextStateId": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "events.states",
                  "label": "title"
                }
              },
              "type": "string",
              "description": "Identifier of an existing events.states entry. Preserve the referenced entry when editing this field."
            }
          },
          "description": "Choose first matching outcome at completion. Exactly one final unconditional fallback is required. Omit nextStateId to stay in the phase."
        },
        "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."
      },
      "kind": {
        "type": "string",
        "title": "Action kind",
        "enum": [
          "generic",
          "medication-order",
          "medication-administration"
        ],
        "description": "Discriminator for conditional action payloads. Specialized fields are prohibited unless kind selects the corresponding branch."
      },
      "medicationOrder": {
        "additionalProperties": false,
        "type": "object",
        "required": [
          "resourceId",
          "patientId",
          "dose",
          "route"
        ],
        "properties": {
          "resourceId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "resources",
                "label": "name"
              }
            },
            "type": "string",
            "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
          },
          "patientId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "patients",
                "label": "name"
              }
            },
            "type": "string",
            "description": "Identifier of an existing patients entry. Preserve the referenced entry when editing this field."
          },
          "dose": {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "value",
              "unit"
            ],
            "properties": {
              "value": {
                "exclusiveMinimum": 0,
                "type": "number",
                "description": "Numeric value. Do not infer an omitted value."
              },
              "unit": {
                "type": "string",
                "description": "The unit for this entry. Omit optional information that has not been specified."
              }
            },
            "description": "Structured numerator details. Omitted optional values remain unspecified."
          },
          "route": {
            "type": "string",
            "description": "The route for this entry. Omit optional information that has not been specified."
          },
          "rate": {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "numerator",
              "denominator"
            ],
            "properties": {
              "numerator": {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "value",
                  "unit"
                ],
                "properties": {
                  "value": {
                    "exclusiveMinimum": 0,
                    "type": "number",
                    "description": "Numeric value. Do not infer an omitted value."
                  },
                  "unit": {
                    "type": "string",
                    "description": "The unit for this entry. Omit optional information that has not been specified."
                  }
                },
                "description": "Structured numerator details. Omitted optional values remain unspecified."
              },
              "denominator": {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "value",
                  "unit"
                ],
                "properties": {
                  "value": {
                    "exclusiveMinimum": 0,
                    "type": "number",
                    "description": "Numeric value. Do not infer an omitted value."
                  },
                  "unit": {
                    "type": "string",
                    "description": "The unit for this entry. Omit optional information that has not been specified."
                  }
                },
                "description": "Structured numerator details. Omitted optional values remain unspecified."
              }
            },
            "description": "Structured rate details. Omitted optional values remain unspecified."
          }
        },
        "description": "Quantity is { value: positive number, unit: string }. Units are explicit; route must belong to allowedRoutes.",
        "x-usim": {
          "execution": {
            "capability": "medication-orders"
          }
        }
      },
      "administration": {
        "anyOf": [
          {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "orderActionId",
              "mode"
            ],
            "properties": {
              "orderActionId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "events.actions",
                    "label": "label"
                  }
                },
                "type": "string",
                "description": "Identifier of an existing events.actions entry. Preserve the referenced entry when editing this field."
              },
              "mode": {
                "anyOf": [
                  {
                    "const": "bolus",
                    "type": "string",
                    "description": "The required literal value \"bolus\"."
                  },
                  {
                    "const": "infusion-stop",
                    "type": "string",
                    "description": "The required literal value \"infusion-stop\"."
                  }
                ],
                "description": "Select one of the declared mode alternatives; use the fields belonging to that alternative."
              }
            },
            "description": "Administration is a separate observable action referencing an order, not an automatic consequence of writing it."
          },
          {
            "additionalProperties": false,
            "type": "object",
            "required": [
              "orderActionId",
              "mode",
              "rate"
            ],
            "properties": {
              "orderActionId": {
                "minLength": 1,
                "maxLength": 128,
                "pattern": "\\S",
                "title": "Identifier",
                "x-usim": {
                  "reference": {
                    "collection": "events.actions",
                    "label": "label"
                  }
                },
                "type": "string",
                "description": "Identifier of an existing events.actions entry. Preserve the referenced entry when editing this field."
              },
              "mode": {
                "anyOf": [
                  {
                    "const": "infusion-start",
                    "type": "string",
                    "description": "The required literal value \"infusion-start\"."
                  },
                  {
                    "const": "infusion-change",
                    "type": "string",
                    "description": "The required literal value \"infusion-change\"."
                  }
                ],
                "description": "Select one of the declared mode alternatives; use the fields belonging to that alternative."
              },
              "rate": {
                "additionalProperties": false,
                "type": "object",
                "required": [
                  "numerator",
                  "denominator"
                ],
                "properties": {
                  "numerator": {
                    "additionalProperties": false,
                    "type": "object",
                    "required": [
                      "value",
                      "unit"
                    ],
                    "properties": {
                      "value": {
                        "exclusiveMinimum": 0,
                        "type": "number",
                        "description": "Numeric value. Do not infer an omitted value."
                      },
                      "unit": {
                        "type": "string",
                        "description": "The unit for this entry. Omit optional information that has not been specified."
                      }
                    },
                    "description": "Structured numerator details. Omitted optional values remain unspecified."
                  },
                  "denominator": {
                    "additionalProperties": false,
                    "type": "object",
                    "required": [
                      "value",
                      "unit"
                    ],
                    "properties": {
                      "value": {
                        "exclusiveMinimum": 0,
                        "type": "number",
                        "description": "Numeric value. Do not infer an omitted value."
                      },
                      "unit": {
                        "type": "string",
                        "description": "The unit for this entry. Omit optional information that has not been specified."
                      }
                    },
                    "description": "Structured numerator details. Omitted optional values remain unspecified."
                  }
                },
                "description": "Explicit amount per time or volume per time. No implicit unit conversion or pump calculation."
              }
            },
            "description": "Administration is a separate observable action referencing an order, not an automatic consequence of writing it."
          }
        ],
        "description": "Administration is a separate observable action referencing an order, not an automatic consequence of writing it.",
        "x-usim": {
          "execution": {
            "capability": "medication-administration"
          }
        }
      }
    },
    "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."
  },
  "description": "Connections between phases, activated by a learner action or a timer measured from entry into the source phase."
}

*

events.actions.*

object · Required when the parent is present

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.

Field schema

{
  "additionalProperties": false,
  "x-usim": {
    "authoring": {}
  },
  "type": "object",
  "required": [
    "id",
    "label",
    "availableInStateIds",
    "outcomes"
  ],
  "properties": {
    "id": {
      "title": "Identifier",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "x-usim": {
        "authoring": {
          "hidden": true
        }
      },
      "type": "string",
      "description": "A stable identifier used to reference this entry. Keep it unchanged when editing the entry's name or content."
    },
    "label": {
      "title": "Interaction",
      "maxLength": 1000,
      "x-usim": {
        "authoring": {}
      },
      "type": "string",
      "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."
    },
    "description": {
      "title": "Description",
      "maxLength": 6000,
      "x-usim": {
        "authoring": {
          "editor": "textarea"
        }
      },
      "type": "string",
      "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."
    },
    "patientId": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "reference": {
          "collection": "patients",
          "label": "name"
        }
      },
      "type": "string",
      "description": "Required when the action targets a patient; omit for team-only actions."
    },
    "resourceId": {
      "title": "Linked resource",
      "maxLength": 128,
      "minLength": 1,
      "pattern": "\\S",
      "x-usim": {
        "reference": {
          "collection": "resources",
          "label": "name",
          "excludeScheduled": false
        },
        "authoring": {}
      },
      "type": "string",
      "description": "Requests a resource when this transition fires. Builder authors resource links on the state under Results."
    },
    "completionCriteria": {
      "title": "When this action is complete",
      "maxLength": 6000,
      "x-usim": {
        "authoring": {
          "editor": "textarea"
        }
      },
      "type": "string",
      "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."
    },
    "completion": {
      "title": "Action recognition",
      "additionalProperties": false,
      "x-usim": {
        "authoring": {}
      },
      "type": "object",
      "required": [
        "mode",
        "resourceIds"
      ],
      "properties": {
        "mode": {
          "type": "string",
          "title": "Resources required",
          "enum": [
            "any",
            "all"
          ],
          "description": "Choose whether any or all selected resource requests complete this action."
        },
        "resourceIds": {
          "title": "Recognize resource interactions",
          "minItems": 1,
          "maxItems": 1000,
          "uniqueItems": true,
          "type": "array",
          "items": {
            "title": "Resource",
            "maxLength": 128,
            "minLength": 1,
            "pattern": "\\S",
            "x-usim": {
              "reference": {
                "collection": "resources",
                "label": "name",
                "excludeScheduled": false
              },
              "authoring": {}
            },
            "type": "string",
            "description": "A learner-requestable resource used to recognize the action."
          },
          "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."
        }
      },
      "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."
    },
    "availableInStateIds": {
      "title": "Available in states",
      "minItems": 1,
      "uniqueItems": true,
      "type": "array",
      "items": {
        "title": "Available in state",
        "maxLength": 128,
        "minLength": 1,
        "pattern": "\\S",
        "x-usim": {
          "reference": {
            "collection": "events.states",
            "label": "title",
            "excludeScheduled": false
          },
          "authoring": {}
        },
        "type": "string",
        "description": "Identifier of an existing events.states entry. Preserve the referenced entry when editing this field."
      },
      "description": "The phase in which this interaction is available or its scheduled timer begins."
    },
    "conditionId": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "reference": {
          "collection": "events.conditions",
          "label": "id"
        },
        "execution": {
          "capability": "conditional-execution"
        }
      },
      "type": "string",
      "description": "Prerequisite evaluated at start and again at completion."
    },
    "durationSeconds": {
      "minimum": 0,
      "type": "number",
      "default": 0,
      "description": "Simulated time between start and completion. Availability is evaluated at start."
    },
    "repeat": {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "cooldownSeconds"
      ],
      "properties": {
        "maxUses": {
          "minimum": 1,
          "type": "integer",
          "description": "Numeric max uses, at least 1. Do not infer an omitted value."
        },
        "cooldownSeconds": {
          "minimum": 0,
          "type": "number",
          "description": "Numeric cooldown seconds, at least 0. Do not infer an omitted value."
        }
      },
      "description": "Completed uses count against maxUses; cooldown starts at completion. No implicit unlimited repeats."
    },
    "cancellable": {
      "default": false,
      "type": "boolean",
      "description": "Whether an operator can cancel before completion; cancellation does not count as a completed use."
    },
    "onPhaseExit": {
      "anyOf": [
        {
          "const": "cancel",
          "type": "string",
          "description": "Policy for unfinished work when another event changes phase. Conclusion always cancels."
        },
        {
          "const": "continue",
          "type": "string",
          "description": "Policy for unfinished work when another event changes phase. Conclusion always cancels."
        }
      ],
      "default": "cancel",
      "description": "Policy for unfinished work when another event changes phase. Conclusion always cancels."
    },
    "outcomes": {
      "title": "Ordered outcomes",
      "minItems": 1,
      "type": "array",
      "items": {
        "additionalProperties": false,
        "title": "Outcome",
        "type": "object",
        "required": [
          "id",
          "effectIds"
        ],
        "properties": {
          "id": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "authoring": {
                "hidden": true
              }
            },
            "type": "string",
            "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
          },
          "whenConditionId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "events.conditions",
                "label": "id"
              },
              "execution": {
                "capability": "conditional-execution"
              }
            },
            "type": "string",
            "description": "Identifier of an existing events.conditions entry. Preserve the referenced entry when editing this field."
          },
          "effectIds": {
            "type": "array",
            "items": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "events.effects",
                  "label": "id"
                }
              },
              "type": "string",
              "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field."
            },
            "description": "Entries for effect ids. An empty list means no entries have been authored."
          },
          "nextStateId": {
            "minLength": 1,
            "maxLength": 128,
            "pattern": "\\S",
            "title": "Identifier",
            "x-usim": {
              "reference": {
                "collection": "events.states",
                "label": "title"
              }
            },
            "type": "string",
            "description": "Identifier of an existing events.states entry. Preserve the referenced entry when editing this field."
          }
        },
        "description": "Choose first matching outcome at completion. Exactly one final unconditional fallback is required. Omit nextStateId to stay in the phase."
      },
      "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."
    },
    "kind": {
      "type": "string",
      "title": "Action kind",
      "enum": [
        "generic",
        "medication-order",
        "medication-administration"
      ],
      "description": "Discriminator for conditional action payloads. Specialized fields are prohibited unless kind selects the corresponding branch."
    },
    "medicationOrder": {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "resourceId",
        "patientId",
        "dose",
        "route"
      ],
      "properties": {
        "resourceId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "resources",
              "label": "name"
            }
          },
          "type": "string",
          "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
        },
        "patientId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "patients",
              "label": "name"
            }
          },
          "type": "string",
          "description": "Identifier of an existing patients entry. Preserve the referenced entry when editing this field."
        },
        "dose": {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "value",
            "unit"
          ],
          "properties": {
            "value": {
              "exclusiveMinimum": 0,
              "type": "number",
              "description": "Numeric value. Do not infer an omitted value."
            },
            "unit": {
              "type": "string",
              "description": "The unit for this entry. Omit optional information that has not been specified."
            }
          },
          "description": "Structured numerator details. Omitted optional values remain unspecified."
        },
        "route": {
          "type": "string",
          "description": "The route for this entry. Omit optional information that has not been specified."
        },
        "rate": {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "numerator",
            "denominator"
          ],
          "properties": {
            "numerator": {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "value",
                "unit"
              ],
              "properties": {
                "value": {
                  "exclusiveMinimum": 0,
                  "type": "number",
                  "description": "Numeric value. Do not infer an omitted value."
                },
                "unit": {
                  "type": "string",
                  "description": "The unit for this entry. Omit optional information that has not been specified."
                }
              },
              "description": "Structured numerator details. Omitted optional values remain unspecified."
            },
            "denominator": {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "value",
                "unit"
              ],
              "properties": {
                "value": {
                  "exclusiveMinimum": 0,
                  "type": "number",
                  "description": "Numeric value. Do not infer an omitted value."
                },
                "unit": {
                  "type": "string",
                  "description": "The unit for this entry. Omit optional information that has not been specified."
                }
              },
              "description": "Structured numerator details. Omitted optional values remain unspecified."
            }
          },
          "description": "Structured rate details. Omitted optional values remain unspecified."
        }
      },
      "description": "Quantity is { value: positive number, unit: string }. Units are explicit; route must belong to allowedRoutes.",
      "x-usim": {
        "execution": {
          "capability": "medication-orders"
        }
      }
    },
    "administration": {
      "anyOf": [
        {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "orderActionId",
            "mode"
          ],
          "properties": {
            "orderActionId": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "events.actions",
                  "label": "label"
                }
              },
              "type": "string",
              "description": "Identifier of an existing events.actions entry. Preserve the referenced entry when editing this field."
            },
            "mode": {
              "anyOf": [
                {
                  "const": "bolus",
                  "type": "string",
                  "description": "The required literal value \"bolus\"."
                },
                {
                  "const": "infusion-stop",
                  "type": "string",
                  "description": "The required literal value \"infusion-stop\"."
                }
              ],
              "description": "Select one of the declared mode alternatives; use the fields belonging to that alternative."
            }
          },
          "description": "Administration is a separate observable action referencing an order, not an automatic consequence of writing it."
        },
        {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "orderActionId",
            "mode",
            "rate"
          ],
          "properties": {
            "orderActionId": {
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "title": "Identifier",
              "x-usim": {
                "reference": {
                  "collection": "events.actions",
                  "label": "label"
                }
              },
              "type": "string",
              "description": "Identifier of an existing events.actions entry. Preserve the referenced entry when editing this field."
            },
            "mode": {
              "anyOf": [
                {
                  "const": "infusion-start",
                  "type": "string",
                  "description": "The required literal value \"infusion-start\"."
                },
                {
                  "const": "infusion-change",
                  "type": "string",
                  "description": "The required literal value \"infusion-change\"."
                }
              ],
              "description": "Select one of the declared mode alternatives; use the fields belonging to that alternative."
            },
            "rate": {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "numerator",
                "denominator"
              ],
              "properties": {
                "numerator": {
                  "additionalProperties": false,
                  "type": "object",
                  "required": [
                    "value",
                    "unit"
                  ],
                  "properties": {
                    "value": {
                      "exclusiveMinimum": 0,
                      "type": "number",
                      "description": "Numeric value. Do not infer an omitted value."
                    },
                    "unit": {
                      "type": "string",
                      "description": "The unit for this entry. Omit optional information that has not been specified."
                    }
                  },
                  "description": "Structured numerator details. Omitted optional values remain unspecified."
                },
                "denominator": {
                  "additionalProperties": false,
                  "type": "object",
                  "required": [
                    "value",
                    "unit"
                  ],
                  "properties": {
                    "value": {
                      "exclusiveMinimum": 0,
                      "type": "number",
                      "description": "Numeric value. Do not infer an omitted value."
                    },
                    "unit": {
                      "type": "string",
                      "description": "The unit for this entry. Omit optional information that has not been specified."
                    }
                  },
                  "description": "Structured numerator details. Omitted optional values remain unspecified."
                }
              },
              "description": "Explicit amount per time or volume per time. No implicit unit conversion or pump calculation."
            }
          },
          "description": "Administration is a separate observable action referencing an order, not an automatic consequence of writing it."
        }
      ],
      "description": "Administration is a separate observable action referencing an order, not an automatic consequence of writing it.",
      "x-usim": {
        "execution": {
          "capability": "medication-administration"
        }
      }
    }
  },
  "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."
}

Identifier

events.actions.*.id

string · Required when the parent is present

A stable identifier used to reference this entry. Keep it unchanged when editing the entry's name or content.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "title": "Identifier",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "A stable identifier used to reference this entry. Keep it unchanged when editing the entry's name or content."
}

Interaction

events.actions.*.label

string · Required when the parent is present

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.

  • Maximum length: 1000 characters

Field schema

{
  "title": "Interaction",
  "maxLength": 1000,
  "x-usim": {
    "authoring": {}
  },
  "type": "string",
  "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."
}

Description

events.actions.*.description

string · Optional; an omitted value is not a normal, negative, or zero value

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.

  • Maximum length: 6000 characters

Field schema

{
  "title": "Description",
  "maxLength": 6000,
  "x-usim": {
    "authoring": {
      "editor": "textarea"
    }
  },
  "type": "string",
  "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."
}

Identifier

events.actions.*.patientId

string · Optional; an omitted value is not a normal, negative, or zero value

Required when the action targets a patient; omit for team-only actions.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References patients using name as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "patients",
      "label": "name"
    }
  },
  "type": "string",
  "description": "Required when the action targets a patient; omit for team-only actions."
}

Linked resource

events.actions.*.resourceId

string · Optional; an omitted value is not a normal, negative, or zero value

Requests a resource when this transition fires. Builder authors resource links on the state under Results.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References resources using name as the display label.

Field schema

{
  "title": "Linked resource",
  "maxLength": 128,
  "minLength": 1,
  "pattern": "\\S",
  "x-usim": {
    "reference": {
      "collection": "resources",
      "label": "name",
      "excludeScheduled": false
    },
    "authoring": {}
  },
  "type": "string",
  "description": "Requests a resource when this transition fires. Builder authors resource links on the state under Results."
}

When this action is complete

events.actions.*.completionCriteria

string · Optional; an omitted value is not a normal, negative, or zero value

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.

  • Maximum length: 6000 characters

Field schema

{
  "title": "When this action is complete",
  "maxLength": 6000,
  "x-usim": {
    "authoring": {
      "editor": "textarea"
    }
  },
  "type": "string",
  "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."
}

Action recognition

events.actions.*.completion

object · Optional; an omitted value is not a normal, negative, or zero value

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.

Field schema

{
  "title": "Action recognition",
  "additionalProperties": false,
  "x-usim": {
    "authoring": {}
  },
  "type": "object",
  "required": [
    "mode",
    "resourceIds"
  ],
  "properties": {
    "mode": {
      "type": "string",
      "title": "Resources required",
      "enum": [
        "any",
        "all"
      ],
      "description": "Choose whether any or all selected resource requests complete this action."
    },
    "resourceIds": {
      "title": "Recognize resource interactions",
      "minItems": 1,
      "maxItems": 1000,
      "uniqueItems": true,
      "type": "array",
      "items": {
        "title": "Resource",
        "maxLength": 128,
        "minLength": 1,
        "pattern": "\\S",
        "x-usim": {
          "reference": {
            "collection": "resources",
            "label": "name",
            "excludeScheduled": false
          },
          "authoring": {}
        },
        "type": "string",
        "description": "A learner-requestable resource used to recognize the action."
      },
      "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."
    }
  },
  "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."
}

Resources required

events.actions.*.completion.mode

string · Required when the parent is present

Choose whether any or all selected resource requests complete this action.

Allowed values: any, all

Field schema

{
  "type": "string",
  "title": "Resources required",
  "enum": [
    "any",
    "all"
  ],
  "description": "Choose whether any or all selected resource requests complete this action."
}

Recognize resource interactions

events.actions.*.completion.resourceIds

array · Required when the parent is present

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.

  • Maximum entries: 1000

Field schema

{
  "title": "Recognize resource interactions",
  "minItems": 1,
  "maxItems": 1000,
  "uniqueItems": true,
  "type": "array",
  "items": {
    "title": "Resource",
    "maxLength": 128,
    "minLength": 1,
    "pattern": "\\S",
    "x-usim": {
      "reference": {
        "collection": "resources",
        "label": "name",
        "excludeScheduled": false
      },
      "authoring": {}
    },
    "type": "string",
    "description": "A learner-requestable resource used to recognize the action."
  },
  "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."
}

Resource

events.actions.*.completion.resourceIds.*

string · Required when the parent is present

A learner-requestable resource used to recognize the action.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References resources using name as the display label.

Field schema

{
  "title": "Resource",
  "maxLength": 128,
  "minLength": 1,
  "pattern": "\\S",
  "x-usim": {
    "reference": {
      "collection": "resources",
      "label": "name",
      "excludeScheduled": false
    },
    "authoring": {}
  },
  "type": "string",
  "description": "A learner-requestable resource used to recognize the action."
}

Available in states

events.actions.*.availableInStateIds

array · Required when the parent is present

The phase in which this interaction is available or its scheduled timer begins.

Field schema

{
  "title": "Available in states",
  "minItems": 1,
  "uniqueItems": true,
  "type": "array",
  "items": {
    "title": "Available in state",
    "maxLength": 128,
    "minLength": 1,
    "pattern": "\\S",
    "x-usim": {
      "reference": {
        "collection": "events.states",
        "label": "title",
        "excludeScheduled": false
      },
      "authoring": {}
    },
    "type": "string",
    "description": "Identifier of an existing events.states entry. Preserve the referenced entry when editing this field."
  },
  "description": "The phase in which this interaction is available or its scheduled timer begins."
}

Available in state

events.actions.*.availableInStateIds.*

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References events.states using title as the display label.

Field schema

{
  "title": "Available in state",
  "maxLength": 128,
  "minLength": 1,
  "pattern": "\\S",
  "x-usim": {
    "reference": {
      "collection": "events.states",
      "label": "title",
      "excludeScheduled": false
    },
    "authoring": {}
  },
  "type": "string",
  "description": "Identifier of an existing events.states entry. Preserve the referenced entry when editing this field."
}

Identifier

events.actions.*.conditionId

string · Optional; an omitted value is not a normal, negative, or zero value

Prerequisite evaluated at start and again at completion.

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References events.conditions using id as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "events.conditions",
      "label": "id"
    },
    "execution": {
      "capability": "conditional-execution"
    }
  },
  "type": "string",
  "description": "Prerequisite evaluated at start and again at completion."
}

durationSeconds

events.actions.*.durationSeconds

number · Optional; an omitted value is not a normal, negative, or zero value

Simulated time between start and completion. Availability is evaluated at start.

  • Minimum: 0

Field schema

{
  "minimum": 0,
  "type": "number",
  "default": 0,
  "description": "Simulated time between start and completion. Availability is evaluated at start."
}

repeat

events.actions.*.repeat

object · Optional; an omitted value is not a normal, negative, or zero value

Completed uses count against maxUses; cooldown starts at completion. No implicit unlimited repeats.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "cooldownSeconds"
  ],
  "properties": {
    "maxUses": {
      "minimum": 1,
      "type": "integer",
      "description": "Numeric max uses, at least 1. Do not infer an omitted value."
    },
    "cooldownSeconds": {
      "minimum": 0,
      "type": "number",
      "description": "Numeric cooldown seconds, at least 0. Do not infer an omitted value."
    }
  },
  "description": "Completed uses count against maxUses; cooldown starts at completion. No implicit unlimited repeats."
}

maxUses

events.actions.*.repeat.maxUses

integer · Optional; an omitted value is not a normal, negative, or zero value

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

  • Minimum: 1

Field schema

{
  "minimum": 1,
  "type": "integer",
  "description": "Numeric max uses, at least 1. Do not infer an omitted value."
}

cooldownSeconds

events.actions.*.repeat.cooldownSeconds

number · Required when the parent is present

Numeric cooldown seconds, at least 0. Do not infer an omitted value.

  • Minimum: 0

Field schema

{
  "minimum": 0,
  "type": "number",
  "description": "Numeric cooldown seconds, at least 0. Do not infer an omitted value."
}

cancellable

events.actions.*.cancellable

boolean · Optional; an omitted value is not a normal, negative, or zero value

Whether an operator can cancel before completion; cancellation does not count as a completed use.

Field schema

{
  "default": false,
  "type": "boolean",
  "description": "Whether an operator can cancel before completion; cancellation does not count as a completed use."
}

onPhaseExit

events.actions.*.onPhaseExit

Value · Optional; an omitted value is not a normal, negative, or zero value

Policy for unfinished work when another event changes phase. Conclusion always cancels.

Allowed values: cancel, continue

Field schema

{
  "anyOf": [
    {
      "const": "cancel",
      "type": "string",
      "description": "Policy for unfinished work when another event changes phase. Conclusion always cancels."
    },
    {
      "const": "continue",
      "type": "string",
      "description": "Policy for unfinished work when another event changes phase. Conclusion always cancels."
    }
  ],
  "default": "cancel",
  "description": "Policy for unfinished work when another event changes phase. Conclusion always cancels."
}

Ordered outcomes

events.actions.*.outcomes

array · Required when the parent is present

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.

Field schema

{
  "title": "Ordered outcomes",
  "minItems": 1,
  "type": "array",
  "items": {
    "additionalProperties": false,
    "title": "Outcome",
    "type": "object",
    "required": [
      "id",
      "effectIds"
    ],
    "properties": {
      "id": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "authoring": {
            "hidden": true
          }
        },
        "type": "string",
        "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
      },
      "whenConditionId": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "reference": {
            "collection": "events.conditions",
            "label": "id"
          },
          "execution": {
            "capability": "conditional-execution"
          }
        },
        "type": "string",
        "description": "Identifier of an existing events.conditions entry. Preserve the referenced entry when editing this field."
      },
      "effectIds": {
        "type": "array",
        "items": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "events.effects",
              "label": "id"
            }
          },
          "type": "string",
          "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field."
        },
        "description": "Entries for effect ids. An empty list means no entries have been authored."
      },
      "nextStateId": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "reference": {
            "collection": "events.states",
            "label": "title"
          }
        },
        "type": "string",
        "description": "Identifier of an existing events.states entry. Preserve the referenced entry when editing this field."
      }
    },
    "description": "Choose first matching outcome at completion. Exactly one final unconditional fallback is required. Omit nextStateId to stay in the phase."
  },
  "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."
}

Outcome

events.actions.*.outcomes.*

object · Required when the parent is present

Choose first matching outcome at completion. Exactly one final unconditional fallback is required. Omit nextStateId to stay in the phase.

Field schema

{
  "additionalProperties": false,
  "title": "Outcome",
  "type": "object",
  "required": [
    "id",
    "effectIds"
  ],
  "properties": {
    "id": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "authoring": {
          "hidden": true
        }
      },
      "type": "string",
      "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
    },
    "whenConditionId": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "reference": {
          "collection": "events.conditions",
          "label": "id"
        },
        "execution": {
          "capability": "conditional-execution"
        }
      },
      "type": "string",
      "description": "Identifier of an existing events.conditions entry. Preserve the referenced entry when editing this field."
    },
    "effectIds": {
      "type": "array",
      "items": {
        "minLength": 1,
        "maxLength": 128,
        "pattern": "\\S",
        "title": "Identifier",
        "x-usim": {
          "reference": {
            "collection": "events.effects",
            "label": "id"
          }
        },
        "type": "string",
        "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field."
      },
      "description": "Entries for effect ids. An empty list means no entries have been authored."
    },
    "nextStateId": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "reference": {
          "collection": "events.states",
          "label": "title"
        }
      },
      "type": "string",
      "description": "Identifier of an existing events.states entry. Preserve the referenced entry when editing this field."
    }
  },
  "description": "Choose first matching outcome at completion. Exactly one final unconditional fallback is required. Omit nextStateId to stay in the phase."
}

Identifier

events.actions.*.outcomes.*.id

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "authoring": {
      "hidden": true
    }
  },
  "type": "string",
  "description": "Stable identifier for this entry. Keep it unchanged when editing its content."
}

Identifier

events.actions.*.outcomes.*.whenConditionId

string · Optional; an omitted value is not a normal, negative, or zero value

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References events.conditions using id as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "events.conditions",
      "label": "id"
    },
    "execution": {
      "capability": "conditional-execution"
    }
  },
  "type": "string",
  "description": "Identifier of an existing events.conditions entry. Preserve the referenced entry when editing this field."
}

effectIds

events.actions.*.outcomes.*.effectIds

array · Required when the parent is present

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

Field schema

{
  "type": "array",
  "items": {
    "minLength": 1,
    "maxLength": 128,
    "pattern": "\\S",
    "title": "Identifier",
    "x-usim": {
      "reference": {
        "collection": "events.effects",
        "label": "id"
      }
    },
    "type": "string",
    "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field."
  },
  "description": "Entries for effect ids. An empty list means no entries have been authored."
}

Identifier

events.actions.*.outcomes.*.effectIds.*

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References events.effects using id as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "events.effects",
      "label": "id"
    }
  },
  "type": "string",
  "description": "Identifier of an existing events.effects entry. Preserve the referenced entry when editing this field."
}

Identifier

events.actions.*.outcomes.*.nextStateId

string · Optional; an omitted value is not a normal, negative, or zero value

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References events.states using title as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "events.states",
      "label": "title"
    }
  },
  "type": "string",
  "description": "Identifier of an existing events.states entry. Preserve the referenced entry when editing this field."
}

Action kind

events.actions.*.kind

string · Optional; an omitted value is not a normal, negative, or zero value

Discriminator for conditional action payloads. Specialized fields are prohibited unless kind selects the corresponding branch.

Allowed values: generic, medication-order, medication-administration

Field schema

{
  "type": "string",
  "title": "Action kind",
  "enum": [
    "generic",
    "medication-order",
    "medication-administration"
  ],
  "description": "Discriminator for conditional action payloads. Specialized fields are prohibited unless kind selects the corresponding branch."
}

medicationOrder

events.actions.*.medicationOrder

object · Optional; an omitted value is not a normal, negative, or zero value

Quantity is { value: positive number, unit: string }. Units are explicit; route must belong to allowedRoutes.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "resourceId",
    "patientId",
    "dose",
    "route"
  ],
  "properties": {
    "resourceId": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "reference": {
          "collection": "resources",
          "label": "name"
        }
      },
      "type": "string",
      "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
    },
    "patientId": {
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "title": "Identifier",
      "x-usim": {
        "reference": {
          "collection": "patients",
          "label": "name"
        }
      },
      "type": "string",
      "description": "Identifier of an existing patients entry. Preserve the referenced entry when editing this field."
    },
    "dose": {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "value",
        "unit"
      ],
      "properties": {
        "value": {
          "exclusiveMinimum": 0,
          "type": "number",
          "description": "Numeric value. Do not infer an omitted value."
        },
        "unit": {
          "type": "string",
          "description": "The unit for this entry. Omit optional information that has not been specified."
        }
      },
      "description": "Structured numerator details. Omitted optional values remain unspecified."
    },
    "route": {
      "type": "string",
      "description": "The route for this entry. Omit optional information that has not been specified."
    },
    "rate": {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "numerator",
        "denominator"
      ],
      "properties": {
        "numerator": {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "value",
            "unit"
          ],
          "properties": {
            "value": {
              "exclusiveMinimum": 0,
              "type": "number",
              "description": "Numeric value. Do not infer an omitted value."
            },
            "unit": {
              "type": "string",
              "description": "The unit for this entry. Omit optional information that has not been specified."
            }
          },
          "description": "Structured numerator details. Omitted optional values remain unspecified."
        },
        "denominator": {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "value",
            "unit"
          ],
          "properties": {
            "value": {
              "exclusiveMinimum": 0,
              "type": "number",
              "description": "Numeric value. Do not infer an omitted value."
            },
            "unit": {
              "type": "string",
              "description": "The unit for this entry. Omit optional information that has not been specified."
            }
          },
          "description": "Structured numerator details. Omitted optional values remain unspecified."
        }
      },
      "description": "Structured rate details. Omitted optional values remain unspecified."
    }
  },
  "description": "Quantity is { value: positive number, unit: string }. Units are explicit; route must belong to allowedRoutes.",
  "x-usim": {
    "execution": {
      "capability": "medication-orders"
    }
  }
}

Identifier

events.actions.*.medicationOrder.resourceId

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References resources using name as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "resources",
      "label": "name"
    }
  },
  "type": "string",
  "description": "Identifier of an existing resources entry. Preserve the referenced entry when editing this field."
}

Identifier

events.actions.*.medicationOrder.patientId

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References patients using name as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "patients",
      "label": "name"
    }
  },
  "type": "string",
  "description": "Identifier of an existing patients entry. Preserve the referenced entry when editing this field."
}

dose

events.actions.*.medicationOrder.dose

object · Required when the parent is present

Structured numerator details. Omitted optional values remain unspecified.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "value",
    "unit"
  ],
  "properties": {
    "value": {
      "exclusiveMinimum": 0,
      "type": "number",
      "description": "Numeric value. Do not infer an omitted value."
    },
    "unit": {
      "type": "string",
      "description": "The unit for this entry. Omit optional information that has not been specified."
    }
  },
  "description": "Structured numerator details. Omitted optional values remain unspecified."
}

value

events.actions.*.medicationOrder.dose.value

number · Required when the parent is present

Numeric value. Do not infer an omitted value.

Field schema

{
  "exclusiveMinimum": 0,
  "type": "number",
  "description": "Numeric value. Do not infer an omitted value."
}

unit

events.actions.*.medicationOrder.dose.unit

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "The unit for this entry. Omit optional information that has not been specified."
}

route

events.actions.*.medicationOrder.route

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "The route for this entry. Omit optional information that has not been specified."
}

rate

events.actions.*.medicationOrder.rate

object · Optional; an omitted value is not a normal, negative, or zero value

Structured rate details. Omitted optional values remain unspecified.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "numerator",
    "denominator"
  ],
  "properties": {
    "numerator": {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "value",
        "unit"
      ],
      "properties": {
        "value": {
          "exclusiveMinimum": 0,
          "type": "number",
          "description": "Numeric value. Do not infer an omitted value."
        },
        "unit": {
          "type": "string",
          "description": "The unit for this entry. Omit optional information that has not been specified."
        }
      },
      "description": "Structured numerator details. Omitted optional values remain unspecified."
    },
    "denominator": {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "value",
        "unit"
      ],
      "properties": {
        "value": {
          "exclusiveMinimum": 0,
          "type": "number",
          "description": "Numeric value. Do not infer an omitted value."
        },
        "unit": {
          "type": "string",
          "description": "The unit for this entry. Omit optional information that has not been specified."
        }
      },
      "description": "Structured numerator details. Omitted optional values remain unspecified."
    }
  },
  "description": "Structured rate details. Omitted optional values remain unspecified."
}

numerator

events.actions.*.medicationOrder.rate.numerator

object · Required when the parent is present

Structured numerator details. Omitted optional values remain unspecified.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "value",
    "unit"
  ],
  "properties": {
    "value": {
      "exclusiveMinimum": 0,
      "type": "number",
      "description": "Numeric value. Do not infer an omitted value."
    },
    "unit": {
      "type": "string",
      "description": "The unit for this entry. Omit optional information that has not been specified."
    }
  },
  "description": "Structured numerator details. Omitted optional values remain unspecified."
}

value

events.actions.*.medicationOrder.rate.numerator.value

number · Required when the parent is present

Numeric value. Do not infer an omitted value.

Field schema

{
  "exclusiveMinimum": 0,
  "type": "number",
  "description": "Numeric value. Do not infer an omitted value."
}

unit

events.actions.*.medicationOrder.rate.numerator.unit

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "The unit for this entry. Omit optional information that has not been specified."
}

denominator

events.actions.*.medicationOrder.rate.denominator

object · Required when the parent is present

Structured numerator details. Omitted optional values remain unspecified.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "value",
    "unit"
  ],
  "properties": {
    "value": {
      "exclusiveMinimum": 0,
      "type": "number",
      "description": "Numeric value. Do not infer an omitted value."
    },
    "unit": {
      "type": "string",
      "description": "The unit for this entry. Omit optional information that has not been specified."
    }
  },
  "description": "Structured numerator details. Omitted optional values remain unspecified."
}

unit

events.actions.*.medicationOrder.rate.denominator.unit

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "The unit for this entry. Omit optional information that has not been specified."
}

administration

events.actions.*.administration

Value · Optional; an omitted value is not a normal, negative, or zero value

Administration is a separate observable action referencing an order, not an automatic consequence of writing it.

Field schema

{
  "anyOf": [
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "orderActionId",
        "mode"
      ],
      "properties": {
        "orderActionId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "events.actions",
              "label": "label"
            }
          },
          "type": "string",
          "description": "Identifier of an existing events.actions entry. Preserve the referenced entry when editing this field."
        },
        "mode": {
          "anyOf": [
            {
              "const": "bolus",
              "type": "string",
              "description": "The required literal value \"bolus\"."
            },
            {
              "const": "infusion-stop",
              "type": "string",
              "description": "The required literal value \"infusion-stop\"."
            }
          ],
          "description": "Select one of the declared mode alternatives; use the fields belonging to that alternative."
        }
      },
      "description": "Administration is a separate observable action referencing an order, not an automatic consequence of writing it."
    },
    {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "orderActionId",
        "mode",
        "rate"
      ],
      "properties": {
        "orderActionId": {
          "minLength": 1,
          "maxLength": 128,
          "pattern": "\\S",
          "title": "Identifier",
          "x-usim": {
            "reference": {
              "collection": "events.actions",
              "label": "label"
            }
          },
          "type": "string",
          "description": "Identifier of an existing events.actions entry. Preserve the referenced entry when editing this field."
        },
        "mode": {
          "anyOf": [
            {
              "const": "infusion-start",
              "type": "string",
              "description": "The required literal value \"infusion-start\"."
            },
            {
              "const": "infusion-change",
              "type": "string",
              "description": "The required literal value \"infusion-change\"."
            }
          ],
          "description": "Select one of the declared mode alternatives; use the fields belonging to that alternative."
        },
        "rate": {
          "additionalProperties": false,
          "type": "object",
          "required": [
            "numerator",
            "denominator"
          ],
          "properties": {
            "numerator": {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "value",
                "unit"
              ],
              "properties": {
                "value": {
                  "exclusiveMinimum": 0,
                  "type": "number",
                  "description": "Numeric value. Do not infer an omitted value."
                },
                "unit": {
                  "type": "string",
                  "description": "The unit for this entry. Omit optional information that has not been specified."
                }
              },
              "description": "Structured numerator details. Omitted optional values remain unspecified."
            },
            "denominator": {
              "additionalProperties": false,
              "type": "object",
              "required": [
                "value",
                "unit"
              ],
              "properties": {
                "value": {
                  "exclusiveMinimum": 0,
                  "type": "number",
                  "description": "Numeric value. Do not infer an omitted value."
                },
                "unit": {
                  "type": "string",
                  "description": "The unit for this entry. Omit optional information that has not been specified."
                }
              },
              "description": "Structured numerator details. Omitted optional values remain unspecified."
            }
          },
          "description": "Explicit amount per time or volume per time. No implicit unit conversion or pump calculation."
        }
      },
      "description": "Administration is a separate observable action referencing an order, not an automatic consequence of writing it."
    }
  ],
  "description": "Administration is a separate observable action referencing an order, not an automatic consequence of writing it.",
  "x-usim": {
    "execution": {
      "capability": "medication-administration"
    }
  }
}

Identifier

events.actions.*.administration.orderActionId

string · Required when the parent is present

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

  • Minimum length: 1
  • Maximum length: 128 characters
  • Pattern: \S

References events.actions using label as the display label.

Field schema

{
  "minLength": 1,
  "maxLength": 128,
  "pattern": "\\S",
  "title": "Identifier",
  "x-usim": {
    "reference": {
      "collection": "events.actions",
      "label": "label"
    }
  },
  "type": "string",
  "description": "Identifier of an existing events.actions entry. Preserve the referenced entry when editing this field."
}

mode

events.actions.*.administration.mode

Value · Required when the parent is present

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

Allowed values: bolus, infusion-stop

Field schema

{
  "anyOf": [
    {
      "const": "bolus",
      "type": "string",
      "description": "The required literal value \"bolus\"."
    },
    {
      "const": "infusion-stop",
      "type": "string",
      "description": "The required literal value \"infusion-stop\"."
    }
  ],
  "description": "Select one of the declared mode alternatives; use the fields belonging to that alternative."
}

rate

events.actions.*.administration.rate

object · Optional; an omitted value is not a normal, negative, or zero value

Explicit amount per time or volume per time. No implicit unit conversion or pump calculation.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "numerator",
    "denominator"
  ],
  "properties": {
    "numerator": {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "value",
        "unit"
      ],
      "properties": {
        "value": {
          "exclusiveMinimum": 0,
          "type": "number",
          "description": "Numeric value. Do not infer an omitted value."
        },
        "unit": {
          "type": "string",
          "description": "The unit for this entry. Omit optional information that has not been specified."
        }
      },
      "description": "Structured numerator details. Omitted optional values remain unspecified."
    },
    "denominator": {
      "additionalProperties": false,
      "type": "object",
      "required": [
        "value",
        "unit"
      ],
      "properties": {
        "value": {
          "exclusiveMinimum": 0,
          "type": "number",
          "description": "Numeric value. Do not infer an omitted value."
        },
        "unit": {
          "type": "string",
          "description": "The unit for this entry. Omit optional information that has not been specified."
        }
      },
      "description": "Structured numerator details. Omitted optional values remain unspecified."
    }
  },
  "description": "Explicit amount per time or volume per time. No implicit unit conversion or pump calculation."
}

numerator

events.actions.*.administration.rate.numerator

object · Required when the parent is present

Structured numerator details. Omitted optional values remain unspecified.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "value",
    "unit"
  ],
  "properties": {
    "value": {
      "exclusiveMinimum": 0,
      "type": "number",
      "description": "Numeric value. Do not infer an omitted value."
    },
    "unit": {
      "type": "string",
      "description": "The unit for this entry. Omit optional information that has not been specified."
    }
  },
  "description": "Structured numerator details. Omitted optional values remain unspecified."
}

value

events.actions.*.administration.rate.numerator.value

number · Required when the parent is present

Numeric value. Do not infer an omitted value.

Field schema

{
  "exclusiveMinimum": 0,
  "type": "number",
  "description": "Numeric value. Do not infer an omitted value."
}

unit

events.actions.*.administration.rate.numerator.unit

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "The unit for this entry. Omit optional information that has not been specified."
}

denominator

events.actions.*.administration.rate.denominator

object · Required when the parent is present

Structured numerator details. Omitted optional values remain unspecified.

Field schema

{
  "additionalProperties": false,
  "type": "object",
  "required": [
    "value",
    "unit"
  ],
  "properties": {
    "value": {
      "exclusiveMinimum": 0,
      "type": "number",
      "description": "Numeric value. Do not infer an omitted value."
    },
    "unit": {
      "type": "string",
      "description": "The unit for this entry. Omit optional information that has not been specified."
    }
  },
  "description": "Structured numerator details. Omitted optional values remain unspecified."
}

unit

events.actions.*.administration.rate.denominator.unit

string · Required when the parent is present

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

Field schema

{
  "type": "string",
  "description": "The unit for this entry. Omit optional information that has not been specified."
}