[
  {
    "title": "Начальный обмен: предложение профиля",
    "note": "Сценарий fragment-000; начальное состояние определяется только этим фрагментом и его пояснением. Первый прикладной запрос после взаимной TLS-аутентификации.",
    "xml": "<request v=\"1\" profile=\"bootstrap/1\" id=\"00000000000000000000000000003000\" action=\"protocol.hello\"><hello><profile id=\"open-alert-draft/0.20\"/></hello></request>",
    "scenarioId": "fragment-000",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Первый прикладной запрос после взаимной TLS-аутентификации."
    }
  },
  {
    "title": "Начальный обмен: выбор профиля",
    "note": "Сценарий fragment-000; начальное состояние определяется только этим фрагментом и его пояснением. Дальнейшие запросы используют выбранный профиль.",
    "xml": "<response v=\"1\" profile=\"bootstrap/1\" to=\"00000000000000000000000000003000\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><hello selectedProfile=\"open-alert-draft/0.20\" deviceId=\"00000000000000000000000000000072\" security=\"tls\"/></response>",
    "scenarioId": "fragment-000",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Первый прикладной запрос после взаимной TLS-аутентификации."
    }
  },
  {
    "title": "Получение управления: запрос",
    "note": "Сценарий fragment-002; начальное состояние определяется только этим фрагментом и его пояснением. acquireSeq и instanceId сохранены АРМ до отправки; principalId установлен TLS-контекстом.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000003001\" action=\"control.acquire\" bootId=\"00000000000000000000000000000073\"><control acquireSeq=\"1\" instanceId=\"00000000000000000000000000000081\" purpose=\"exercise\"/></request>",
    "scenarioId": "fragment-002",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "exercise",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "acquireSeq и instanceId сохранены АРМ до отправки; principalId установлен TLS-контекстом."
    }
  },
  {
    "title": "Получение управления: решение для повторной доставки",
    "note": "Сценарий fragment-002; начальное состояние определяется только этим фрагментом и его пояснением. Потерянный ответ восстанавливается повтором acquireSeq=1; новый канал прикрепляется через resume.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000003001\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><control controlEpoch=\"00000000000000000000000000000091\" acquireSeq=\"1\" instanceId=\"00000000000000000000000000000081\" attachSeq=\"0\" highWater=\"0\" current=\"true\" leaseRemainingMs=\"30000\" purpose=\"exercise\" idleDeadlineMs=\"60000\"/></response>",
    "scenarioId": "fragment-002",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "exercise",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "acquireSeq и instanceId сохранены АРМ до отправки; principalId установлен TLS-контекстом."
    }
  },
  {
    "title": "Восстановление управления: привязка нового соединения",
    "note": "Сценарий fragment-004; начальное состояние определяется только этим фрагментом и его пояснением. Та же эпоха, следующий сохраненный attachSeq; прежний канал теряет право изменения.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000003002\" action=\"control.resume\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\"><control acquireSeq=\"1\" instanceId=\"00000000000000000000000000000081\" attachSeq=\"1\"/></request>",
    "scenarioId": "fragment-004",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "exercise",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Та же эпоха, следующий сохраненный attachSeq; прежний канал теряет право изменения."
    }
  },
  {
    "title": "Восстановление управления: ответ",
    "note": "Сценарий fragment-004; начальное состояние определяется только этим фрагментом и его пояснением. highWater относится к сохраненной истории эпохи.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000003002\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><control controlEpoch=\"00000000000000000000000000000091\" acquireSeq=\"1\" instanceId=\"00000000000000000000000000000081\" attachSeq=\"1\" highWater=\"1\" current=\"true\" leaseRemainingMs=\"30000\" purpose=\"exercise\" idleDeadlineMs=\"60000\"/></response>",
    "scenarioId": "fragment-004",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "exercise",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Та же эпоха, следующий сохраненный attachSeq; прежний канал теряет право изменения."
    }
  },
  {
    "title": "Освобождение управления: запрос",
    "note": "Сценарий fragment-006; начальное состояние определяется только этим фрагментом и его пояснением. Допустим после завершения исполнения и подтвержденного off. Пример предполагает, что команда 2 уже обработана.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000003003\" action=\"control.release\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\" cmdSeq=\"3\"/>",
    "scenarioId": "fragment-006",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "2",
      "uptimeMs": "50000",
      "preconditions": "Допустим после завершения исполнения и подтвержденного off. Пример предполагает, что команда 2 уже обработана."
    }
  },
  {
    "title": "Освобождение управления: ответ",
    "note": "Сценарий fragment-006; начальное состояние определяется только этим фрагментом и его пояснением. Повтор решения не восстанавливает завершенную эпоху.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000003003\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><released controlEpoch=\"00000000000000000000000000000091\" released=\"true\"/></response>",
    "scenarioId": "fragment-006",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "2",
      "uptimeMs": "50000",
      "preconditions": "Допустим после завершения исполнения и подтвержденного off. Пример предполагает, что команда 2 уже обработана."
    }
  },
  {
    "title": "Проверка связи владельца",
    "note": "Сценарий fragment-008; начальное состояние определяется только этим фрагментом и его пояснением. Самостоятельный пример действующей эпохи. Отдельный слот и heartbeatIntervalMs=5000 мс.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000003004\" action=\"channel.ping\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\"/>",
    "scenarioId": "fragment-008",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Самостоятельный пример действующей эпохи. Отдельный слот и heartbeatIntervalMs=5000 мс."
    }
  },
  {
    "title": "Проверка связи: ответ",
    "note": "Сценарий fragment-008; начальное состояние определяется только этим фрагментом и его пояснением. Монотонное время УУ и остаток lease на момент ответа.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000003004\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><channel uptimeMs=\"50000\" leaseRemainingMs=\"30000\"/></response>",
    "scenarioId": "fragment-008",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Самостоятельный пример действующей эпохи. Отдельный слот и heartbeatIntervalMs=5000 мс."
    }
  },
  {
    "title": "Запуск: встроенная запись",
    "note": "Сценарий fragment-010; начальное состояние определяется только этим фрагментом и его пояснением. Отдельная трасса. Версия и Стрибог-256 содержимого обязательны; один проход.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000003005\" action=\"session.start\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\" cmdSeq=\"3\"><session mode=\"recording\" purpose=\"exercise\" acceptBeforeMs=\"60000\" maxDurationMs=\"30000\" configRevision=\"7\" capabilityRevision=\"4\"><resources><resource id=\"ou1\" bindingGeneration=\"2\"/></resources><recording contentId=\"message1\" revision=\"1\" hashAlgorithm=\"streebog256\" hash=\"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"/></session></request>",
    "scenarioId": "fragment-010",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "exercise",
      "highWater": "2",
      "uptimeMs": "50000",
      "preconditions": "Отдельная трасса. Версия и Стрибог-256 содержимого обязательны; один проход."
    }
  },
  {
    "title": "Запуск: опрос с запуском",
    "note": "Сценарий fragment-011; начальное состояние определяется только этим фрагментом и его пояснением. Самостоятельная ветвь: controlEpoch заранее получен с purpose=technical. Отдельная трасса. testId и testRevision ссылаются на tests.list; purpose=technical.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000003006\" action=\"session.start\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\" cmdSeq=\"3\"><session mode=\"test\" purpose=\"technical\" acceptBeforeMs=\"60000\" maxDurationMs=\"10000\" configRevision=\"7\" capabilityRevision=\"4\"><resources><resource id=\"ou1\" bindingGeneration=\"2\"/></resources><test testId=\"activation1\" testRevision=\"1\"/></session></request>",
    "scenarioId": "fragment-011",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "technical",
      "highWater": "2",
      "uptimeMs": "50000",
      "preconditions": "Самостоятельная ветвь: controlEpoch заранее получен с purpose=technical. Отдельная трасса. testId и testRevision ссылаются на tests.list; purpose=technical."
    }
  },
  {
    "title": "Результат сеанса: первая страница",
    "note": "Сценарий fragment-012; начальное состояние определяется только этим фрагментом и его пояснением. Чтение сохраненного результата session.start 1 в заданной эпохе.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000003007\" action=\"session.get\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\"><selection startSeq=\"1\"/></request>",
    "scenarioId": "fragment-012",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Чтение сохраненного результата START 1 в заданной эпохе."
    }
  },
  {
    "title": "Результат сеанса: результат и продолжение",
    "note": "Сценарий fragment-012; начальное состояние определяется только этим фрагментом и его пояснением. Снимок результата фиксирован. more=true требует продолжения даже при finished.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000003007\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><result snapshotId=\"00000000000000000000000000000094\" stateRevision=\"40\" more=\"true\" cursor=\"page2\" resourceCount=\"1\" checkCount=\"1\" observationCount=\"0\" mode=\"siren\" evaluatedAtMs=\"72000\" executionCount=\"1\" faultCount=\"0\"><session id=\"00000000000000000000000000000581\" startSeq=\"1\" state=\"finished\" onControlLoss=\"stop\" configRevision=\"7\" capabilityRevision=\"4\" acceptedAtMs=\"50000\" maxDurationMs=\"30000\" result=\"succeeded\" reason=\"completed\"/><resource id=\"ou1\" output=\"off\" evidence=\"reportedMode\" observedAtMs=\"71000\" bindingGeneration=\"2\"/></result></response>",
    "scenarioId": "fragment-012",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Чтение сохраненного результата START 1 в заданной эпохе."
    }
  },
  {
    "title": "Результат сеанса: запрос продолжения",
    "note": "Сценарий fragment-014; начальное состояние определяется только этим фрагментом и его пояснением. Выбор сеанса и snapshotId сохраняются.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000003008\" action=\"session.get\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\"><selection startSeq=\"1\" snapshotId=\"00000000000000000000000000000094\" cursor=\"page2\"/></request>",
    "scenarioId": "fragment-014",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Выбор сеанса и snapshotId сохраняются."
    }
  },
  {
    "title": "Результат сеанса: конец результата",
    "note": "Сценарий fragment-014; начальное состояние определяется только этим фрагментом и его пояснением. Последняя страница того же снимка; сводка session уже получена на первой. Счетчики относятся ко всему результату. timeline задает реальные границы исполнения; prepareTimeoutMs=2000, stopBeginMs=100, stopConfirmMs=3000.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000003008\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><result snapshotId=\"00000000000000000000000000000094\" stateRevision=\"40\" more=\"true\" resourceCount=\"1\" checkCount=\"1\" observationCount=\"0\" mode=\"siren\" evaluatedAtMs=\"72000\" executionCount=\"1\" faultCount=\"0\" cursor=\"proof\"><check id=\"outputOff\" status=\"passed\" resourceId=\"ou1\" phase=\"stopped\"/><timeline sessionId=\"00000000000000000000000000000581\" prepareDeadlineMs=\"52000\" runningAtMs=\"50100\" runDeadlineMs=\"70100\" stoppingAtMs=\"70100\" stopIssuedAtMs=\"70120\" stopBeginDeadlineMs=\"70200\" stopConfirmDeadlineMs=\"73100\" finishedAtMs=\"71100\"/></result></response>",
    "scenarioId": "fragment-014",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Выбор сеанса и snapshotId сохраняются."
    }
  },
  {
    "title": "Описание устройства: запрос",
    "note": "Сценарий fragment-016; начальное состояние определяется только этим фрагментом и его пояснением. После выбора профиля; владение НЕ ТРЕБУЕТСЯ.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000003100\" action=\"device.describe\"/>",
    "scenarioId": "fragment-016",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "После выбора профиля; владение не требуется."
    }
  },
  {
    "title": "Описание устройства: ответ",
    "note": "Сценарий fragment-016; начальное состояние определяется только этим фрагментом и его пояснением. Монотонное время относится к bootId ответа.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000003100\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><device deviceId=\"00000000000000000000000000000072\" kind=\"vau\" version=\"1.0\" uptimeMs=\"50000\" securityPolicy=\"optional\"/><info protocolName=\"Открытый протокол систем оповещения\"/></response>",
    "scenarioId": "fragment-016",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "После выбора профиля; владение не требуется."
    }
  },
  {
    "title": "Возможности устройства: первая страница",
    "note": "Сценарий fragment-018; начальное состояние определяется только этим фрагментом и его пояснением. Запрос всего каталога возможностей УУ.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000003101\" action=\"device.capabilities\"/>",
    "scenarioId": "fragment-018",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Запрос всего каталога возможностей УУ."
    }
  },
  {
    "title": "Возможности устройства: страница возможностей",
    "note": "Сценарий fragment-018; начальное состояние определяется только этим фрагментом и его пояснением. more=true: перечисление продолжается; эта страница не объявляет полный набор команд и лимитов.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000003101\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><capabilities snapshotId=\"00000000000000000000000000000095\" capabilityRevision=\"4\" more=\"true\" cursor=\"page2\"><mode id=\"siren\"/><command name=\"session.start\"/><resource id=\"ou1\" ouId=\"ou1\" bindingGeneration=\"2\" conflictGroup=\"amplifier1\"/><limit name=\"heartbeatIntervalMs\" value=\"5000\"/></capabilities></response>",
    "scenarioId": "fragment-018",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Запрос всего каталога возможностей УУ."
    }
  },
  {
    "title": "Состояние устройства: запрос снимка",
    "note": "Сценарий fragment-020; начальное состояние определяется только этим фрагментом и его пояснением. Отдельное наблюдение состояния, без захвата владения.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000003102\" action=\"device.state\"/>",
    "scenarioId": "fragment-020",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Отдельное наблюдение состояния, без захвата владения."
    }
  },
  {
    "title": "Состояние устройства: снимок и граница событий",
    "note": "Сценарий fragment-020; начальное состояние определяется только этим фрагментом и его пояснением. Исходная точка для последующего events.read afterSeq=207.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000003102\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><state snapshotId=\"00000000000000000000000000000096\" stateRevision=\"31\" eventSeq=\"207\" capabilityRevision=\"4\" uptimeMs=\"50000\" resourceCount=\"1\" alarmCount=\"0\" sessionCount=\"0\" more=\"false\"><configuration configRevision=\"7\" appliedRevision=\"7\" onControlLoss=\"finish\"/><ownership state=\"free\"/><recovery state=\"ready\"/><resource id=\"ou1\" output=\"off\" evidence=\"reportedMode\" observedAtMs=\"49900\"/></state></response>",
    "scenarioId": "fragment-020",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Отдельное наблюдение состояния, без захвата владения."
    }
  },
  {
    "title": "Каталог: запрос описания точки",
    "note": "Сценарий fragment-022; начальное состояние определяется только этим фрагментом и его пояснением. Постоянное описание читается отдельно от измерений.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000002004\" action=\"inventory.get\">\n  <selection pointId=\"ou1.mainsMissing\"/>\n</request>",
    "scenarioId": "fragment-022",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Постоянное описание читается отдельно от измерений."
    }
  },
  {
    "title": "Каталог: одна страница описания",
    "note": "Сценарий fragment-022; начальное состояние определяется только этим фрагментом и его пояснением. Самостоятельная запись facet=source укладывается в лимит атрибутов. more=true и cursor требуют следующей страницы того же snapshotId; это еще не полный каталог.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000002004\" bootId=\"00000000000000000000000000000073\" status=\"ok\">\n  <inventory snapshotId=\"00000000000000000000000000000093\" capabilityRevision=\"4\" bindingGeneration=\"2\" more=\"true\" cursor=\"page2\">\n    <point id=\"ou1.mainsMissing\" facet=\"source\" sourceKind=\"ouReply\" presence=\"present\" support=\"supported\"/>\n  </inventory>\n</response>",
    "scenarioId": "fragment-022",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Постоянное описание читается отдельно от измерений."
    }
  },
  {
    "title": "Датчик: чтение сохраненного показания",
    "note": "Сценарий fragment-024; начальное состояние определяется только этим фрагментом и его пояснением. Чтение точки не запускает функциональный тест и не меняет возраст показания.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000002001\" action=\"sensors.read\">\n  <selection>\n    <point id=\"ou1.mainsMissing\"/>\n  </selection>\n</request>",
    "scenarioId": "fragment-024",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Чтение точки не запускает функциональный тест и не меняет возраст показания."
    }
  },
  {
    "title": "Датчик: значение и его качество",
    "note": "Сценарий fragment-024; начальное состояние определяется только этим фрагментом и его пояснением. complete относится к выбранному набору из одной точки. capabilityRevision обозначает версию состава каталога. observedAtMs - время получения наблюдения в монотонной шкале УУ; численные интервалы иллюстративны.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000002001\" bootId=\"00000000000000000000000000000073\" status=\"ok\">\n  <snapshot snapshotId=\"00000000000000000000000000000092\" bindingGeneration=\"2\" more=\"false\" capabilityRevision=\"4\" stateRevision=\"31\" eventSeq=\"207\" evaluatedAtMs=\"50000\" complete=\"true\">\n    <point id=\"ou1.mainsMissing\" value=\"true\" validity=\"valid\" freshness=\"fresh\" sourceId=\"ou1\" sourceKind=\"ouReply\" sampleSeq=\"23\" observedAtMs=\"49900\" changedAtMs=\"43000\" maxAgeMs=\"2000\" type=\"bool\"/>\n  </snapshot>\n</response>",
    "scenarioId": "fragment-024",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Чтение точки не запускает функциональный тест и не меняет возраст показания."
    }
  },
  {
    "title": "События: запрос после обработанного номера",
    "note": "Сценарий fragment-026; начальное состояние определяется только этим фрагментом и его пояснением. Обычный запрос pull-доставки. Курсор относится к указанному bootId.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000002003\" action=\"events.read\">\n  <events bootId=\"00000000000000000000000000000073\" afterSeq=\"207\"/>\n</request>",
    "scenarioId": "fragment-026",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Обычный запрос pull-доставки. Курсор относится к указанному bootId."
    }
  },
  {
    "title": "Потеря взаимодействия с ОУ: событие в ответе на чтение",
    "note": "Сценарий fragment-026; начальное состояние определяется только этим фрагментом и его пояснением. Последнее аварийное значение сохранено. validity=unavailable и freshness=stale запрещают считать его свежим подтверждением состояния; sourceLost не очищает аварию. nextSeq сохраняется после обработки страницы.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000002003\" bootId=\"00000000000000000000000000000073\" status=\"ok\">\n  <events nextSeq=\"208\" more=\"false\" gap=\"false\" oldestSeq=\"180\">\n    <event seq=\"208\" stateRevision=\"32\" capabilityRevision=\"4\" type=\"sensor.qualityChanged\">\n      <point id=\"ou1.mainsMissing\" value=\"true\" validity=\"unavailable\" freshness=\"stale\" reason=\"sourceLost\" sourceId=\"ou1\" observedAtMs=\"49900\" evaluatedAtMs=\"52500\" type=\"bool\"/>\n    </event>\n  </events>\n</response>",
    "scenarioId": "fragment-026",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Обычный запрос pull-доставки. Курсор относится к указанному bootId."
    }
  },
  {
    "title": "Запуск: конечная сирена",
    "note": "Сценарий fragment-028; начальное состояние определяется только этим фрагментом и его пояснением. Полный session.start сирены. acceptBeforeMs относится к uptimeMs данного bootId; конфигурация и каталог зафиксированы ревизиями. onControlLoss=stop заранее сохранен на УУ.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000001042\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\" cmdSeq=\"1\" action=\"session.start\">\n  <session mode=\"siren\" purpose=\"exercise\" acceptBeforeMs=\"60000\" maxDurationMs=\"30000\" configRevision=\"7\" capabilityRevision=\"4\">\n    <resources><resource id=\"ou1\" bindingGeneration=\"2\"/></resources>\n    <siren pattern=\"continuous\" durationMs=\"20000\" stopMode=\"duration\"/>\n  </session>\n</request>",
    "scenarioId": "fragment-028",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "exercise",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Полный START сирены. acceptBeforeMs относится к uptimeMs данного bootId; конфигурация и каталог зафиксированы ревизиями. onControlLoss=stop заранее сохранен на УУ."
    }
  },
  {
    "title": "Принятие запуска",
    "note": "Сценарий fragment-028; начальное состояние определяется только этим фрагментом и его пояснением. accepted подтверждает прием. Переход в running и физические наблюдения ОУ передаются отдельно.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000001042\" bootId=\"00000000000000000000000000000073\" status=\"accepted\">\n  <session id=\"00000000000000000000000000000581\" startSeq=\"1\" state=\"starting\" onControlLoss=\"stop\" configRevision=\"7\" capabilityRevision=\"4\" acceptedAtMs=\"50000\" maxDurationMs=\"30000\"/>\n</response>",
    "scenarioId": "fragment-028",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "exercise",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Полный START сирены. acceptBeforeMs относится к uptimeMs данного bootId; конфигурация и каталог зафиксированы ревизиями. onControlLoss=stop заранее сохранен на УУ."
    }
  },
  {
    "title": "Отмена после потери ответа на запуск",
    "note": "Сценарий fragment-030; начальное состояние определяется только этим фрагментом и его пояснением. Новый номер 2 отменяет session.start с номером 1 в том же bootId/controlEpoch.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000001045\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\" cmdSeq=\"2\" action=\"session.cancel\">\n  <session startSeq=\"1\"/>\n</request>",
    "scenarioId": "fragment-030",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "1",
      "uptimeMs": "50000",
      "preconditions": "Новый номер 2 отменяет START с номером 1 в том же bootId/controlEpoch."
    }
  },
  {
    "title": "Отмена без активного совпадения",
    "note": "Сценарий fragment-030; начальное состояние определяется только этим фрагментом и его пояснением. История неизвестна. Такой ответ не означает, что сирена ранее не включалась.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000001045\" bootId=\"00000000000000000000000000000073\" status=\"accepted\">\n  <cancellation startSeq=\"1\" activeMatch=\"false\" lateStartBlocked=\"true\" history=\"unknown\"/>\n</response>",
    "scenarioId": "fragment-030",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "1",
      "uptimeMs": "50000",
      "preconditions": "Новый номер 2 отменяет START с номером 1 в том же bootId/controlEpoch."
    }
  },
  {
    "title": "Остановка: sessionId известен",
    "note": "Сценарий fragment-032; начальное состояние определяется только этим фрагментом и его пояснением. Альтернатива cancel, а не следующий запрос с повторным номером 2 в той же последовательности.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000001044\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\" cmdSeq=\"2\" action=\"session.stop\">\n  <session id=\"00000000000000000000000000000581\"/>\n</request>",
    "scenarioId": "fragment-032",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "1",
      "uptimeMs": "50000",
      "preconditions": "Альтернатива cancel, а не следующий запрос с повторным номером 2 в той же последовательности."
    }
  },
  {
    "title": "Отказ: ресурс занят",
    "note": "Сценарий fragment-033; начальное состояние определяется только этим фрагментом и его пояснением. Альтернативный ответ на показанный session.start 1042; не следует после его принятия в той же трассе. АРМ принимает решение по устойчивому машинному коду; человекочитаемый текст не служит условием алгоритма.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000001042\" bootId=\"00000000000000000000000000000073\" status=\"error\">\n  <error code=\"busy\" resource=\"session\" detail=\"executionActive\"/>\n</response>",
    "scenarioId": "fragment-033",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Альтернативный ответ на показанный START 1042; не следует после его принятия в той же трассе. АРМ принимает решение по устойчивому машинному коду; человекочитаемый текст не служит условием алгоритма."
    }
  },
  {
    "title": "Аварии: запрос полного состояния",
    "note": "Сценарий fragment-034; начальное состояние определяется только этим фрагментом и его пояснением. Первая страница снимка перед восстановлением журнала.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000004100\" action=\"device.state\"/>",
    "scenarioId": "fragment-034",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Первая страница снимка перед восстановлением журнала."
    }
  },
  {
    "title": "Аварии: контекст и ресурс",
    "note": "Сценарий fragment-034; начальное состояние определяется только этим фрагментом и его пояснением. alarmCount=1 относится ко всему снимку. До конца страниц список аварий не считается восстановленным.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000004100\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><state snapshotId=\"00000000000000000000000000000410\" stateRevision=\"31\" eventSeq=\"207\" capabilityRevision=\"4\" uptimeMs=\"50000\" resourceCount=\"1\" alarmCount=\"1\" sessionCount=\"0\" more=\"true\" cursor=\"alarmPage\"><configuration configRevision=\"7\" appliedRevision=\"7\" onControlLoss=\"finish\"/><ownership state=\"free\"/><recovery state=\"ready\"/><resource id=\"ou1\" output=\"off\" evidence=\"reportedMode\" observedAtMs=\"49900\"/></state></response>",
    "scenarioId": "fragment-034",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Первая страница снимка перед восстановлением журнала."
    }
  },
  {
    "title": "Аварии: запрос продолжения",
    "note": "Сценарий fragment-036; начальное состояние определяется только этим фрагментом и его пояснением. Тот же snapshotId и полученный cursor.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000004101\" action=\"device.state\"><selection snapshotId=\"00000000000000000000000000000410\" cursor=\"alarmPage\"/></request>",
    "scenarioId": "fragment-036",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Тот же snapshotId и полученный cursor."
    }
  },
  {
    "title": "Аварии: активный эпизод из снимка",
    "note": "Сценарий fragment-036; начальное состояние определяется только этим фрагментом и его пояснением. Это существующая авария, а не новый фронт. Теперь получены все счетчики снимка.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000004101\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><state snapshotId=\"00000000000000000000000000000410\" stateRevision=\"31\" eventSeq=\"207\" capabilityRevision=\"4\" uptimeMs=\"50000\" resourceCount=\"1\" alarmCount=\"1\" sessionCount=\"0\" more=\"false\"><alarm conditionId=\"mainsLoss\" alarmId=\"00000000000000000000000000000600\" pointId=\"ou1.mainsMissing\" state=\"active\" severity=\"critical\" validity=\"valid\" freshness=\"fresh\" observedAtMs=\"49900\" changedAtMs=\"43000\" continuity=\"continuous\"/></state></response>",
    "scenarioId": "fragment-036",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Тот же snapshotId и полученный cursor."
    }
  },
  {
    "title": "Аварии: события после снимка",
    "note": "Сценарий fragment-038; начальное состояние определяется только этим фрагментом и его пояснением. Запрос продолжает границу eventSeq=207 из полного снимка.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000004102\" action=\"events.read\"><events bootId=\"00000000000000000000000000000073\" afterSeq=\"207\"/></request>",
    "scenarioId": "fragment-038",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Запрос продолжает границу eventSeq=207 из полного снимка."
    }
  },
  {
    "title": "Аварии: подтвержденное снятие",
    "note": "Сценарий fragment-038; начальное состояние определяется только этим фрагментом и его пояснением. Сохраняются conditionId и alarmId; новый stateRevision, полная запись качества.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000004102\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><events nextSeq=\"208\" more=\"false\" gap=\"false\" oldestSeq=\"180\"><event seq=\"208\" stateRevision=\"32\" capabilityRevision=\"4\" type=\"alarm.cleared\"><alarm conditionId=\"mainsLoss\" alarmId=\"00000000000000000000000000000600\" pointId=\"ou1.mainsMissing\" state=\"cleared\" severity=\"critical\" validity=\"valid\" freshness=\"fresh\" observedAtMs=\"51000\" changedAtMs=\"51000\" continuity=\"continuous\"/></event></events></response>",
    "scenarioId": "fragment-038",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Запрос продолжает границу eventSeq=207 из полного снимка."
    }
  },
  {
    "title": "Перечисление: запрос каталога точки",
    "note": "Сценарий fragment-040; начальное состояние определяется только этим фрагментом и его пояснением. Каталог enum читается вместе со всеми четырьмя facet.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000004103\" action=\"inventory.get\"><selection pointId=\"ou1.powerMode\"/></request>",
    "scenarioId": "fragment-040",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Каталог enum читается вместе со всеми четырьмя facet."
    }
  },
  {
    "title": "Перечисление: описание точки",
    "note": "Сценарий fragment-040; начальное состояние определяется только этим фрагментом и его пояснением. Первая страница каталога; окончание еще не получено.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000004103\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><inventory snapshotId=\"00000000000000000000000000000411\" capabilityRevision=\"4\" bindingGeneration=\"2\" more=\"true\" cursor=\"enumPage\"><point id=\"ou1.powerMode\" facet=\"identity\" resourceId=\"ou1\" ouId=\"ou1\"/><point id=\"ou1.powerMode\" facet=\"meaning\" kind=\"powerMode\" type=\"enum\"/><point id=\"ou1.powerMode\" facet=\"source\" sourceKind=\"ouReply\" presence=\"present\" support=\"supported\"/></inventory></response>",
    "scenarioId": "fragment-040",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Каталог enum читается вместе со всеми четырьмя facet."
    }
  },
  {
    "title": "Перечисление: продолжение с тем же фильтром",
    "note": "Сценарий fragment-042; начальное состояние определяется только этим фрагментом и его пояснением. Нельзя потерять pointId при передаче cursor.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000004104\" action=\"inventory.get\"><selection pointId=\"ou1.powerMode\" snapshotId=\"00000000000000000000000000000411\" cursor=\"enumPage\"/></request>",
    "scenarioId": "fragment-042",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Нельзя потерять pointId при передаче cursor."
    }
  },
  {
    "title": "Перечисление: список значений",
    "note": "Сценарий fragment-042; начальное состояние определяется только этим фрагментом и его пояснением. Ключ (pointId, code); label - текст для отображения.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000004104\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><inventory snapshotId=\"00000000000000000000000000000411\" capabilityRevision=\"4\" bindingGeneration=\"2\" more=\"false\"><point id=\"ou1.powerMode\" facet=\"acquisition\" readMethod=\"cached\" maxAgeMs=\"2000\"/><enum pointId=\"ou1.powerMode\" code=\"mains\" label=\"Основное питание\"/><enum pointId=\"ou1.powerMode\" code=\"battery\" label=\"Резервное питание\"/></inventory></response>",
    "scenarioId": "fragment-042",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Нельзя потерять pointId при передаче cursor."
    }
  },
  {
    "title": "Порог: запрос каталога",
    "note": "Сценарий fragment-044; начальное состояние определяется только этим фрагментом и его пояснением. Числовая точка и связанное с ней условие.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000004105\" action=\"inventory.get\"><selection pointId=\"ou1.temperature\"/></request>",
    "scenarioId": "fragment-044",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Числовая точка и связанное с ней условие."
    }
  },
  {
    "title": "Порог: постоянное описание",
    "note": "Сценарий fragment-044; начальное состояние определяется только этим фрагментом и его пояснением. Продолжение содержит способ чтения и порог.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000004105\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><inventory snapshotId=\"00000000000000000000000000000412\" capabilityRevision=\"4\" bindingGeneration=\"2\" more=\"true\" cursor=\"thresholdPage\"><point id=\"ou1.temperature\" facet=\"identity\" resourceId=\"ou1\" ouId=\"ou1\"/><point id=\"ou1.temperature\" facet=\"meaning\" kind=\"temperature\" type=\"int\" unit=\"C\" scale=\"1\"/><point id=\"ou1.temperature\" facet=\"source\" sourceKind=\"ouReply\" presence=\"present\" support=\"supported\"/></inventory></response>",
    "scenarioId": "fragment-044",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Числовая точка и связанное с ней условие."
    }
  },
  {
    "title": "Порог: запрос продолжения",
    "note": "Сценарий fragment-046; начальное состояние определяется только этим фрагментом и его пояснением. Тот же фильтр и снимок.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000004106\" action=\"inventory.get\"><selection pointId=\"ou1.temperature\" snapshotId=\"00000000000000000000000000000412\" cursor=\"thresholdPage\"/></request>",
    "scenarioId": "fragment-046",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Тот же фильтр и снимок."
    }
  },
  {
    "title": "Порог: условие перегрева",
    "note": "Сценарий fragment-046; начальное состояние определяется только этим фрагментом и его пояснением. gt=80, снятие ниже 75. conditionId связывает описание условия и эпизоды alarm.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000004106\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><inventory snapshotId=\"00000000000000000000000000000412\" capabilityRevision=\"4\" bindingGeneration=\"2\" more=\"false\"><point id=\"ou1.temperature\" facet=\"acquisition\" readMethod=\"cached\" maxAgeMs=\"2000\"/><threshold pointId=\"ou1.temperature\" conditionId=\"overheat\" operator=\"gt\" value=\"80\" hysteresis=\"5\" severity=\"critical\"/></inventory></response>",
    "scenarioId": "fragment-046",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Тот же фильтр и снимок."
    }
  },
  {
    "title": "Результат опроса с задействованием: запрос 1",
    "note": "Сценарий fragment-048; начальное состояние определяется только этим фрагментом и его пояснением. Часть полного комплекта execution-0.11.json. Сводка только на первой странице.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000001770\" action=\"session.get\" bootId=\"00000000000000000000000000000073\"><selection sessionId=\"000000000000000000000000000016a9\"/></request>",
    "scenarioId": "fragment-048",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Часть полного комплекта execution-0.11.json. Сводка только на первой странице."
    }
  },
  {
    "title": "Результат опроса с задействованием: страница 1",
    "note": "Сценарий fragment-048; начальное состояние определяется только этим фрагментом и его пояснением. Полный фиксированный набор включает ресурс, проверки и три фазы наблюдения.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000001770\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><result snapshotId=\"000000000000000000000000000001f4\" stateRevision=\"50\" mode=\"test\" resourceCount=\"1\" checkCount=\"2\" observationCount=\"3\" more=\"true\" cursor=\"p1\" evaluatedAtMs=\"55000\" executionCount=\"1\" faultCount=\"0\"><session id=\"000000000000000000000000000016a9\" startSeq=\"3\" state=\"finished\" onControlLoss=\"stop\" configRevision=\"7\" capabilityRevision=\"4\" acceptedAtMs=\"50000\" maxDurationMs=\"10000\" result=\"succeeded\" reason=\"completed\"/></result></response>",
    "scenarioId": "fragment-048",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Часть полного комплекта execution-0.11.json. Сводка только на первой странице."
    }
  },
  {
    "title": "Результат опроса с задействованием: запрос 2",
    "note": "Сценарий fragment-050; начальное состояние определяется только этим фрагментом и его пояснением. Часть полного комплекта execution-0.11.json. Сводка только на первой странице.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000001771\" action=\"session.get\" bootId=\"00000000000000000000000000000073\"><selection sessionId=\"000000000000000000000000000016a9\" snapshotId=\"000000000000000000000000000001f4\" cursor=\"p1\"/></request>",
    "scenarioId": "fragment-050",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Часть полного комплекта execution-0.11.json. Сводка только на первой странице."
    }
  },
  {
    "title": "Результат опроса с задействованием: страница 2",
    "note": "Сценарий fragment-050; начальное состояние определяется только этим фрагментом и его пояснением. Полный фиксированный набор включает ресурс, проверки и три фазы наблюдения. timeline относится ко всему тесту; prepareTimeoutMs=2000, stopBeginMs=100, stopConfirmMs=3000.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000001771\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><result snapshotId=\"000000000000000000000000000001f4\" stateRevision=\"50\" mode=\"test\" resourceCount=\"1\" checkCount=\"2\" observationCount=\"3\" more=\"true\" cursor=\"p2\" evaluatedAtMs=\"55000\" executionCount=\"1\" faultCount=\"0\"><resource id=\"ou1\" bindingGeneration=\"2\" output=\"off\" evidence=\"reportedMode\" observedAtMs=\"54000\"/><timeline sessionId=\"000000000000000000000000000016a9\" prepareDeadlineMs=\"52000\" runningAtMs=\"51000\" runDeadlineMs=\"60000\" stoppingAtMs=\"52000\" stopIssuedAtMs=\"52020\" stopBeginDeadlineMs=\"52100\" stopConfirmDeadlineMs=\"55000\" finishedAtMs=\"54000\"/></result></response>",
    "scenarioId": "fragment-050",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Часть полного комплекта execution-0.11.json. Сводка только на первой странице."
    }
  },
  {
    "title": "Результат опроса с задействованием: запрос 3",
    "note": "Сценарий fragment-052; начальное состояние определяется только этим фрагментом и его пояснением. Часть полного комплекта execution-0.11.json. Сводка только на первой странице.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000001772\" action=\"session.get\" bootId=\"00000000000000000000000000000073\"><selection sessionId=\"000000000000000000000000000016a9\" snapshotId=\"000000000000000000000000000001f4\" cursor=\"p2\"/></request>",
    "scenarioId": "fragment-052",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Часть полного комплекта execution-0.11.json. Сводка только на первой странице."
    }
  },
  {
    "title": "Результат опроса с задействованием: страница 3",
    "note": "Сценарий fragment-052; начальное состояние определяется только этим фрагментом и его пояснением. Полный фиксированный набор включает ресурс, проверки и три фазы наблюдения.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000001772\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><result snapshotId=\"000000000000000000000000000001f4\" stateRevision=\"50\" mode=\"test\" resourceCount=\"1\" checkCount=\"2\" observationCount=\"3\" more=\"true\" cursor=\"p3\" evaluatedAtMs=\"55000\" executionCount=\"1\" faultCount=\"0\"><check id=\"activation\" resourceId=\"ou1\" phase=\"running\" status=\"passed\"/></result></response>",
    "scenarioId": "fragment-052",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Часть полного комплекта execution-0.11.json. Сводка только на первой странице."
    }
  },
  {
    "title": "Результат опроса с задействованием: запрос 4",
    "note": "Сценарий fragment-054; начальное состояние определяется только этим фрагментом и его пояснением. Часть полного комплекта execution-0.11.json. Сводка только на первой странице.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000001773\" action=\"session.get\" bootId=\"00000000000000000000000000000073\"><selection sessionId=\"000000000000000000000000000016a9\" snapshotId=\"000000000000000000000000000001f4\" cursor=\"p3\"/></request>",
    "scenarioId": "fragment-054",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Часть полного комплекта execution-0.11.json. Сводка только на первой странице."
    }
  },
  {
    "title": "Результат опроса с задействованием: страница 4",
    "note": "Сценарий fragment-054; начальное состояние определяется только этим фрагментом и его пояснением. Полный фиксированный набор включает ресурс, проверки и три фазы наблюдения.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000001773\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><result snapshotId=\"000000000000000000000000000001f4\" stateRevision=\"50\" mode=\"test\" resourceCount=\"1\" checkCount=\"2\" observationCount=\"3\" more=\"true\" cursor=\"p4\" evaluatedAtMs=\"55000\" executionCount=\"1\" faultCount=\"0\"><check id=\"outputOff\" resourceId=\"ou1\" phase=\"stopped\" status=\"passed\"/></result></response>",
    "scenarioId": "fragment-054",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Часть полного комплекта execution-0.11.json. Сводка только на первой странице."
    }
  },
  {
    "title": "Результат опроса с задействованием: запрос 5",
    "note": "Сценарий fragment-056; начальное состояние определяется только этим фрагментом и его пояснением. Часть полного комплекта execution-0.11.json. Сводка только на первой странице.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000001774\" action=\"session.get\" bootId=\"00000000000000000000000000000073\"><selection sessionId=\"000000000000000000000000000016a9\" snapshotId=\"000000000000000000000000000001f4\" cursor=\"p4\"/></request>",
    "scenarioId": "fragment-056",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Часть полного комплекта execution-0.11.json. Сводка только на первой странице."
    }
  },
  {
    "title": "Результат опроса с задействованием: страница 5",
    "note": "Сценарий fragment-056; начальное состояние определяется только этим фрагментом и его пояснением. Полный фиксированный набор включает ресурс, проверки и три фазы наблюдения.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000001774\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><result snapshotId=\"000000000000000000000000000001f4\" stateRevision=\"50\" mode=\"test\" resourceCount=\"1\" checkCount=\"2\" observationCount=\"3\" more=\"true\" cursor=\"p5\" evaluatedAtMs=\"55000\" executionCount=\"1\" faultCount=\"0\"><observation id=\"baselineMode\" resourceId=\"ou1\" pointId=\"ou1.active\" phase=\"baseline\" type=\"bool\" sourceId=\"ou1\" sourceKind=\"ouReply\" value=\"false\" validity=\"valid\" freshness=\"fresh\" observedAtMs=\"50000\"/></result></response>",
    "scenarioId": "fragment-056",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Часть полного комплекта execution-0.11.json. Сводка только на первой странице."
    }
  },
  {
    "title": "Результат опроса с задействованием: запрос 6",
    "note": "Сценарий fragment-058; начальное состояние определяется только этим фрагментом и его пояснением. Часть полного комплекта execution-0.11.json. Сводка только на первой странице.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000001775\" action=\"session.get\" bootId=\"00000000000000000000000000000073\"><selection sessionId=\"000000000000000000000000000016a9\" snapshotId=\"000000000000000000000000000001f4\" cursor=\"p5\"/></request>",
    "scenarioId": "fragment-058",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Часть полного комплекта execution-0.11.json. Сводка только на первой странице."
    }
  },
  {
    "title": "Результат опроса с задействованием: страница 6",
    "note": "Сценарий fragment-058; начальное состояние определяется только этим фрагментом и его пояснением. Полный фиксированный набор включает ресурс, проверки и три фазы наблюдения.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000001775\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><result snapshotId=\"000000000000000000000000000001f4\" stateRevision=\"50\" mode=\"test\" resourceCount=\"1\" checkCount=\"2\" observationCount=\"3\" more=\"true\" cursor=\"p6\" evaluatedAtMs=\"55000\" executionCount=\"1\" faultCount=\"0\"><observation id=\"runningMode\" resourceId=\"ou1\" pointId=\"ou1.active\" phase=\"running\" type=\"bool\" sourceId=\"ou1\" sourceKind=\"ouReply\" value=\"true\" validity=\"valid\" freshness=\"fresh\" observedAtMs=\"51000\"/></result></response>",
    "scenarioId": "fragment-058",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Часть полного комплекта execution-0.11.json. Сводка только на первой странице."
    }
  },
  {
    "title": "Результат опроса с задействованием: запрос 7",
    "note": "Сценарий fragment-060; начальное состояние определяется только этим фрагментом и его пояснением. Часть полного комплекта execution-0.11.json. Сводка только на первой странице.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000001776\" action=\"session.get\" bootId=\"00000000000000000000000000000073\"><selection sessionId=\"000000000000000000000000000016a9\" snapshotId=\"000000000000000000000000000001f4\" cursor=\"p6\"/></request>",
    "scenarioId": "fragment-060",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Часть полного комплекта execution-0.11.json. Сводка только на первой странице."
    }
  },
  {
    "title": "Результат опроса с задействованием: страница 7",
    "note": "Сценарий fragment-060; начальное состояние определяется только этим фрагментом и его пояснением. Полный фиксированный набор включает ресурс, проверки и три фазы наблюдения.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000001776\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><result snapshotId=\"000000000000000000000000000001f4\" stateRevision=\"50\" mode=\"test\" resourceCount=\"1\" checkCount=\"2\" observationCount=\"3\" more=\"true\" evaluatedAtMs=\"55000\" executionCount=\"1\" faultCount=\"0\" cursor=\"proof\"><observation id=\"stoppedMode\" resourceId=\"ou1\" pointId=\"ou1.active\" phase=\"stopped\" type=\"bool\" sourceId=\"ou1\" sourceKind=\"ouReply\" value=\"false\" validity=\"valid\" freshness=\"fresh\" observedAtMs=\"53000\"/></result></response>",
    "scenarioId": "fragment-060",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Часть полного комплекта execution-0.11.json. Сводка только на первой странице."
    }
  },
  {
    "title": "Отмена: резерв последнего номера остановки",
    "note": "Сценарий fragment-062; начальное состояние определяется только этим фрагментом и его пояснением. session.start может занять последний обычный номер; резерв отмены остается доступным.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000000fde\" action=\"session.cancel\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\" cmdSeq=\"18446744073709551614\"><session startSeq=\"18446744073709551613\"/></request>",
    "scenarioId": "fragment-062",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "4096",
      "uptimeMs": "50000",
      "preconditions": "START может занять последний обычный номер; резерв отмены остается доступным."
    }
  },
  {
    "title": "Освобождение управления: зарезервированный номер",
    "note": "Сценарий fragment-063; начальное состояние определяется только этим фрагментом и его пояснением. Допустим только после подтвержденного off и сохранения закрытого результата.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000000fdf\" action=\"control.release\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\" cmdSeq=\"18446744073709551615\"/>",
    "scenarioId": "fragment-063",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "4096",
      "uptimeMs": "50000",
      "preconditions": "Допустим только после подтвержденного off и сохранения закрытого результата."
    }
  },
  {
    "title": "Программа: сирена и локальная речь",
    "note": "Сценарий fragment-064; начальное состояние определяется только этим фрагментом и его пояснением. Самостоятельная ветвь: controlEpoch заранее получен с purpose=real. Полный неизменный план принят до воздействия; новые session.start для его этапов не требуются.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000000fe0\" action=\"session.start\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\" cmdSeq=\"10\"><session mode=\"program\" purpose=\"real\" acceptBeforeMs=\"60000\" maxDurationMs=\"120000\" configRevision=\"7\" capabilityRevision=\"4\"><resources><resource id=\"ou1\" bindingGeneration=\"2\"/></resources><program id=\"alarm1\" revision=\"1\"/></session></request>",
    "scenarioId": "fragment-064",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "9",
      "uptimeMs": "50000",
      "preconditions": "Самостоятельная ветвь: controlEpoch заранее получен с purpose=real. Полный неизменный план принят до воздействия; новые START для его этапов не требуются."
    }
  },
  {
    "title": "Паспорт физического исполнения",
    "note": "Сценарий fragment-065; начальное состояние определяется только этим фрагментом и его пояснением. Формат команды профиля 0.20.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000000fe1\" action=\"profiles.get\" bootId=\"00000000000000000000000000000073\"><selection resourceId=\"ou1\"/></request>",
    "scenarioId": "fragment-065",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Формат команды профиля 0.20."
    }
  },
  {
    "title": "Каталог автономных программ",
    "note": "Сценарий fragment-066; начальное состояние определяется только этим фрагментом и его пояснением. Формат команды профиля 0.20.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000000fe2\" action=\"programs.list\" bootId=\"00000000000000000000000000000073\"><selection programId=\"alarm1\"/></request>",
    "scenarioId": "fragment-066",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Формат команды профиля 0.20."
    }
  },
  {
    "title": "Каталог критериев теста",
    "note": "Сценарий fragment-067; начальное состояние определяется только этим фрагментом и его пояснением. Формат команды профиля 0.20.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000000fe3\" action=\"tests.list\" bootId=\"00000000000000000000000000000073\"><selection testId=\"activation1\"/></request>",
    "scenarioId": "fragment-067",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Формат команды профиля 0.20."
    }
  },
  {
    "title": "Речевой поток: подготовка микрофона",
    "note": "Сценарий fragment-068; начальное состояние определяется только этим фрагментом и его пояснением. Самостоятельная речевая ветвь: controlEpoch получен с purpose=real. Формат команды профиля 0.20.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000000fe4\" action=\"audio.prepare\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\" cmdSeq=\"11\"><stream source=\"microphone\" codec=\"PCMA\" packetMs=\"20\" ssrc=\"01234567\" firstSeq=\"0\" firstTimestamp=\"0\"><resources><resource id=\"ou1\" bindingGeneration=\"2\"/></resources><route transport=\"tls\" delivery=\"unicast\" sourceAddress=\"192.0.2.1\" destinationAddress=\"192.0.2.2\" sourcePort=\"5004\" destinationPort=\"5004\" ttl=\"1\"/><buffer initialMs=\"400\" maxMs=\"1000\"/></stream></request>",
    "scenarioId": "fragment-068",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "10",
      "uptimeMs": "50000",
      "preconditions": "Самостоятельная речевая ветвь: controlEpoch получен с purpose=real. Формат команды профиля 0.20."
    }
  },
  {
    "title": "Речевой поток: запуск подготовленного потока",
    "note": "Сценарий fragment-069; начальное состояние определяется только этим фрагментом и его пояснением. Самостоятельная ветвь: controlEpoch заранее получен с purpose=real. Формат команды профиля 0.20.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000000fe5\" action=\"session.start\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\" cmdSeq=\"12\"><session mode=\"stream\" purpose=\"real\" acceptBeforeMs=\"60000\" maxDurationMs=\"60000\" configRevision=\"7\" capabilityRevision=\"4\"><resources><resource id=\"ou1\" bindingGeneration=\"2\"/></resources><stream mediaId=\"00000000000000000000000000000601\"/></session></request>",
    "scenarioId": "fragment-069",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "11",
      "uptimeMs": "50000",
      "preconditions": "Самостоятельная ветвь: controlEpoch заранее получен с purpose=real. Формат команды профиля 0.20."
    }
  },
  {
    "title": "Речевой поток: конец источника",
    "note": "Сценарий fragment-070; начальное состояние определяется только этим фрагментом и его пояснением. Последний из 50 пакетов PCMA имеет END=1 и validSamples=160; sampleCount=8000. Альтернатива после уже отправленного полного пакета без END: отдельный маркер index=50, validSamples=0 и audio.finish lastPacketIndex=50. Квитанция EOF не является подтверждением off.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000000fe6\" action=\"audio.finish\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\" cmdSeq=\"13\"><stream mediaId=\"00000000000000000000000000000601\" lastPacketIndex=\"49\" sampleCount=\"8000\"/></request>",
    "scenarioId": "fragment-070",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "12",
      "uptimeMs": "50000",
      "preconditions": "Последний из 50 пакетов PCMA имеет END=1 и validSamples=160; sampleCount=8000. Альтернатива после уже отправленного полного пакета без END: отдельный маркер index=50, validSamples=0 и audio.finish lastPacketIndex=50. Квитанция EOF не является подтверждением off."
    }
  },
  {
    "title": "Опрос: воспроизводимое создание задания",
    "note": "Сценарий fragment-071; начальное состояние определяется только этим фрагментом и его пояснением. Формат команды профиля 0.20.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000000fe7\" action=\"poll.start\" bootId=\"00000000000000000000000000000073\"><poll clientOperationId=\"00000000000000000000000000000601\" deadlineMs=\"60000\" refresh=\"cache\"><point id=\"ou1.active\"/></poll></request>",
    "scenarioId": "fragment-071",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Формат команды профиля 0.20."
    }
  },
  {
    "title": "Файловый канал: запрос возможностей",
    "note": "Сценарий fragment-072; начальное состояние определяется только этим фрагментом и его пояснением. Пример bulk/1; права, контекст и сроки проверяются по разделу 14.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000001f41\" action=\"transfer.capabilities\"></request>",
    "scenarioId": "fragment-072",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Пример bulk/1; права, контекст и сроки проверяются по разделу 14."
    }
  },
  {
    "title": "Файловый канал: возможности",
    "note": "Сценарий fragment-072; начальное состояние определяется только этим фрагментом и его пояснением. Пример bulk/1; права, контекст и сроки проверяются по разделу 14.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000001f41\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><transfer profile=\"bulk/1\" port=\"10002\" maxBlockBytes=\"4096\" maxWindowBlocks=\"4\" maxInFlightBytes=\"16384\"/></response>",
    "scenarioId": "fragment-072",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Пример bulk/1; права, контекст и сроки проверяются по разделу 14."
    }
  },
  {
    "title": "Размещение записи: начало bulk/1",
    "note": "Сценарий fragment-074; начальное состояние определяется только этим фрагментом и его пояснением. 4096 нулевых байтов и хвост 01 02 03; хеш соответствует этим 4099 байтам PCMA. Пример не воспроизводится до отдельного session.start.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000001f42\" action=\"content.begin\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\" cmdSeq=\"1\"><content id=\"00000000000000000000000000000802\" revision=\"1\" codec=\"PCMA\" bytes=\"4099\" sampleCount=\"4099\" hashAlgorithm=\"streebog256\" hash=\"707422b4e615499d38be2bd279d807d6bebb426e6fdc0c8c1a711bbb34ea25a7\"/><transfer profile=\"bulk/1\" blockBytes=\"4096\" windowBlocks=\"4\" windowRoundTripMaxMs=\"100\"/></request>",
    "scenarioId": "fragment-074",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "maintenance",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "4096 нулевых байтов и хвост 01 02 03; хеш соответствует этим 4099 байтам PCMA. Пример не воспроизводится до отдельного START."
    }
  },
  {
    "title": "Размещение записи: прием создан",
    "note": "Сценарий fragment-074; начальное состояние определяется только этим фрагментом и его пояснением. Пример bulk/1; права, контекст и сроки проверяются по разделу 14.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000001f42\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><upload id=\"00000000000000000000000000000801\" receivedBytes=\"0\" remainingBudgetMs=\"600100\"/></response>",
    "scenarioId": "fragment-074",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "maintenance",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "4096 нулевых байтов и хвост 01 02 03; хеш соответствует этим 4099 байтам PCMA. Пример не воспроизводится до отдельного START."
    }
  },
  {
    "title": "Файловое соединение: привязка",
    "note": "Сценарий fragment-076; начальное состояние определяется только этим фрагментом и его пояснением. Пример bulk/1; права, контекст и сроки проверяются по разделу 14.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000001f43\" action=\"transfer.hello\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\"><transfer id=\"00000000000000000000000000000801\" kind=\"content\"/></request>",
    "scenarioId": "fragment-076",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Пример bulk/1; права, контекст и сроки проверяются по разделу 14."
    }
  },
  {
    "title": "Файловое соединение: готовность",
    "note": "Сценарий fragment-076; начальное состояние определяется только этим фрагментом и его пояснением. Пример bulk/1; права, контекст и сроки проверяются по разделу 14.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000001f43\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><ready id=\"00000000000000000000000000000801\" blockBytes=\"4096\" windowBlocks=\"4\" receivedBytes=\"0\" remainingBudgetMs=\"600100\"/></response>",
    "scenarioId": "fragment-076",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Пример bulk/1; права, контекст и сроки проверяются по разделу 14."
    }
  },
  {
    "title": "Размещение записи: чтение состояния",
    "note": "Сценарий fragment-078; начальное состояние определяется только этим фрагментом и его пояснением. Пример bulk/1; права, контекст и сроки проверяются по разделу 14.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000001f44\" action=\"content.status\"><selection uploadId=\"00000000000000000000000000000801\"/></request>",
    "scenarioId": "fragment-078",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "maintenance",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Пример bulk/1; права, контекст и сроки проверяются по разделу 14."
    }
  },
  {
    "title": "Размещение записи: все байты сохранены",
    "note": "Сценарий fragment-078; начальное состояние определяется только этим фрагментом и его пояснением. Полный ACK подтверждает префикс. Публикация неизменной записи требует content.commit и проверки хеша/формата.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000001f44\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><upload id=\"00000000000000000000000000000801\" state=\"complete\" receivedBytes=\"4099\" totalBytes=\"4099\" remainingBudgetMs=\"600000\"/></response>",
    "scenarioId": "fragment-078",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "maintenance",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Пример bulk/1; права, контекст и сроки проверяются по разделу 14."
    }
  },
  {
    "title": "Конфигурация: создание приема bulk/1",
    "note": "Сценарий fragment-080; начальное состояние определяется только этим фрагментом и его пояснением. Передается канонический JSON-пакет config из conformance-0.20.json. Длина и хеш проверяются по его байтам; пример относится к отдельной транзакции.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000001f45\" action=\"config.stage\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\" cmdSeq=\"1\"><transaction id=\"00000000000000000000000000000803\" baseRevision=\"1\" totalBytes=\"3263\" hashAlgorithm=\"streebog256\" hash=\"3cf889bc83878dbe47ede2042acb3be4a209bd919fc04e9e4a6f6fd93a561b02\"/><transfer profile=\"bulk/1\" blockBytes=\"4096\" windowBlocks=\"4\" windowRoundTripMaxMs=\"100\"/></request>",
    "scenarioId": "fragment-080",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "maintenance",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Передается канонический JSON-пакет config из conformance-0.20.json. Длина и хеш проверяются по его байтам; пример относится к отдельной транзакции."
    }
  },
  {
    "title": "Сирена: запрос подтверждения исполнения",
    "note": "Сценарий fragment-081; начальное состояние определяется только этим фрагментом и его пояснением. Продолжение того же полного снимка.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"0000000000000000000000000000c3a1\" action=\"session.get\" bootId=\"00000000000000000000000000000073\"><selection sessionId=\"00000000000000000000000000000581\" snapshotId=\"00000000000000000000000000000094\" cursor=\"proof\"/></request>",
    "scenarioId": "fragment-081",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Продолжение того же полного снимка."
    }
  },
  {
    "title": "Сирена: подтверждение исполнения и полнота",
    "note": "Сценарий fragment-081; начальное состояние определяется только этим фрагментом и его пояснением. Подтверждение начала хранится отдельно от завершения.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"0000000000000000000000000000c3a1\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><result snapshotId=\"00000000000000000000000000000094\" stateRevision=\"40\" more=\"false\" resourceCount=\"1\" checkCount=\"1\" observationCount=\"0\" mode=\"siren\" evaluatedAtMs=\"72000\" executionCount=\"1\" faultCount=\"0\"><execution resourceId=\"ou1\" status=\"confirmed\" criterionId=\"outputActive\" sourceId=\"ou1\" evidence=\"reportedMode\" observedAtMs=\"50100\"/><completion state=\"complete\"/></result></response>",
    "scenarioId": "fragment-081",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Продолжение того же полного снимка."
    }
  },
  {
    "title": "Тест: запрос подтверждения исполнения",
    "note": "Сценарий fragment-083; начальное состояние определяется только этим фрагментом и его пояснением. Продолжение того же полного снимка.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"0000000000000000000000000000c3a3\" action=\"session.get\" bootId=\"00000000000000000000000000000073\"><selection sessionId=\"000000000000000000000000000016a9\" snapshotId=\"000000000000000000000000000001f4\" cursor=\"proof\"/></request>",
    "scenarioId": "fragment-083",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Продолжение того же полного снимка."
    }
  },
  {
    "title": "Тест: подтверждение исполнения и полнота",
    "note": "Сценарий fragment-083; начальное состояние определяется только этим фрагментом и его пояснением. Подтверждение начала хранится отдельно от завершения.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"0000000000000000000000000000c3a3\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><result snapshotId=\"000000000000000000000000000001f4\" stateRevision=\"50\" mode=\"test\" resourceCount=\"1\" checkCount=\"2\" observationCount=\"3\" more=\"false\" evaluatedAtMs=\"55000\" executionCount=\"1\" faultCount=\"0\"><execution resourceId=\"ou1\" status=\"confirmed\" criterionId=\"outputActive\" sourceId=\"ou1\" evidence=\"reportedMode\" observedAtMs=\"51000\"/><completion state=\"complete\"/></result></response>",
    "scenarioId": "fragment-083",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Продолжение того же полного снимка."
    }
  },
  {
    "title": "Отказ: forbidden/roleDenied",
    "note": "Сценарий fragment-085; начальное состояние определяется только этим фрагментом и его пояснением. Отказ до воздействия. Сведения о другом владельце не передаются.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"0000000000000000000000000000c78d\" bootId=\"00000000000000000000000000000073\" status=\"error\"><error code=\"forbidden\" detail=\"roleDenied\"/></response>",
    "scenarioId": "fragment-085",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Отказ до воздействия. Сведения о другом владельце не передаются."
    }
  },
  {
    "title": "Отказ: forbidden/scopeDenied",
    "note": "Сценарий fragment-086; начальное состояние определяется только этим фрагментом и его пояснением. Отказ до воздействия. Сведения о другом владельце не передаются.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"0000000000000000000000000000c78e\" bootId=\"00000000000000000000000000000073\" status=\"error\"><error code=\"forbidden\" detail=\"scopeDenied\"/></response>",
    "scenarioId": "fragment-086",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Отказ до воздействия. Сведения о другом владельце не передаются."
    }
  },
  {
    "title": "Отказ: forbidden/ownerMismatch",
    "note": "Сценарий fragment-087; начальное состояние определяется только этим фрагментом и его пояснением. Отказ до воздействия. Сведения о другом владельце не передаются.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"0000000000000000000000000000c78f\" bootId=\"00000000000000000000000000000073\" status=\"error\"><error code=\"forbidden\" detail=\"ownerMismatch\"/></response>",
    "scenarioId": "fragment-087",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Отказ до воздействия. Сведения о другом владельце не передаются."
    }
  },
  {
    "title": "Отказ: busy/ownershipHeld",
    "note": "Сценарий fragment-088; начальное состояние определяется только этим фрагментом и его пояснением. Отказ до воздействия. Сведения о другом владельце не передаются.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"0000000000000000000000000000c790\" bootId=\"00000000000000000000000000000073\" status=\"error\"><error code=\"busy\" detail=\"ownershipHeld\"/></response>",
    "scenarioId": "fragment-088",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Отказ до воздействия. Сведения о другом владельце не передаются."
    }
  },
  {
    "title": "Отказ: busy/executionActive",
    "note": "Сценарий fragment-089; начальное состояние определяется только этим фрагментом и его пояснением. Отказ до воздействия. Сведения о другом владельце не передаются.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"0000000000000000000000000000c791\" bootId=\"00000000000000000000000000000073\" status=\"error\"><error code=\"busy\" detail=\"executionActive\"/></response>",
    "scenarioId": "fragment-089",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Отказ до воздействия. Сведения о другом владельце не передаются."
    }
  },
  {
    "title": "Отказ: busy/localControl",
    "note": "Сценарий fragment-090; начальное состояние определяется только этим фрагментом и его пояснением. Отказ до воздействия. Сведения о другом владельце не передаются.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"0000000000000000000000000000c792\" bootId=\"00000000000000000000000000000073\" status=\"error\"><error code=\"busy\" detail=\"localControl\"/></response>",
    "scenarioId": "fragment-090",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Отказ до воздействия. Сведения о другом владельце не передаются."
    }
  },
  {
    "title": "Отказ: busy/serviceActive",
    "note": "Сценарий fragment-091; начальное состояние определяется только этим фрагментом и его пояснением. Отказ до воздействия. Сведения о другом владельце не передаются.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"0000000000000000000000000000c793\" bootId=\"00000000000000000000000000000073\" status=\"error\"><error code=\"busy\" detail=\"serviceActive\"/></response>",
    "scenarioId": "fragment-091",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Отказ до воздействия. Сведения о другом владельце не передаются."
    }
  },
  {
    "title": "Отказ: busy/capacityExhausted",
    "note": "Сценарий fragment-092; начальное состояние определяется только этим фрагментом и его пояснением. Отказ до воздействия. Сведения о другом владельце не передаются.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"0000000000000000000000000000c794\" bootId=\"00000000000000000000000000000073\" status=\"error\"><error code=\"busy\" detail=\"capacityExhausted\"/></response>",
    "scenarioId": "fragment-092",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Отказ до воздействия. Сведения о другом владельце не передаются."
    }
  },
  {
    "title": "Запуск: сирена до команды оператора",
    "note": "Сценарий fragment-093; начальное состояние определяется только этим фрагментом и его пояснением. Длительность не подменяется большим таймером; maxDurationMs остается пределом безопасности.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000002715\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\" cmdSeq=\"1\" action=\"session.start\">\n  <session mode=\"siren\" purpose=\"exercise\" acceptBeforeMs=\"60000\" maxDurationMs=\"30000\" configRevision=\"7\" capabilityRevision=\"4\">\n    <resources><resource id=\"ou1\" bindingGeneration=\"2\"/></resources>\n    <siren pattern=\"continuous\" stopMode=\"command\"/>\n  </session>\n</request>",
    "scenarioId": "fragment-093",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "exercise",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Длительность не подменяется большим таймером; maxDurationMs остается пределом безопасности."
    }
  },
  {
    "title": "Событие: подтверждено начало работы",
    "note": "Сценарий fragment-094; начальное состояние определяется только этим фрагментом и его пояснением. Сеанс еще выполняется. Получение события не закрывает его и не подтверждает выключение.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"0000000000000000000000000000c796\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><events nextSeq=\"41\" oldestSeq=\"1\" more=\"false\" gap=\"false\"><event seq=\"41\" stateRevision=\"41\" type=\"session.execution\" capabilityRevision=\"4\"><execution sessionId=\"00000000000000000000000000000581\" resourceId=\"ou1\" status=\"confirmed\" criterionId=\"outputActive\" sourceId=\"ou1\" evidence=\"reportedMode\" observedAtMs=\"50100\"/></event></events></response>",
    "scenarioId": "fragment-094",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Сеанс еще выполняется. Получение события не закрывает его и не подтверждает выключение."
    }
  },
  {
    "title": "Событие: потеря фазы после начала",
    "note": "Сценарий fragment-095; начальное состояние определяется только этим фрагментом и его пояснением. Альтернативная аварийная ветвь. Ранее полученное confirmed сохраняется; текущий статус аварийный.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"0000000000000000000000000000c797\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><events nextSeq=\"42\" oldestSeq=\"1\" more=\"false\" gap=\"false\"><event seq=\"42\" stateRevision=\"42\" type=\"session.fault\" capabilityRevision=\"4\"><fault sessionId=\"00000000000000000000000000000581\" id=\"00000000000000000000000000000981\" code=\"phaseLost\" resourceId=\"ou1\" effect=\"failed\" severity=\"critical\" occurredAtMs=\"52000\" conditionId=\"phaseA\" alarmId=\"00000000000000000000000000000982\"/></event></events></response>",
    "scenarioId": "fragment-095",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Альтернативная аварийная ветвь. Ранее полученное confirmed сохраняется; текущий статус аварийный."
    }
  },
  {
    "title": "Сирена работала: штатная остановка, страница 1",
    "note": "Сценарий fragment-096; начальное состояние определяется только этим фрагментом и его пояснением. Полный самостоятельный снимок: подтверждение начала, полнота, выключение и неисправность проверяются раздельно. Продолжение читается по snapshotId/cursor предыдущей страницы.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000989680\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><result snapshotId=\"00000000000000000000000000019258\" stateRevision=\"50\" mode=\"siren\" evaluatedAtMs=\"55000\" resourceCount=\"1\" checkCount=\"0\" observationCount=\"0\" executionCount=\"1\" faultCount=\"0\" more=\"true\" cursor=\"p1\"><session id=\"000000000000000000000000000186a0\" startSeq=\"1\" state=\"finished\" onControlLoss=\"stop\" configRevision=\"7\" capabilityRevision=\"4\" acceptedAtMs=\"50000\" maxDurationMs=\"30000\" result=\"succeeded\" reason=\"operatorStop\"/></result></response>",
    "scenarioId": "fragment-096",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Полный самостоятельный снимок: подтверждение начала, полнота, выключение и неисправность проверяются раздельно. Продолжение читается по snapshotId/cursor предыдущей страницы."
    }
  },
  {
    "title": "Сирена работала: штатная остановка, страница 2",
    "note": "Сценарий fragment-097; начальное состояние определяется только этим фрагментом и его пояснением. Полный самостоятельный снимок: подтверждение начала, полнота, выключение и неисправность проверяются раздельно. Продолжение читается по snapshotId/cursor предыдущей страницы.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000989681\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><result snapshotId=\"00000000000000000000000000019258\" stateRevision=\"50\" mode=\"siren\" evaluatedAtMs=\"55000\" resourceCount=\"1\" checkCount=\"0\" observationCount=\"0\" executionCount=\"1\" faultCount=\"0\" more=\"true\" cursor=\"p2\"><timeline sessionId=\"000000000000000000000000000186a0\" prepareDeadlineMs=\"52000\" runningAtMs=\"50100\" runDeadlineMs=\"70100\" stopRequestedAtMs=\"53000\" stoppingAtMs=\"53000\" stopIssuedAtMs=\"53020\" stopBeginDeadlineMs=\"53100\" stopConfirmDeadlineMs=\"56000\" finishedAtMs=\"54000\"/></result></response>",
    "scenarioId": "fragment-097",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Полный самостоятельный снимок: подтверждение начала, полнота, выключение и неисправность проверяются раздельно. Продолжение читается по snapshotId/cursor предыдущей страницы."
    }
  },
  {
    "title": "Сирена работала: штатная остановка, страница 3",
    "note": "Сценарий fragment-098; начальное состояние определяется только этим фрагментом и его пояснением. Полный самостоятельный снимок: подтверждение начала, полнота, выключение и неисправность проверяются раздельно. Продолжение читается по snapshotId/cursor предыдущей страницы.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000989682\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><result snapshotId=\"00000000000000000000000000019258\" stateRevision=\"50\" mode=\"siren\" evaluatedAtMs=\"55000\" resourceCount=\"1\" checkCount=\"0\" observationCount=\"0\" executionCount=\"1\" faultCount=\"0\" more=\"true\" cursor=\"p3\"><resource id=\"ou1\" bindingGeneration=\"2\" output=\"off\" evidence=\"reportedMode\" observedAtMs=\"54000\"/></result></response>",
    "scenarioId": "fragment-098",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Полный самостоятельный снимок: подтверждение начала, полнота, выключение и неисправность проверяются раздельно. Продолжение читается по snapshotId/cursor предыдущей страницы."
    }
  },
  {
    "title": "Сирена работала: штатная остановка, страница 4",
    "note": "Сценарий fragment-099; начальное состояние определяется только этим фрагментом и его пояснением. Полный самостоятельный снимок: подтверждение начала, полнота, выключение и неисправность проверяются раздельно. Продолжение читается по snapshotId/cursor предыдущей страницы.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000989683\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><result snapshotId=\"00000000000000000000000000019258\" stateRevision=\"50\" mode=\"siren\" evaluatedAtMs=\"55000\" resourceCount=\"1\" checkCount=\"0\" observationCount=\"0\" executionCount=\"1\" faultCount=\"0\" more=\"true\" cursor=\"p4\"><execution resourceId=\"ou1\" status=\"confirmed\" criterionId=\"outputActive\" evidence=\"reportedMode\" sourceId=\"ou1\" observedAtMs=\"50100\"/></result></response>",
    "scenarioId": "fragment-099",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Полный самостоятельный снимок: подтверждение начала, полнота, выключение и неисправность проверяются раздельно. Продолжение читается по snapshotId/cursor предыдущей страницы."
    }
  },
  {
    "title": "Сирена работала: штатная остановка, страница 5",
    "note": "Сценарий fragment-100; начальное состояние определяется только этим фрагментом и его пояснением. Полный самостоятельный снимок: подтверждение начала, полнота, выключение и неисправность проверяются раздельно. Продолжение читается по snapshotId/cursor предыдущей страницы.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000989684\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><result snapshotId=\"00000000000000000000000000019258\" stateRevision=\"50\" mode=\"siren\" evaluatedAtMs=\"55000\" resourceCount=\"1\" checkCount=\"0\" observationCount=\"0\" executionCount=\"1\" faultCount=\"0\" more=\"false\"><completion state=\"interrupted\"/></result></response>",
    "scenarioId": "fragment-100",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Полный самостоятельный снимок: подтверждение начала, полнота, выключение и неисправность проверяются раздельно. Продолжение читается по snapshotId/cursor предыдущей страницы."
    }
  },
  {
    "title": "Речь началась: файл прерван оператором, страница 1",
    "note": "Сценарий fragment-101; начальное состояние определяется только этим фрагментом и его пояснением. Полный самостоятельный снимок: подтверждение начала, полнота, выключение и неисправность проверяются раздельно. Продолжение читается по snapshotId/cursor предыдущей страницы.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"000000000000000000000000009897ac\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><result snapshotId=\"0000000000000000000000000001925b\" stateRevision=\"50\" mode=\"recording\" evaluatedAtMs=\"55000\" resourceCount=\"1\" checkCount=\"0\" observationCount=\"0\" executionCount=\"1\" faultCount=\"0\" more=\"true\" cursor=\"p1\"><session id=\"000000000000000000000000000186a3\" startSeq=\"1\" state=\"finished\" onControlLoss=\"stop\" configRevision=\"7\" capabilityRevision=\"4\" acceptedAtMs=\"50000\" maxDurationMs=\"30000\" result=\"succeeded\" reason=\"operatorStop\"/></result></response>",
    "scenarioId": "fragment-101",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Полный самостоятельный снимок: подтверждение начала, полнота, выключение и неисправность проверяются раздельно. Продолжение читается по snapshotId/cursor предыдущей страницы."
    }
  },
  {
    "title": "Речь началась: файл прерван оператором, страница 2",
    "note": "Сценарий fragment-102; начальное состояние определяется только этим фрагментом и его пояснением. Полный самостоятельный снимок: подтверждение начала, полнота, выключение и неисправность проверяются раздельно. Продолжение читается по snapshotId/cursor предыдущей страницы.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"000000000000000000000000009897ad\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><result snapshotId=\"0000000000000000000000000001925b\" stateRevision=\"50\" mode=\"recording\" evaluatedAtMs=\"55000\" resourceCount=\"1\" checkCount=\"0\" observationCount=\"0\" executionCount=\"1\" faultCount=\"0\" more=\"true\" cursor=\"p2\"><timeline sessionId=\"000000000000000000000000000186a3\" prepareDeadlineMs=\"52000\" runningAtMs=\"50100\" runDeadlineMs=\"70100\" stopRequestedAtMs=\"53000\" stoppingAtMs=\"53000\" stopIssuedAtMs=\"53020\" stopBeginDeadlineMs=\"53100\" stopConfirmDeadlineMs=\"56000\" finishedAtMs=\"54000\"/></result></response>",
    "scenarioId": "fragment-102",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Полный самостоятельный снимок: подтверждение начала, полнота, выключение и неисправность проверяются раздельно. Продолжение читается по snapshotId/cursor предыдущей страницы."
    }
  },
  {
    "title": "Речь началась: файл прерван оператором, страница 3",
    "note": "Сценарий fragment-103; начальное состояние определяется только этим фрагментом и его пояснением. Полный самостоятельный снимок: подтверждение начала, полнота, выключение и неисправность проверяются раздельно. Продолжение читается по snapshotId/cursor предыдущей страницы.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"000000000000000000000000009897ae\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><result snapshotId=\"0000000000000000000000000001925b\" stateRevision=\"50\" mode=\"recording\" evaluatedAtMs=\"55000\" resourceCount=\"1\" checkCount=\"0\" observationCount=\"0\" executionCount=\"1\" faultCount=\"0\" more=\"true\" cursor=\"p3\"><resource id=\"ou1\" bindingGeneration=\"2\" output=\"off\" evidence=\"reportedMode\" observedAtMs=\"54000\"/></result></response>",
    "scenarioId": "fragment-103",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Полный самостоятельный снимок: подтверждение начала, полнота, выключение и неисправность проверяются раздельно. Продолжение читается по snapshotId/cursor предыдущей страницы."
    }
  },
  {
    "title": "Речь началась: файл прерван оператором, страница 4",
    "note": "Сценарий fragment-104; начальное состояние определяется только этим фрагментом и его пояснением. Полный самостоятельный снимок: подтверждение начала, полнота, выключение и неисправность проверяются раздельно. Продолжение читается по snapshotId/cursor предыдущей страницы.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"000000000000000000000000009897af\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><result snapshotId=\"0000000000000000000000000001925b\" stateRevision=\"50\" mode=\"recording\" evaluatedAtMs=\"55000\" resourceCount=\"1\" checkCount=\"0\" observationCount=\"0\" executionCount=\"1\" faultCount=\"0\" more=\"true\" cursor=\"p4\"><execution resourceId=\"ou1\" status=\"confirmed\" criterionId=\"outputActive\" evidence=\"reportedMode\" sourceId=\"ou1\" observedAtMs=\"50100\"/></result></response>",
    "scenarioId": "fragment-104",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Полный самостоятельный снимок: подтверждение начала, полнота, выключение и неисправность проверяются раздельно. Продолжение читается по snapshotId/cursor предыдущей страницы."
    }
  },
  {
    "title": "Речь началась: файл прерван оператором, страница 5",
    "note": "Сценарий fragment-105; начальное состояние определяется только этим фрагментом и его пояснением. Полный самостоятельный снимок: подтверждение начала, полнота, выключение и неисправность проверяются раздельно. Продолжение читается по snapshotId/cursor предыдущей страницы.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"000000000000000000000000009897b0\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><result snapshotId=\"0000000000000000000000000001925b\" stateRevision=\"50\" mode=\"recording\" evaluatedAtMs=\"55000\" resourceCount=\"1\" checkCount=\"0\" observationCount=\"0\" executionCount=\"1\" faultCount=\"0\" more=\"false\"><completion state=\"interrupted\"/></result></response>",
    "scenarioId": "fragment-105",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Полный самостоятельный снимок: подтверждение начала, полнота, выключение и неисправность проверяются раздельно. Продолжение читается по snapshotId/cursor предыдущей страницы."
    }
  },
  {
    "title": "Сирена работала: последующий отказ фазы, страница 1",
    "note": "Сценарий fragment-106; начальное состояние определяется только этим фрагментом и его пояснением. Полный самостоятельный снимок: подтверждение начала, полнота, выключение и неисправность проверяются раздельно. Продолжение читается по snapshotId/cursor предыдущей страницы.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000989810\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><result snapshotId=\"0000000000000000000000000001925c\" stateRevision=\"50\" mode=\"siren\" evaluatedAtMs=\"55000\" resourceCount=\"1\" checkCount=\"0\" observationCount=\"0\" executionCount=\"1\" faultCount=\"1\" more=\"true\" cursor=\"p1\"><session id=\"000000000000000000000000000186a4\" startSeq=\"1\" state=\"finished\" onControlLoss=\"stop\" configRevision=\"7\" capabilityRevision=\"4\" acceptedAtMs=\"50000\" maxDurationMs=\"30000\" result=\"failed\" reason=\"equipmentFault\"/></result></response>",
    "scenarioId": "fragment-106",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Полный самостоятельный снимок: подтверждение начала, полнота, выключение и неисправность проверяются раздельно. Продолжение читается по snapshotId/cursor предыдущей страницы."
    }
  },
  {
    "title": "Сирена работала: последующий отказ фазы, страница 2",
    "note": "Сценарий fragment-107; начальное состояние определяется только этим фрагментом и его пояснением. Полный самостоятельный снимок: подтверждение начала, полнота, выключение и неисправность проверяются раздельно. Продолжение читается по snapshotId/cursor предыдущей страницы.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000989811\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><result snapshotId=\"0000000000000000000000000001925c\" stateRevision=\"50\" mode=\"siren\" evaluatedAtMs=\"55000\" resourceCount=\"1\" checkCount=\"0\" observationCount=\"0\" executionCount=\"1\" faultCount=\"1\" more=\"true\" cursor=\"p2\"><timeline sessionId=\"000000000000000000000000000186a4\" prepareDeadlineMs=\"52000\" runningAtMs=\"50100\" runDeadlineMs=\"70100\" stoppingAtMs=\"52000\" stopIssuedAtMs=\"52020\" stopBeginDeadlineMs=\"52100\" stopConfirmDeadlineMs=\"55000\" finishedAtMs=\"54000\"/></result></response>",
    "scenarioId": "fragment-107",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Полный самостоятельный снимок: подтверждение начала, полнота, выключение и неисправность проверяются раздельно. Продолжение читается по snapshotId/cursor предыдущей страницы."
    }
  },
  {
    "title": "Сирена работала: последующий отказ фазы, страница 3",
    "note": "Сценарий fragment-108; начальное состояние определяется только этим фрагментом и его пояснением. Полный самостоятельный снимок: подтверждение начала, полнота, выключение и неисправность проверяются раздельно. Продолжение читается по snapshotId/cursor предыдущей страницы.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000989812\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><result snapshotId=\"0000000000000000000000000001925c\" stateRevision=\"50\" mode=\"siren\" evaluatedAtMs=\"55000\" resourceCount=\"1\" checkCount=\"0\" observationCount=\"0\" executionCount=\"1\" faultCount=\"1\" more=\"true\" cursor=\"p3\"><resource id=\"ou1\" bindingGeneration=\"2\" output=\"off\" evidence=\"reportedMode\" observedAtMs=\"54000\"/></result></response>",
    "scenarioId": "fragment-108",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Полный самостоятельный снимок: подтверждение начала, полнота, выключение и неисправность проверяются раздельно. Продолжение читается по snapshotId/cursor предыдущей страницы."
    }
  },
  {
    "title": "Сирена работала: последующий отказ фазы, страница 4",
    "note": "Сценарий fragment-109; начальное состояние определяется только этим фрагментом и его пояснением. Полный самостоятельный снимок: подтверждение начала, полнота, выключение и неисправность проверяются раздельно. Продолжение читается по snapshotId/cursor предыдущей страницы.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000989813\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><result snapshotId=\"0000000000000000000000000001925c\" stateRevision=\"50\" mode=\"siren\" evaluatedAtMs=\"55000\" resourceCount=\"1\" checkCount=\"0\" observationCount=\"0\" executionCount=\"1\" faultCount=\"1\" more=\"true\" cursor=\"p4\"><execution resourceId=\"ou1\" status=\"confirmed\" criterionId=\"outputActive\" evidence=\"reportedMode\" sourceId=\"ou1\" observedAtMs=\"50100\"/></result></response>",
    "scenarioId": "fragment-109",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Полный самостоятельный снимок: подтверждение начала, полнота, выключение и неисправность проверяются раздельно. Продолжение читается по snapshotId/cursor предыдущей страницы."
    }
  },
  {
    "title": "Сирена работала: последующий отказ фазы, страница 5",
    "note": "Сценарий fragment-110; начальное состояние определяется только этим фрагментом и его пояснением. Полный самостоятельный снимок: подтверждение начала, полнота, выключение и неисправность проверяются раздельно. Продолжение читается по snapshotId/cursor предыдущей страницы.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000989814\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><result snapshotId=\"0000000000000000000000000001925c\" stateRevision=\"50\" mode=\"siren\" evaluatedAtMs=\"55000\" resourceCount=\"1\" checkCount=\"0\" observationCount=\"0\" executionCount=\"1\" faultCount=\"1\" more=\"true\" cursor=\"p5\"><completion state=\"interrupted\"/></result></response>",
    "scenarioId": "fragment-110",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Полный самостоятельный снимок: подтверждение начала, полнота, выключение и неисправность проверяются раздельно. Продолжение читается по snapshotId/cursor предыдущей страницы."
    }
  },
  {
    "title": "Сирена работала: последующий отказ фазы, страница 6",
    "note": "Сценарий fragment-111; начальное состояние определяется только этим фрагментом и его пояснением. Полный самостоятельный снимок: подтверждение начала, полнота, выключение и неисправность проверяются раздельно. Продолжение читается по snapshotId/cursor предыдущей страницы.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000989815\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><result snapshotId=\"0000000000000000000000000001925c\" stateRevision=\"50\" mode=\"siren\" evaluatedAtMs=\"55000\" resourceCount=\"1\" checkCount=\"0\" observationCount=\"0\" executionCount=\"1\" faultCount=\"1\" more=\"false\"><fault id=\"00000000000000000000000000018a8c\" resourceId=\"ou1\" code=\"phaseLost\" effect=\"failed\" severity=\"critical\" occurredAtMs=\"52000\" clearedAtMs=\"53500\" conditionId=\"phaseA\" alarmId=\"00000000000000000000000000000982\"/></result></response>",
    "scenarioId": "fragment-111",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Полный самостоятельный снимок: подтверждение начала, полнота, выключение и неисправность проверяются раздельно. Продолжение читается по snapshotId/cursor предыдущей страницы."
    }
  },
  {
    "title": "media.hello: привязка защищенного потока",
    "note": "Сценарий fragment-112; начальное состояние определяется только этим фрагментом и его пояснением. Отдельное TLS-соединение; отказ не изменяет действующий поток и управляющий lease.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000002711\" action=\"media.hello\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000074\"><stream mediaId=\"00000000000000000000000000000200\"/></request>",
    "scenarioId": "fragment-112",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000074",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Отдельное TLS-соединение; отказ не изменяет действующий поток и управляющий lease."
    }
  },
  {
    "title": "media.hello: разрешена передача RTP",
    "note": "Сценарий fragment-112; начальное состояние определяется только этим фрагментом и его пояснением. Отдельное TLS-соединение; отказ не изменяет действующий поток и управляющий lease.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000002711\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><ready mediaId=\"00000000000000000000000000000200\"/></response>",
    "scenarioId": "fragment-112",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000074",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Отдельное TLS-соединение; отказ не изменяет действующий поток и управляющий lease."
    }
  },
  {
    "title": "media.hello: действующая привязка занята",
    "note": "Сценарий fragment-114; начальное состояние определяется только этим фрагментом и его пояснением. Отдельное TLS-соединение; отказ не изменяет действующий поток и управляющий lease.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000002712\" bootId=\"00000000000000000000000000000073\" status=\"error\"><error code=\"busy\" detail=\"capacityExhausted\"/></response>",
    "scenarioId": "fragment-114",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Отдельное TLS-соединение; отказ не изменяет действующий поток и управляющий lease."
    }
  },
  {
    "title": "media.hello: чужая подготовка",
    "note": "Сценарий fragment-115; начальное состояние определяется только этим фрагментом и его пояснением. Отдельное TLS-соединение; отказ не изменяет действующий поток и управляющий lease.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000002713\" bootId=\"00000000000000000000000000000073\" status=\"error\"><error code=\"forbidden\" detail=\"ownerMismatch\"/></response>",
    "scenarioId": "fragment-115",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Отдельное TLS-соединение; отказ не изменяет действующий поток и управляющий lease."
    }
  },
  {
    "title": "Открытый канал: начальный обмен без ключей",
    "note": "Сценарий fragment-116; начальное состояние определяется только этим фрагментом и его пояснением. Клиент явно выбрал plain; securityPolicy УУ допускает открытый TCP. TLS handshake отсутствует.",
    "xml": "<request v=\"1\" profile=\"bootstrap/1\" id=\"00000000000000000000000000003f00\" action=\"protocol.hello\"><hello clientId=\"00000000000000000000000000003f10\"><profile id=\"open-alert-draft/0.20\"/></hello></request>",
    "scenarioId": "fragment-116",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Клиент явно выбрал plain; securityPolicy УУ допускает открытый TCP. TLS handshake отсутствует."
    }
  },
  {
    "title": "Открытый канал: подтверждение режима",
    "note": "Сценарий fragment-116; начальное состояние определяется только этим фрагментом и его пояснением. Это согласование формата, а не доказательство подлинности устройства.",
    "xml": "<response v=\"1\" profile=\"bootstrap/1\" to=\"00000000000000000000000000003f00\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><hello selectedProfile=\"open-alert-draft/0.20\" deviceId=\"00000000000000000000000000000072\" security=\"plain\"/></response>",
    "scenarioId": "fragment-116",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Клиент явно выбрал plain; securityPolicy УУ допускает открытый TCP. TLS handshake отсутствует."
    }
  },
  {
    "title": "Каталог тестов: совокупность эффектов",
    "note": "Сценарий fragment-118; начальное состояние определяется только этим фрагментом и его пояснением. Все эффекты перечислены в одном отсортированном поле. Критерии и наблюдения следуют на следующих страницах того же снимка.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000003f01\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><tests snapshotId=\"00000000000000000000000000003f02\" capabilityRevision=\"4\" more=\"true\" cursor=\"p2\"><test id=\"soundCheck\" revision=\"1\" resourceId=\"ou1\" kind=\"activationPoll\" maxDurationMs=\"3000\" stopBeginMs=\"100\" stopConfirmMs=\"3000\" effects=\"audible,readBus,switchOutput\"/></tests></response>",
    "scenarioId": "fragment-118",
    "initialState": {
      "kind": "isolatedFragment",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Все эффекты перечислены в одном отсортированном поле. Критерии и наблюдения следуют на следующих страницах того же снимка."
    }
  },
  {
    "title": "Освободить неиспользованную подготовку: запрос",
    "note": "Самостоятельный сценарий. До запроса: подготовка существует, session.start не принят.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000190000\" action=\"audio.discard\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\" cmdSeq=\"1\"><prepared mediaId=\"00000000000000000000000000000900\"/></request>",
    "scenarioId": "command-audio.discard",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "highWater": "0",
      "purpose": "real",
      "preconditions": "подготовка существует, START не принят"
    }
  },
  {
    "title": "Освободить неиспользованную подготовку: ответ",
    "note": "Самостоятельный сценарий. До запроса: подготовка существует, session.start не принят.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000190000\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><discarded mediaId=\"00000000000000000000000000000900\"/></response>",
    "scenarioId": "command-audio.discard",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "highWater": "0",
      "purpose": "real",
      "preconditions": "подготовка существует, START не принят"
    }
  },
  {
    "title": "Подготовить групповую речь: запрос",
    "note": "Самостоятельный сценарий. До запроса: защищенный канал; шаблон speech1/1 установлен; часы имеют погрешность до 500 мс; ключ заведомо тестовый.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000190001\" action=\"audio.group.prepare\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\" cmdSeq=\"1\"><group id=\"speech1\" revision=\"1\" streamId=\"00000000000000000000000000000901\" source=\"microphone\" key=\"0101010101010101010101010101010101010101010101010101010101010101\"/></request>",
    "scenarioId": "command-audio.group.prepare",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "highWater": "0",
      "purpose": "real",
      "preconditions": "защищенный канал; шаблон speech1/1 установлен; часы имеют погрешность до 500 мс; ключ заведомо тестовый"
    }
  },
  {
    "title": "Подготовить групповую речь: ответ",
    "note": "Самостоятельный сценарий. До запроса: защищенный канал; шаблон speech1/1 установлен; часы имеют погрешность до 500 мс; ключ заведомо тестовый.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000190001\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><prepared mediaId=\"00000000000000000000000000000900\" expiresAtMs=\"110000\" configRevision=\"7\" capabilityRevision=\"4\"/></response>",
    "scenarioId": "command-audio.group.prepare",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "highWater": "0",
      "purpose": "real",
      "preconditions": "защищенный канал; шаблон speech1/1 установлен; часы имеют погрешность до 500 мс; ключ заведомо тестовый"
    }
  },
  {
    "title": "Прочитать состояние потока: запрос",
    "note": "Самостоятельный сценарий. До запроса: подготовка действительна; session.start еще не принят.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000190002\" action=\"audio.state\" bootId=\"00000000000000000000000000000073\"><selection mediaId=\"00000000000000000000000000000900\"/></request>",
    "scenarioId": "command-audio.state",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": null,
      "highWater": "0",
      "purpose": "real",
      "preconditions": "подготовка действительна; START еще не принят"
    }
  },
  {
    "title": "Прочитать состояние потока: ответ",
    "note": "Самостоятельный сценарий. До запроса: подготовка действительна; session.start еще не принят.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000190002\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><audio mediaId=\"00000000000000000000000000000900\" state=\"prepared\" receivedPackets=\"0\" lostPackets=\"0\" latePackets=\"0\" duplicatePackets=\"0\" emittedSamples=\"0\" bufferedMs=\"0\" lastPacketAtMs=\"0\"/></response>",
    "scenarioId": "command-audio.state",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": null,
      "highWater": "0",
      "purpose": "real",
      "preconditions": "подготовка действительна; START еще не принят"
    }
  },
  {
    "title": "Уточнить решение по команде: запрос",
    "note": "Самостоятельный сценарий. До запроса: эпоха известна; номер уже использован, подробное решение вытеснено.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000190003\" action=\"command.get\" bootId=\"00000000000000000000000000000073\"><selection controlEpoch=\"00000000000000000000000000000091\" cmdSeq=\"1\"/></request>",
    "scenarioId": "command-command.get",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": null,
      "highWater": "0",
      "purpose": "real",
      "preconditions": "эпоха известна; номер уже использован, подробное решение вытеснено"
    }
  },
  {
    "title": "Уточнить решение по команде: ответ",
    "note": "Самостоятельный сценарий. До запроса: эпоха известна; номер уже использован, подробное решение вытеснено.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000190003\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><command cmdSeq=\"1\" state=\"expired\"/></response>",
    "scenarioId": "command-command.get",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": null,
      "highWater": "0",
      "purpose": "real",
      "preconditions": "эпоха известна; номер уже использован, подробное решение вытеснено"
    }
  },
  {
    "title": "Отбросить подготовленные настройки: запрос",
    "note": "Самостоятельный сценарий. До запроса: незафиксированная транзакция существует; действующая ревизия 7.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000190004\" action=\"config.cancel\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\" cmdSeq=\"1\"><transaction id=\"00000000000000000000000000000803\"/></request>",
    "scenarioId": "command-config.cancel",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "highWater": "0",
      "purpose": "maintenance",
      "preconditions": "незафиксированная транзакция существует; действующая ревизия 7"
    }
  },
  {
    "title": "Отбросить подготовленные настройки: ответ",
    "note": "Самостоятельный сценарий. До запроса: незафиксированная транзакция существует; действующая ревизия 7.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000190004\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><cancelled id=\"00000000000000000000000000000803\"/></response>",
    "scenarioId": "command-config.cancel",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "highWater": "0",
      "purpose": "maintenance",
      "preconditions": "незафиксированная транзакция существует; действующая ревизия 7"
    }
  },
  {
    "title": "Применить подготовленные настройки: запрос",
    "note": "Самостоятельный сценарий. До запроса: полный пакет получен и проверен; baseRevision=7; ресурсы off.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000190005\" action=\"config.commit\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\" cmdSeq=\"1\"><transaction id=\"00000000000000000000000000000803\"/></request>",
    "scenarioId": "command-config.commit",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "highWater": "0",
      "purpose": "maintenance",
      "preconditions": "полный пакет получен и проверен; baseRevision=7; ресурсы off"
    }
  },
  {
    "title": "Применить подготовленные настройки: ответ",
    "note": "Самостоятельный сценарий. До запроса: полный пакет получен и проверен; baseRevision=7; ресурсы off.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000190005\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><committed id=\"00000000000000000000000000000803\" configRevision=\"8\" appliedRevision=\"8\"/></response>",
    "scenarioId": "command-config.commit",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "highWater": "0",
      "purpose": "maintenance",
      "preconditions": "полный пакет получен и проверен; baseRevision=7; ресурсы off"
    }
  },
  {
    "title": "Прочитать действующую конфигурацию: запрос",
    "note": "Самостоятельный сценарий. До запроса: прием пакета создан, данные еще не переданы.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000190006\" action=\"config.get\" bootId=\"00000000000000000000000000000073\"><selection transactionId=\"00000000000000000000000000000803\"/></request>",
    "scenarioId": "command-config.get",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": null,
      "highWater": "0",
      "purpose": "maintenance",
      "preconditions": "прием пакета создан, данные еще не переданы"
    }
  },
  {
    "title": "Прочитать действующую конфигурацию: ответ",
    "note": "Самостоятельный сценарий. До запроса: прием пакета создан, данные еще не переданы.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000190006\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><configuration snapshotId=\"00000000000000000000000000000912\" configRevision=\"7\" appliedRevision=\"7\" more=\"false\"><transaction id=\"00000000000000000000000000000803\" state=\"receiving\" receivedBytes=\"0\" remainingBudgetMs=\"60000\"/></configuration></response>",
    "scenarioId": "command-config.get",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": null,
      "highWater": "0",
      "purpose": "maintenance",
      "preconditions": "прием пакета создан, данные еще не переданы"
    }
  },
  {
    "title": "Отменить размещение записи: запрос",
    "note": "Самостоятельный сценарий. До запроса: прием записи существует, commit не принят.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000190007\" action=\"content.cancel\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\" cmdSeq=\"1\"><upload id=\"00000000000000000000000000000803\"/></request>",
    "scenarioId": "command-content.cancel",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "highWater": "0",
      "purpose": "maintenance",
      "preconditions": "прием записи существует, commit не принят"
    }
  },
  {
    "title": "Отменить размещение записи: ответ",
    "note": "Самостоятельный сценарий. До запроса: прием записи существует, commit не принят.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000190007\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><upload id=\"00000000000000000000000000000803\" state=\"cancelled\"/></response>",
    "scenarioId": "command-content.cancel",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "highWater": "0",
      "purpose": "maintenance",
      "preconditions": "прием записи существует, commit не принят"
    }
  },
  {
    "title": "Проверить и опубликовать запись: запрос",
    "note": "Самостоятельный сценарий. До запроса: байты записи получены, хеш и формат проверены.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000190008\" action=\"content.commit\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\" cmdSeq=\"1\"><upload id=\"00000000000000000000000000000803\"/></request>",
    "scenarioId": "command-content.commit",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "highWater": "0",
      "purpose": "maintenance",
      "preconditions": "байты записи получены, хеш и формат проверены"
    }
  },
  {
    "title": "Проверить и опубликовать запись: ответ",
    "note": "Самостоятельный сценарий. До запроса: байты записи получены, хеш и формат проверены.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000190008\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><content id=\"message1\" revision=\"1\" state=\"committed\"/></response>",
    "scenarioId": "command-content.commit",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "highWater": "0",
      "purpose": "maintenance",
      "preconditions": "байты записи получены, хеш и формат проверены"
    }
  },
  {
    "title": "Прочитать манифест и доказательства проверки записи: запрос",
    "note": "Самостоятельный сценарий. До запроса: такой записи в доступной области нет.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000190009\" action=\"content.describe\" bootId=\"00000000000000000000000000000073\"><selection contentId=\"message1\" revision=\"1\"/></request>",
    "scenarioId": "command-content.describe",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": null,
      "highWater": "0",
      "purpose": "maintenance",
      "preconditions": "такой записи в доступной области нет"
    }
  },
  {
    "title": "Прочитать манифест и доказательства проверки записи: ответ",
    "note": "Самостоятельный сценарий. До запроса: такой записи в доступной области нет.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000190009\" bootId=\"00000000000000000000000000000073\" status=\"error\"><error code=\"notFound\"/></response>",
    "scenarioId": "command-content.describe",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": null,
      "highWater": "0",
      "purpose": "maintenance",
      "preconditions": "такой записи в доступной области нет"
    }
  },
  {
    "title": "Инженерная диагностика: запрос",
    "note": "Самостоятельный сценарий. До запроса: в области controller нет объявленных инженерных метрик.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"0000000000000000000000000019000a\" action=\"diagnostics.read\" bootId=\"00000000000000000000000000000073\"><selection scope=\"controller\"/></request>",
    "scenarioId": "command-diagnostics.read",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": null,
      "highWater": "0",
      "purpose": "real",
      "preconditions": "в области controller нет объявленных инженерных метрик"
    }
  },
  {
    "title": "Инженерная диагностика: ответ",
    "note": "Самостоятельный сценарий. До запроса: в области controller нет объявленных инженерных метрик.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"0000000000000000000000000019000a\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><diagnostics snapshotId=\"00000000000000000000000000000910\" uptimeMs=\"50000\" more=\"false\"/></response>",
    "scenarioId": "command-diagnostics.read",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": null,
      "highWater": "0",
      "purpose": "real",
      "preconditions": "в области controller нет объявленных инженерных метрик"
    }
  },
  {
    "title": "Начать прием образа: запрос",
    "note": "Самостоятельный сценарий. До запроса: местное обслуживание разрешено; test-publisher из векторов подписи доверен; тестовый файл abc.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"0000000000000000000000000019000b\" action=\"firmware.begin\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\" cmdSeq=\"1\"><image id=\"00000000000000000000000000000803\" deviceKind=\"siren\" hardwareRevision=\"test-board\" version=\"1\" bytes=\"3\" hashAlgorithm=\"streebog256\" hash=\"4e2919cf137ed41ec4fb6270c61826cc4fffb660341e0af3688cd0626d23b481\" signature=\"a977258936fa94761fb5262eb718e4ae977f19acff0c7c2271dcfb7d999b420207c7b8cd4ada7f51e1651c8fac5fd99e7a52c5cf77f2b76433d2428de3ff4e09\" keyId=\"test-publisher\"/><transfer profile=\"bulk/1\" blockBytes=\"4096\" windowBlocks=\"4\" windowRoundTripMaxMs=\"5000\"/></request>",
    "scenarioId": "command-firmware.begin",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "highWater": "0",
      "purpose": "maintenance",
      "preconditions": "местное обслуживание разрешено; test-publisher из векторов подписи доверен; тестовый файл abc"
    }
  },
  {
    "title": "Начать прием образа: ответ",
    "note": "Самостоятельный сценарий. До запроса: местное обслуживание разрешено; test-publisher из векторов подписи доверен; тестовый файл abc.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"0000000000000000000000000019000b\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><upload id=\"00000000000000000000000000000803\" state=\"receiving\" receivedBytes=\"0\" remainingBudgetMs=\"60000\"/></response>",
    "scenarioId": "command-firmware.begin",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "highWater": "0",
      "purpose": "maintenance",
      "preconditions": "местное обслуживание разрешено; test-publisher из векторов подписи доверен; тестовый файл abc"
    }
  },
  {
    "title": "Отменить прием или проверку образа: запрос",
    "note": "Самостоятельный сценарий. До запроса: receiving, receivedBytes=0; местное обслуживание разрешено.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"0000000000000000000000000019000c\" action=\"firmware.cancel\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\" cmdSeq=\"1\"><upload id=\"00000000000000000000000000000803\"/></request>",
    "scenarioId": "command-firmware.cancel",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "highWater": "0",
      "purpose": "maintenance",
      "preconditions": "receiving, receivedBytes=0; местное обслуживание разрешено"
    }
  },
  {
    "title": "Отменить прием или проверку образа: ответ",
    "note": "Самостоятельный сценарий. До запроса: receiving, receivedBytes=0; местное обслуживание разрешено.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"0000000000000000000000000019000c\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><upload id=\"00000000000000000000000000000803\" state=\"cancelled\"/></response>",
    "scenarioId": "command-firmware.cancel",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "highWater": "0",
      "purpose": "maintenance",
      "preconditions": "receiving, receivedBytes=0; местное обслуживание разрешено"
    }
  },
  {
    "title": "Активировать проверенный образ: запрос",
    "note": "Самостоятельный сценарий. До запроса: образ verified, off подтвержден, местное разрешение и независимый тракт тревоги проверены.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"0000000000000000000000000019000d\" action=\"firmware.commit\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\" cmdSeq=\"1\"><upload id=\"00000000000000000000000000000803\"/></request>",
    "scenarioId": "command-firmware.commit",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "highWater": "0",
      "purpose": "maintenance",
      "preconditions": "образ verified, off подтвержден, местное разрешение и независимый тракт тревоги проверены"
    }
  },
  {
    "title": "Активировать проверенный образ: ответ",
    "note": "Самостоятельный сценарий. До запроса: образ verified, off подтвержден, местное разрешение и независимый тракт тревоги проверены.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"0000000000000000000000000019000d\" bootId=\"00000000000000000000000000000073\" status=\"accepted\"><operation id=\"00000000000000000000000000000803\"/></response>",
    "scenarioId": "command-firmware.commit",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "highWater": "0",
      "purpose": "maintenance",
      "preconditions": "образ verified, off подтвержден, местное разрешение и независимый тракт тревоги проверены"
    }
  },
  {
    "title": "Уточнить состояние обновления: запрос",
    "note": "Самостоятельный сценарий. До запроса: манифест firmware-manifest из векторов проверен, активация не начата.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"0000000000000000000000000019000e\" action=\"firmware.status\" bootId=\"00000000000000000000000000000073\"><selection operationId=\"00000000000000000000000000000803\"/></request>",
    "scenarioId": "command-firmware.status",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": null,
      "highWater": "0",
      "purpose": "maintenance",
      "preconditions": "манифест firmware-manifest из векторов проверен, активация не начата"
    }
  },
  {
    "title": "Уточнить состояние обновления: ответ",
    "note": "Самостоятельный сценарий. До запроса: манифест firmware-manifest из векторов проверен, активация не начата.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"0000000000000000000000000019000e\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><firmware operationId=\"00000000000000000000000000000803\" state=\"verified\" receivedBytes=\"3\" version=\"1\" remainingBudgetMs=\"50000\"/></response>",
    "scenarioId": "command-firmware.status",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": null,
      "highWater": "0",
      "purpose": "maintenance",
      "preconditions": "манифест firmware-manifest из векторов проверен, активация не начата"
    }
  },
  {
    "title": "Проверить принятый образ: запрос",
    "note": "Самостоятельный сценарий. До запроса: три байта abc получены; манифест совпадает с firmware.begin и вектором подписи.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"0000000000000000000000000019000f\" action=\"firmware.verify\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\" cmdSeq=\"1\"><upload id=\"00000000000000000000000000000803\"/></request>",
    "scenarioId": "command-firmware.verify",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "highWater": "0",
      "purpose": "maintenance",
      "preconditions": "три байта abc получены; манифест совпадает с firmware.begin и вектором подписи"
    }
  },
  {
    "title": "Проверить принятый образ: ответ",
    "note": "Самостоятельный сценарий. До запроса: три байта abc получены; манифест совпадает с firmware.begin и вектором подписи.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"0000000000000000000000000019000f\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><upload id=\"00000000000000000000000000000803\" state=\"verified\"/></response>",
    "scenarioId": "command-firmware.verify",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "highWater": "0",
      "purpose": "maintenance",
      "preconditions": "три байта abc получены; манифест совпадает с firmware.begin и вектором подписи"
    }
  },
  {
    "title": "Журнал устройства: запрос",
    "note": "Самостоятельный сценарий. До запроса: журнал текущей загрузки пуст.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000190010\" action=\"log.read\" bootId=\"00000000000000000000000000000073\"><selection afterSeq=\"0\" limit=\"8\"/></request>",
    "scenarioId": "command-log.read",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": null,
      "highWater": "0",
      "purpose": "real",
      "preconditions": "журнал текущей загрузки пуст"
    }
  },
  {
    "title": "Журнал устройства: ответ",
    "note": "Самостоятельный сценарий. До запроса: журнал текущей загрузки пуст.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000190010\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><log oldestSeq=\"1\" nextSeq=\"1\" gap=\"false\" more=\"false\"/></response>",
    "scenarioId": "command-log.read",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": null,
      "highWater": "0",
      "purpose": "real",
      "preconditions": "журнал текущей загрузки пуст"
    }
  },
  {
    "title": "Отменить сетевой переход: запрос",
    "note": "Самостоятельный сценарий. До запроса: пробное применение существует и еще не подтверждено.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000190011\" action=\"network.cancel\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\" cmdSeq=\"1\"><network id=\"00000000000000000000000000000803\"/></request>",
    "scenarioId": "command-network.cancel",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "highWater": "0",
      "purpose": "maintenance",
      "preconditions": "пробное применение существует и еще не подтверждено"
    }
  },
  {
    "title": "Отменить сетевой переход: ответ",
    "note": "Самостоятельный сценарий. До запроса: пробное применение существует и еще не подтверждено.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000190011\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><network id=\"00000000000000000000000000000803\" state=\"cancelled\"/></response>",
    "scenarioId": "command-network.cancel",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "highWater": "0",
      "purpose": "maintenance",
      "preconditions": "пробное применение существует и еще не подтверждено"
    }
  },
  {
    "title": "Подтвердить новый сетевой путь: запрос",
    "note": "Самостоятельный сценарий. До запроса: пробное применение действует до 80000; этот канал установлен на новом адресе.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000190012\" action=\"network.confirm\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\" cmdSeq=\"1\"><network id=\"00000000000000000000000000000803\"/></request>",
    "scenarioId": "command-network.confirm",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "highWater": "0",
      "purpose": "maintenance",
      "preconditions": "пробное применение действует до 80000; этот канал установлен на новом адресе"
    }
  },
  {
    "title": "Подтвердить новый сетевой путь: ответ",
    "note": "Самостоятельный сценарий. До запроса: пробное применение действует до 80000; этот канал установлен на новом адресе.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000190012\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><network id=\"00000000000000000000000000000803\" state=\"committed\"/></response>",
    "scenarioId": "command-network.confirm",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "highWater": "0",
      "purpose": "maintenance",
      "preconditions": "пробное применение действует до 80000; этот канал установлен на новом адресе"
    }
  },
  {
    "title": "Подготовить смену сети: запрос",
    "note": "Самостоятельный сценарий. До запроса: ресурсы off, местное разрешение обслуживания, текущий адрес 192.0.2.2.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000190013\" action=\"network.stage\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\" cmdSeq=\"1\"><network id=\"00000000000000000000000000000803\" address=\"192.0.2.3\" prefix=\"24\" gateway=\"192.0.2.1\" confirmMs=\"30000\"/></request>",
    "scenarioId": "command-network.stage",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "highWater": "0",
      "purpose": "maintenance",
      "preconditions": "ресурсы off, местное разрешение обслуживания, текущий адрес 192.0.2.2"
    }
  },
  {
    "title": "Подготовить смену сети: ответ",
    "note": "Самостоятельный сценарий. До запроса: ресурсы off, местное разрешение обслуживания, текущий адрес 192.0.2.2.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000190013\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><staged id=\"00000000000000000000000000000803\" expiresAtMs=\"80000\"/></response>",
    "scenarioId": "command-network.stage",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "highWater": "0",
      "purpose": "maintenance",
      "preconditions": "ресурсы off, местное разрешение обслуживания, текущий адрес 192.0.2.2"
    }
  },
  {
    "title": "Отменить свой опрос: запрос",
    "note": "Самостоятельный сценарий. До запроса: задание принадлежит этому участнику и ожидает опроса.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000190014\" action=\"poll.cancel\" bootId=\"00000000000000000000000000000073\"><poll operationId=\"00000000000000000000000000000803\" clientOperationId=\"00000000000000000000000000000812\"/></request>",
    "scenarioId": "command-poll.cancel",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": null,
      "highWater": "0",
      "purpose": "real",
      "preconditions": "задание принадлежит этому участнику и ожидает опроса"
    }
  },
  {
    "title": "Отменить свой опрос: ответ",
    "note": "Самостоятельный сценарий. До запроса: задание принадлежит этому участнику и ожидает опроса.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000190014\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><cancelled operationId=\"00000000000000000000000000000803\"/></response>",
    "scenarioId": "command-poll.cancel",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": null,
      "highWater": "0",
      "purpose": "real",
      "preconditions": "задание принадлежит этому участнику и ожидает опроса"
    }
  },
  {
    "title": "Результаты опроса: запрос",
    "note": "Самостоятельный сценарий. До запроса: задание опроса одной точки принято, наблюдение еще не получено.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000190015\" action=\"poll.get\" bootId=\"00000000000000000000000000000073\"><selection operationId=\"00000000000000000000000000000803\"/></request>",
    "scenarioId": "command-poll.get",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": null,
      "highWater": "0",
      "purpose": "real",
      "preconditions": "задание опроса одной точки принято, наблюдение еще не получено"
    }
  },
  {
    "title": "Результаты опроса: ответ",
    "note": "Самостоятельный сценарий. До запроса: задание опроса одной точки принято, наблюдение еще не получено.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000190015\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><poll snapshotId=\"00000000000000000000000000000911\" operationId=\"00000000000000000000000000000803\" state=\"queued\" expectedCount=\"1\" complete=\"false\" evaluatedAtMs=\"50000\" more=\"false\"/></response>",
    "scenarioId": "command-poll.get",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": null,
      "highWater": "0",
      "purpose": "real",
      "preconditions": "задание опроса одной точки принято, наблюдение еще не получено"
    }
  },
  {
    "title": "Оценить готовность конкретного плана: запрос",
    "note": "Самостоятельный сценарий. До запроса: требуемое свежее наблюдение off временно недоступно; воздействия нет.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000190016\" action=\"readiness.get\" bootId=\"00000000000000000000000000000073\"><plan mode=\"siren\" configRevision=\"7\" capabilityRevision=\"4\" maxDurationMs=\"30000\"><resources><resource id=\"ou1\" bindingGeneration=\"2\"/></resources><siren pattern=\"continuous\" durationMs=\"20000\" stopMode=\"duration\"/></plan></request>",
    "scenarioId": "command-readiness.get",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": null,
      "highWater": "0",
      "purpose": "real",
      "preconditions": "требуемое свежее наблюдение off временно недоступно; воздействия нет"
    }
  },
  {
    "title": "Оценить готовность конкретного плана: ответ",
    "note": "Самостоятельный сценарий. До запроса: требуемое свежее наблюдение off временно недоступно; воздействия нет.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000190016\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><readiness snapshotId=\"00000000000000000000000000001913\" evaluatedAtMs=\"50000\" validUntilMs=\"51000\" stateRevision=\"1\" more=\"false\"><summary state=\"unknown\"/><resource id=\"ou1\" bindingGeneration=\"2\" state=\"unknown\" reason=\"sourceUnavailable\"/><evidence resourceId=\"ou1\" pointId=\"output1\" required=\"true\" observedAtMs=\"0\" validUntilMs=\"0\" validity=\"unavailable\"/></readiness></response>",
    "scenarioId": "command-readiness.get",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": null,
      "highWater": "0",
      "purpose": "real",
      "preconditions": "требуемое свежее наблюдение off временно недоступно; воздействия нет"
    }
  },
  {
    "title": "Установить время: запрос",
    "note": "Самостоятельный сценарий. До запроса: административная установка часов разрешена; uptimeMs не меняется.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000190017\" action=\"time.set\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\" cmdSeq=\"1\"><clock utcMs=\"1791676800000\" errorMs=\"100\"/></request>",
    "scenarioId": "command-time.set",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "highWater": "0",
      "purpose": "maintenance",
      "preconditions": "административная установка часов разрешена; uptimeMs не меняется"
    }
  },
  {
    "title": "Установить время: ответ",
    "note": "Самостоятельный сценарий. До запроса: административная установка часов разрешена; uptimeMs не меняется.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000190017\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><clock utcMs=\"1791676800000\" errorMs=\"100\"/></response>",
    "scenarioId": "command-time.set",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "highWater": "0",
      "purpose": "maintenance",
      "preconditions": "административная установка часов разрешена; uptimeMs не меняется"
    }
  },
  {
    "title": "Подготовить групповую речь по открытому каналу: запрос",
    "note": "Самостоятельный сценарий: optional, явно выбран plain; шаблон speech1/1 имеет security=plain и не содержит ключей. Открытый поток не удостоверяет источник.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000192000\" action=\"audio.group.prepare\" bootId=\"00000000000000000000000000000073\" controlEpoch=\"00000000000000000000000000000091\" cmdSeq=\"1\"><group id=\"speech1\" revision=\"1\" streamId=\"00000000000000000000000000000901\" source=\"microphone\"/></request>",
    "scenarioId": "command-audio.group.prepare-plain",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "highWater": "0",
      "purpose": "real",
      "preconditions": "Самостоятельный сценарий: optional, явно выбран plain; шаблон speech1/1 имеет security=plain и не содержит ключей. Открытый поток не удостоверяет источник.",
      "security": "plain"
    }
  },
  {
    "title": "Подготовить групповую речь по открытому каналу: ответ",
    "note": "Самостоятельный сценарий: optional, явно выбран plain; шаблон speech1/1 имеет security=plain и не содержит ключей. Открытый поток не удостоверяет источник.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000192000\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><prepared mediaId=\"00000000000000000000000000000900\" expiresAtMs=\"110000\" configRevision=\"7\" capabilityRevision=\"4\"/></response>",
    "scenarioId": "command-audio.group.prepare-plain",
    "initialState": {
      "uptimeMs": "50000",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "highWater": "0",
      "purpose": "real",
      "preconditions": "Самостоятельный сценарий: optional, явно выбран plain; шаблон speech1/1 имеет security=plain и не содержит ключей. Открытый поток не удостоверяет источник.",
      "security": "plain"
    }
  },
  {
    "title": "Состояние с владельцем: страница 1, запрос",
    "note": "Сценарий state-held-two-pages. Владение real выдано при uptimeMs=50000, действующего сеанса нет; единственный ресурс off. Снимок фиксируется в этом состоянии и передается двумя страницами.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000200001\" action=\"device.state\" bootId=\"00000000000000000000000000000073\"/>",
    "scenarioId": "state-held-two-pages",
    "initialState": {
      "kind": "isolatedScenario",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Владение real выдано при uptimeMs=50000, действующего сеанса нет; единственный ресурс off. Снимок фиксируется в этом состоянии и передается двумя страницами."
    }
  },
  {
    "title": "Состояние с владельцем: страница 1, ответ",
    "note": "Сценарий state-held-two-pages. Владение real выдано при uptimeMs=50000, действующего сеанса нет; единственный ресурс off. Снимок фиксируется в этом состоянии и передается двумя страницами.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000200001\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><state snapshotId=\"00000000000000000000000000200001\" stateRevision=\"31\" eventSeq=\"207\" capabilityRevision=\"4\" uptimeMs=\"50000\" resourceCount=\"1\" alarmCount=\"0\" sessionCount=\"0\" more=\"true\" cursor=\"resources\"><configuration configRevision=\"7\" appliedRevision=\"7\" onControlLoss=\"finish\"/><ownership state=\"held\" principalId=\"00000000000000000000000000000082\" controlEpoch=\"00000000000000000000000000000091\" purpose=\"real\" idleDeadlineMs=\"60000\"/><recovery state=\"ready\"/></state></response>",
    "scenarioId": "state-held-two-pages",
    "initialState": {
      "kind": "isolatedScenario",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Владение real выдано при uptimeMs=50000, действующего сеанса нет; единственный ресурс off. Снимок фиксируется в этом состоянии и передается двумя страницами."
    }
  },
  {
    "title": "Состояние с владельцем: страница 2, запрос",
    "note": "Сценарий state-held-two-pages. Владение real выдано при uptimeMs=50000, действующего сеанса нет; единственный ресурс off. Снимок фиксируется в этом состоянии и передается двумя страницами.",
    "xml": "<request v=\"1\" profile=\"open-alert-draft/0.20\" id=\"00000000000000000000000000200002\" action=\"device.state\" bootId=\"00000000000000000000000000000073\"><selection snapshotId=\"00000000000000000000000000200001\" cursor=\"resources\"/></request>",
    "scenarioId": "state-held-two-pages",
    "initialState": {
      "kind": "isolatedScenario",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Владение real выдано при uptimeMs=50000, действующего сеанса нет; единственный ресурс off. Снимок фиксируется в этом состоянии и передается двумя страницами."
    }
  },
  {
    "title": "Состояние с владельцем: страница 2, ответ",
    "note": "Сценарий state-held-two-pages. Владение real выдано при uptimeMs=50000, действующего сеанса нет; единственный ресурс off. Снимок фиксируется в этом состоянии и передается двумя страницами.",
    "xml": "<response v=\"1\" profile=\"open-alert-draft/0.20\" to=\"00000000000000000000000000200002\" bootId=\"00000000000000000000000000000073\" status=\"ok\"><state snapshotId=\"00000000000000000000000000200001\" stateRevision=\"31\" eventSeq=\"207\" capabilityRevision=\"4\" uptimeMs=\"50000\" resourceCount=\"1\" alarmCount=\"0\" sessionCount=\"0\" more=\"false\"><resource id=\"ou1\" output=\"off\" evidence=\"reportedMode\" observedAtMs=\"49900\"/></state></response>",
    "scenarioId": "state-held-two-pages",
    "initialState": {
      "kind": "isolatedScenario",
      "bootId": "00000000000000000000000000000073",
      "controlEpoch": "00000000000000000000000000000091",
      "purpose": "real",
      "highWater": "0",
      "uptimeMs": "50000",
      "preconditions": "Владение real выдано при uptimeMs=50000, действующего сеанса нет; единственный ресурс off. Снимок фиксируется в этом состоянии и передается двумя страницами."
    }
  }
]
