Files
le-mystere-professeur-zacus/scenario-ai-coherence/zacus_conversation_bundle_v3/scenario_runtime.json
T

434 lines
10 KiB
JSON

{
"scenario": {
"id": "DEFAULT",
"version": 2,
"initial_step": "STEP_U_SON_PROTO",
"app_bindings": [
"APP_AUDIO",
"APP_SCREEN",
"APP_GATE",
"APP_WIFI",
"APP_ESPNOW",
"APP_SONAR",
"APP_SD",
"APP_CAMERA",
"APP_LED",
"APP_SERIAL",
"APP_TIMER",
"APP_UNLOCK",
"APP_QR",
"APP_INPUT",
"APP_LOG",
"APP_ACTION"
]
},
"boot_policy": {
"startup_mode": "story",
"persist_after_validation": true,
"rollback_command_required": true
},
"qr_rule": {
"enabled": true,
"scene_id": "SCENE_QR_DETECTOR",
"expected_payload": "WIN",
"match_mode": "exact",
"case_insensitive": true,
"success_event": "UNLOCK_QR",
"failure_event": "QR_INVALID",
"timeout_seconds": 30,
"timeout_event": "QR_TIMEOUT"
},
"media_hub": {
"enabled": true,
"hub_scene_id": "SCENE_MEDIA_MANAGER",
"entries": [
"SCENE_PHOTO_MANAGER",
"SCENE_MP3_PLAYER",
"SCENE_READY"
]
},
"led_policy": {
"strict_rgb": true,
"defaults": {
"ws2812": 1,
"led_auto": 1,
"rgb": "18/45/95"
},
"scene_overrides": [
{
"scene_id": "SCENE_LA_DETECTOR",
"rgb": "dynamic_tuner_or_off"
}
]
},
"narrative_meta": {
"prototype": "U-SON",
"act_durations_minutes": {
"act_1": 45,
"act_2": 60
},
"zone4_piano": {
"code_word": "LEFOU",
"letters_random_order": true,
"anchor": "A on LA 440 Hz"
},
"qr_location": "Derriere le portrait (Salle des Archives)"
},
"steps_runtime_order": [
{
"step_id": "STEP_U_SON_PROTO",
"screen_scene_id": "SCENE_U_SON_PROTO",
"audio_pack_id": "PACK_BOOT_RADIO",
"actions": [
"ACTION_TRACE_STEP",
"ACTION_HW_LED_ALERT"
],
"transitions": [
{
"channel": "audio_done",
"event": "loop",
"target": "STEP_U_SON_PROTO"
},
{
"channel": "BTN",
"event": "ANY",
"target": "STEP_LA_DETECTOR"
},
{
"channel": "serial",
"event": "FORCE_ETAPE2",
"target": "STEP_LA_DETECTOR"
}
],
"led_policy": {
"ws2812_1": "on",
"ws2812_2": "on",
"ws2812_3": "on",
"ws2812_4": "on",
"animation": "random_one_blink",
"brightness": "random_bright",
"rgb": "random_color"
}
},
{
"step_id": "STEP_LA_DETECTOR",
"screen_scene_id": "SCENE_LA_DETECTOR",
"audio_pack_id": "",
"actions": [
"ACTION_TRACE_STEP",
"ACTION_QUEUE_SONAR"
],
"transitions": [
{
"channel": "timer",
"event": "ETAPE2_DUE",
"target": "STEP_U_SON_PROTO"
},
{
"channel": "serial",
"event": "BTN_NEXT",
"target": "STEP_RTC_ESP_ETAPE1"
},
{
"channel": "unlock",
"event": "UNLOCK",
"target": "STEP_RTC_ESP_ETAPE1"
},
{
"channel": "action",
"event": "ACTION_FORCE_ETAPE2",
"target": "STEP_RTC_ESP_ETAPE1"
},
{
"channel": "serial",
"event": "FORCE_WIN_ETAPE1",
"target": "STEP_RTC_ESP_ETAPE1"
}
],
"led_policy": {
"ws2812_1": "on",
"ws2812_2": "on",
"ws2812_3": "on",
"ws2812_4": "on",
"animation": "dynamic_tuner",
"brightness": "100%",
"rgb": "random_color"
}
},
{
"step_id": "STEP_RTC_ESP_ETAPE1",
"screen_scene_id": "SCENE_WIN_ETAPE1",
"audio_pack_id": "PACK_CONFIRM_WIN_ETAPE1",
"actions": [
"ACTION_TRACE_STEP",
"ACTION_HW_LED_ALERT",
"ACTION_ESP_NOW_SEND_ETAPE1",
"ACTION_QUEUE_SONAR"
],
"transitions": [
{
"channel": "esp_now",
"event": "ACK_WIN1",
"target": "STEP_WIN_ETAPE1"
},
{
"channel": "serial",
"event": "FORCE_DONE",
"target": "STEP_WIN_ETAPE1"
}
],
"led_policy": {
"ws2812_1": "on",
"ws2812_2": "off",
"ws2812_3": "off",
"ws2812_4": "on",
"animation": "breathing",
"brightness": "random_bright",
"rgb": "random_color"
}
},
{
"step_id": "STEP_WIN_ETAPE1",
"screen_scene_id": "SCENE_WIN_ETAPE1",
"audio_pack_id": "PACK_WIN",
"actions": [
"ACTION_TRACE_STEP",
"ACTION_HW_LED_ALERT"
],
"transitions": [
{
"channel": "serial",
"event": "BTN_NEXT",
"target": "STEP_WARNING"
},
{
"channel": "serial",
"event": "FORCE_DONE",
"target": "STEP_WARNING"
},
{
"channel": "esp_now",
"event": "ACK_WARNING",
"target": "STEP_WARNING"
}
],
"led_policy": {
"ws2812_1": "on",
"ws2812_2": "off",
"ws2812_3": "off",
"ws2812_4": "on",
"animation": "K2000",
"brightness": "K2000",
"rgb": "red"
}
},
{
"step_id": "STEP_WARNING",
"screen_scene_id": "SCENE_WARNING",
"audio_pack_id": "PACK_BOOT_RADIO",
"actions": [
"ACTION_TRACE_STEP",
"ACTION_HW_LED_ALERT"
],
"transitions": [
{
"channel": "audio_done",
"event": "loop",
"target": "STEP_WARNING"
},
{
"channel": "BTN",
"event": "ANY",
"target": "STEP_LEFOU_DETECTOR"
},
{
"channel": "serial",
"event": "FORCE_ETAPE2",
"target": "STEP_LEFOU_DETECTOR"
}
],
"led_policy": {
"ws2812_1": "on",
"ws2812_2": "on",
"ws2812_3": "on",
"ws2812_4": "on",
"animation": "blink_all",
"brightness": "100%",
"rgb": "red"
}
},
{
"step_id": "STEP_LEFOU_DETECTOR",
"screen_scene_id": "SCENE_LEFOU_DETECTOR",
"audio_pack_id": "",
"actions": [
"ACTION_TRACE_STEP",
"ACTION_QUEUE_SONAR"
],
"transitions": [
{
"channel": "timer",
"event": "ETAPE2_DUE",
"target": "STEP_WARNING"
},
{
"channel": "serial",
"event": "BTN_NEXT",
"target": "STEP_RTC_ESP_ETAPE2"
},
{
"channel": "unlock",
"event": "UNLOCK",
"target": "STEP_RTC_ESP_ETAPE2"
},
{
"channel": "action",
"event": "ACTION_FORCE_ETAPE2",
"target": "STEP_RTC_ESP_ETAPE2"
},
{
"channel": "serial",
"event": "FORCE_WIN_ETAPE2",
"target": "STEP_RTC_ESP_ETAPE2"
}
],
"led_policy": {
"ws2812_1": "on",
"ws2812_2": "on",
"ws2812_3": "on",
"ws2812_4": "on",
"animation": "dynamic_tuner",
"brightness": "100%",
"rgb": "random_color"
}
},
{
"step_id": "STEP_RTC_ESP_ETAPE2",
"screen_scene_id": "SCENE_WIN_ETAPE2",
"audio_pack_id": "PACK_CONFIRM_WIN_ETAPE2",
"actions": [
"ACTION_TRACE_STEP",
"ACTION_HW_LED_ALERT",
"ACTION_ESP_NOW_SEND_ETAPE2",
"ACTION_QUEUE_SONAR"
],
"transitions": [
{
"channel": "esp_now",
"event": "ACK_WIN2",
"target": "STEP_QR_DETECTOR"
},
{
"channel": "serial",
"event": "FORCE_DONE",
"target": "STEP_QR_DETECTOR"
}
],
"led_policy": {
"ws2812_1": "on",
"ws2812_2": "off",
"ws2812_3": "off",
"ws2812_4": "on",
"animation": "breathing",
"brightness": "random_bright",
"rgb": "random_color"
}
},
{
"step_id": "STEP_QR_DETECTOR",
"screen_scene_id": "SCENE_QR_DETECTOR",
"audio_pack_id": "",
"actions": [
"ACTION_TRACE_STEP",
"ACTION_QR_CODE_SCANNER_START",
"ACTION_QR_TIMEOUT_30S"
],
"transitions": [
{
"channel": "timer",
"event": "ETAPE2_DUE",
"target": "STEP_RTC_ESP_ETAPE2"
},
{
"channel": "event",
"event": "QR_TIMEOUT",
"target": "STEP_RTC_ESP_ETAPE2"
},
{
"channel": "serial",
"event": "BTN_NEXT",
"target": "STEP_FINAL_WIN"
},
{
"channel": "unlock",
"event": "UNLOCK_QR",
"target": "STEP_FINAL_WIN"
},
{
"channel": "action",
"event": "ACTION_FORCE_ETAPE2",
"target": "STEP_FINAL_WIN"
},
{
"channel": "serial",
"event": "FORCE_WIN_ETAPE2",
"target": "STEP_FINAL_WIN"
}
],
"led_policy": {
"ws2812_1": "on",
"ws2812_2": "on",
"ws2812_3": "on",
"ws2812_4": "on",
"animation": "bargraph_qr_trigger",
"brightness": "bargraph",
"rgb": "bargraph_red_to_green"
}
},
{
"step_id": "STEP_FINAL_WIN",
"screen_scene_id": "SCENE_FINAL_WIN",
"audio_pack_id": "",
"actions": [
"ACTION_TRACE_STEP",
"ACTION_WINNER"
],
"transitions": [
{
"channel": "timer",
"event": "WIN_DUE",
"target": "SCENE_MEDIA_MANAGER"
},
{
"channel": "serial",
"event": "BTN_NEXT",
"target": "SCENE_MEDIA_MANAGER"
},
{
"channel": "unlock",
"event": "UNLOCK",
"target": "SCENE_MEDIA_MANAGER"
},
{
"channel": "action",
"event": "FORCE_WIN_ETAPE2",
"target": "SCENE_MEDIA_MANAGER"
},
{
"channel": "serial",
"event": "FORCE_WIN_ETAPE2",
"target": "SCENE_MEDIA_MANAGER"
}
],
"led_policy": {
"ws2812_1": "on",
"ws2812_2": "on",
"ws2812_3": "on",
"ws2812_4": "on",
"animation": "blink_all_random",
"brightness": "100%",
"rgb": "random_color"
}
}
]
}