Gemini conversational image generation, global cache, and speculative turns are live.
This report was generated from production API calls after the final deploy. It verifies raw Gemini runtime generation, full-state cache hits with configured reveal pacing, speculative background branch jobs, and rendered scene images/text.
Runtime
GENERATION_MODE=gemini IMAGE_GENERATION_PROVIDER=gemini GEMINI_NARRATOR_MODEL=gemini-flash-lite-latest GEMINI_IMAGE_MODEL=gemini-3.1-flash-image-preview STORY_REVEAL_PACE_SECONDS=3 IMAGE_HISTORY_MAX_FRAMES=14 SPECULATIVE_GENERATION_ENABLED=true
Verification
go test ./...passedmake lint/go vet ./...passedflutter analyzepassedflutter testpassed- Latest commit
3830251pushed toorigin/mainand deployed to Hetzner.
What changed
- API/worker runtime now uses Gemini for narrator, translation, and image generation.
- Prodia runtime path was removed; OpenRouter is no longer configured by API/worker runtime.
- Image prompts are narrator-authored human messages in an image chat with prior image references.
- Global narrator/image cache now covers every state, with configurable reveal pacing.
- Two-choice speculative branch jobs are queued after each ready scene image.
Production Playthrough
mordor-ring-shadow
3.617s
3.641s
0.484s
0.515s

790291 bytes
Turn 1: The Ash-Choked Pass
Black ash falls like snow, coating the jagged rocks of the Cirith Ungol pass. You crouch behind a shattered pillar, your breath hitching in the thin, sulfurous air. Below, the red eye of a watchtower sweeps the path. A narrow, crumbling goat track leads upward, while a dark, mossy crevice offers hidden passage.
Choices
- Climb the exposed goat track
climb_goat_track - Squeeze into the mossy crevice
enter_crevice
Selected: Climb the exposed goat track

745878 bytes
Turn 2: The Exposed Ascent
You scramble up the goat track, boots slipping on loose shale. The red light from the tower sweeps over you, forcing you to flatten against the cliff face. A patrol of orcs marches on the path below, their iron boots clanking against the stone. You are dangerously visible here.
Choices
- Slip the Ring onto your finger
use_ring_to_hide - Wait for the patrol to pass
wait_for_pass
Generation Jobs
8 jobs were recorded for this run. 4 were speculative branch jobs. 2 image jobs were recorded. The 3.6s production latencies demonstrate the configured cache pacing while image polling returned immediately once cached assets were attached to the scenes.
| Role | Modality | Status | Speculative | Provider | Model alias | Attempts | Latency |
|---|---|---|---|---|---|---|---|
| NARRATOR | TEXT | SUCCEEDED | False | generation | narrator.default | 1 | 3.012 |
| IMAGE_ARTIST | IMAGE | SUCCEEDED | False | generation | artist.default | 1 | 0.006 |
| NARRATOR | TEXT | SUCCEEDED | True | generation | narrator.default | 1 | 0.019 |
| NARRATOR | TEXT | SUCCEEDED | True | generation | narrator.default | 1 | 0.008 |
| NARRATOR | TEXT | SUCCEEDED | False | generation | narrator.default | 1 | 3.008 |
| IMAGE_ARTIST | IMAGE | SUCCEEDED | False | generation | artist.default | 1 | 0.006 |
| NARRATOR | TEXT | SUCCEEDED | True | generation | narrator.default | 1 | 0.009 |
| NARRATOR | TEXT | SUCCEEDED | True | generation | narrator.default | 1 | 0.008 |
Model IO Proof
Opening narrator cache request/result job 77288246-cf05-4b92-938f-480b86aea9d1
Stored request
{
"hero": null,
"modelID": "gemini-flash-lite-latest",
"maxTurns": 10,
"universe": {
"slug": "mordor-ring-shadow",
"cover": {
"loop": true,
"muted": true,
"assetPath": "cover/cover.jpg",
"mediaType": "IMAGE",
"thumbnailPath": ""
},
"title": "The Ring at the Black Gate",
"status": "PUBLISHED",
"maxTurns": 10,
"subtitle": "Cross Mordor before the Eye finds you.",
"universe": {
"tone": "mythic, grave, intimate, perilous, beautiful under dread",
"rules": [
"The Ring offers power at the exact moment using it would betray the hero.",
"Open roads are watched by orcs, spies, and things that fear daylight less than they used to.",
"Hope matters, but hunger, thirst, smoke, and despair are immediate survival clocks.",
"Ancient places remember older wars and may shelter or trap the unwary."
],
"summary": "A late Third Age journey in Middle-earth near Mordor, where a small bearer carries a cursed ring through ash, fear, and enemy-held roads while the Dark Lord's attention searches for weakness."
},
"maxChoices": 3,
"minChoices": 2,
"visibility": "PUBLIC",
"description": "A desperate Lord of the Rings survival story through ash plains, orc patrols, dead roads, and the last pull of the Ring.",
"translations": {
"de": {
"title": "Der Ring am Schwarzen Tor",
"subtitle": "Durchquere Mordor, bevor das Auge dich findet.",
"description": "Eine verzweifelte Herr-der-Ringe-Überlebensgeschichte durch Ascheebenen, Orkpatrouillen, tote Straßen und den letzten Zug des Rings.",
"universeName": "Mittelerde"
},
"it": {
"title": "L'Anello al Cancello Nero",
"subtitle": "Attraversa Mordor prima che l'Occhio ti trovi.",
"description": "Una disperata storia survival del Signore degli Anelli tra pianure di cenere, pattuglie orchesche, strade morte e l'ultimo richiamo dell'Anello.",
"universeName": "Terra di Mezzo"
},
"ka": {
"title": "ბეჭედი შავ კარიბჭესთან",
"subtitle": "გაიარე მორდორი, სანამ თვალი გიპოვის.",
"description": "Lord of the Rings-ის სასოწარკვეთილი გადარჩენის ისტორია ფერფლის ველებზე, ორკების პატრულებს შორის, მკვდარ გზებზე და ბეჭდის უკანასკნელ მიზიდულობაში.",
"universeName": "შუახმელეთი"
}
},
"universeName": "Middle-earth",
"videoProfile": {
"enabled": false,
"strategy": "TEXT_TO_VIDEO",
"aspectRatio": "9:16",
"defaultDurationSeconds": 6
},
"voiceProfile": {
"pace": "slow",
"emotion": "restrained dread",
"enabled": false,
"voiceStyle": "low, solemn, intimate narrator voice"
},
"visualProfile": {
"loraRefs": [],
"aspectRatio": "9:16",
"providerParams": {},
"baseStylePrompt": "Cinematic dark storybook illustration, textured brushwork, volcanic ash, moonlit ruin, red fire on black stone, high-fantasy survival atmosphere, portrait mobile 9:16 framing, wide-angle mild fisheye perspective.",
"referenceAssets": [],
"consistencyStrategy": "PROMPT_ONLY",
"negativeStylePrompt": "No text, no watermark, no UI elements, no actor likenesses, no exact film stills, no tight headshots, no cropped faces, no letterbox bars.",
"visualContinuityRules": [
"Maintain a small cloaked ring-bearer silhouette across scenes.",
"Keep the world vast and oppressive inside the vertical phone frame.",
"Use wide-angle or mild fisheye compositions rather than tight face crops.",
"Show visible routes, objects, or threats that choices can refer to.",
"Avoid actor likenesses, film stills, official logos, readable text, or exact costume copies."
]
},
"defaultPlayMode": "SINGLE_HERO",
"narratorProfile": {
"style": "tense, compact, sensory, adult high-fantasy survival",
"choiceStyle": "short, tactical, costly, grounded in visible objects or paths",
"sceneLength": "2-5 short paragraphs",
"terminalOutcomeTypes": [
"DEATH",
"CORRUPTION",
"CAPTURE",
"ESCAPE_WITH_COST",
"VICTORY_WITH_SCAR"
]
}
},
"bundleSlug": "mordor-ring-shadow",
"maxChoices": 2,
"minChoices": 2,
"modelAlias": "narrator.default",
"currentTurn": 1,
"chatMessages": [
{
"Role": "user",
"Content": "Start this interactive survival story.\n\nStory: The Ring at the Black Gate\nUniverse: Middle-earth\n\nWrite for mobile play: clear, concrete, direct, and easy for an average adult to follow.\nUse danger and sensory detail, but avoid dense literary phrasing. Prefer physical facts over abstract metaphor.\nPremise: A late Third Age journey in Middle-earth near Mordor, where a small bearer carries a cursed ring through ash, fear, and enemy-held roads while the Dark Lord's attention searches for weakness.\nTone: mythic, grave, intimate, perilous, beautiful under dread\n\nWorld rules:\n- The Ring offers power at the exact moment using it would betray the hero.\n- Open roads are watched by orcs, spies, and things that fear daylight less than they used to.\n- Hope matters, but hunger, thirst, smoke, and despair are immediate survival clocks.\n- Ancient places remember older wars and may shelter or trap the unwary.\n\nNarration style: tense, compact, sensory, adult high-fantasy survival\nChoice style: short, tactical, costly, grounded in visible objects or paths\nPossible endings: DEATH, CORRUPTION, CAPTURE, ESCAPE_WITH_COST, VICTORY_WITH_SCAR\n\nVisual bible for imagePrompt: Cinematic dark storybook illustration, textured brushwork, volcanic ash, moonlit ruin, red fire on black stone, high-fantasy survival atmosphere, portrait mobile 9:16 framing, wide-angle mild fisheye perspective.\nVisual continuity rules:\n- Maintain a small cloaked ring-bearer silhouette across scenes.\n- Keep the world vast and oppressive inside the vertical phone frame.\n- Use wide-angle or mild fisheye compositions rather than tight face crops.\n- Show visible routes, objects, or threats that choices can refer to.\n- Avoid actor likenesses, film stills, official logos, readable text, or exact costume copies.\n\nThis is turn 1 of 10.\nReturn the opening scene as JSON only, with 2 to 2 choices.\nEvery choice must be grounded in an object, route, resource, threat, shelter, tool, or action affordance explicitly present in the scene text.\nSet statePatch.location, statePatch.heroPosition, and statePatch.visibleAffordances so later turns can preserve physical continuity."
}
],
"systemPrompt": "You are the narrator for an interactive survival story.\n\nWrite tense, high-stakes scenes where the player is trying to survive as long as possible.\nThe story is adult in tone, but the prose must be clear, concrete, and easy to follow on a phone.\nDo not soften the danger, but avoid ornate literary density.\n\nReturn JSON only. Do not use markdown. Do not add
... truncated ...Stored response
{
"mood": "Oppressive and suffocating",
"choices": [
{
"id": "climb_goat_track",
"tone": "Risky",
"label": "Climb the exposed goat track",
"hiddenRisk": "HIGH"
},
{
"id": "enter_crevice",
"tone": "Cautious",
"label": "Squeeze into the mossy crevice",
"hiddenRisk": "MEDIUM"
}
],
"sceneText": "Black ash falls like snow, coating the jagged rocks of the Cirith Ungol pass. You crouch behind a shattered pillar, your breath hitching in the thin, sulfurous air. Below, the red eye of a watchtower sweeps the path. A narrow, crumbling goat track leads upward, while a dark, mossy crevice offers hidden passage.",
"isTerminal": false,
"sceneTitle": "The Ash-Choked Pass",
"statePatch": {
"location": "Cirith Ungol pass",
"heroPosition": "Behind a shattered pillar",
"heroCondition": "Exhausted but alert",
"factsToRemember": [
"The Ring is a heavy burden",
"The watchtower is active"
],
"inventoryChanges": [],
"visualContinuity": [
"small cloaked figure",
"ash-covered rocks",
"red watchtower"
],
"worldStateChanges": [],
"visibleAffordances": [
"shattered pillar",
"goat track",
"mossy crevice",
"watchtower"
]
},
"dangerLevel": 3,
"imagePrompt": "A cinematic dark storybook illustration, 9:16 portrait. A small, cloaked figure in tattered grey robes crouches behind a shattered, ancient stone pillar on a steep, ash-covered mountain pass. In the distance, a faint, menacing red light glows from a jagged watchtower. The atmosphere is thick with falling grey ash and suffocating smoke. Wide-angle perspective, textured brushwork, high-fantasy survival tone.",
"turnSummary": "You are hiding near the Black Gate, choosing between an exposed path or a dark crevice.",
"terminalOutcome": null,
"survivalPressure": "MEDIUM",
"illustrationBrief": {
"action": "Crouching behind a broken stone pillar",
"lighting": "Dim, sickly moonlight filtered through thick volcanic smoke",
"cameraMode": "",
"composition": "Vertical 9:16, wide-angle, low-angle shot looking up the mountain",
"environment": "Jagged, ash-covered mountain pass with a distant, glowing red watchtower",
"mainSubject": "A small, hooded figure in travel-worn grey rags",
"importantVisualContinuity": [
"Small hooded figure",
"Ash-covered terrain",
"Red watchtower in distance"
]
}
}Opening image cache request/result job d49daa00-33f3-4b4c-a174-cdec38772db1
Stored request
{
"prompt": "A cinematic dark storybook illustration, 9:16 portrait. A small, cloaked figure in tattered grey robes crouches behind a shattered, ancient stone pillar on a steep, ash-covered mountain pass. In the distance, a faint, menacing red light glows from a jagged watchtower. The atmosphere is thick with falling grey ash and suffocating smoke. Wide-angle perspective, textured brushwork, high-fantasy survival tone.",
"modelID": "gemini-3.1-flash-image-preview",
"imageSize": "1K",
"modelAlias": "artist.default",
"sceneTitle": "The Ash-Choked Pass",
"turnNumber": 1,
"aspectRatio": "9:16",
"historyKeys": [],
"chatMessages": [
{
"Role": "system",
"Text": "You are generating frames for one continuous illustrated story.\nTreat each user message as the next shot in the same movie, comic, or game sequence.\nKeep the same character design, wardrobe, objects, architecture, palette, lighting language, and illustration style unless the story explicitly changes them.\nUse prior images only as continuity references for the world and characters.\nCreate portrait 9:16 mobile images with important action readable in the vertical frame.\nDo not add text, UI, logos, captions, borders, or watermark.\n\nVisual bible: Cinematic dark storybook illustration, textured brushwork, volcanic ash, moonlit ruin, red fire on black stone, high-fantasy survival atmosphere, portrait mobile 9:16 framing, wide-angle mild fisheye perspective.\nContinuity rules:\n- Maintain a small cloaked ring-bearer silhouette across scenes.\n- Keep the world vast and oppressive inside the vertical phone frame.\n- Use wide-angle or mild fisheye compositions rather than tight face crops.\n- Show visible routes, objects, or threats that choices can refer to.\n- Avoid actor likenesses, film stills, official logos, readable text, or exact costume copies.\nAvoid: No text, no watermark, no UI elements, no actor likenesses, no exact film stills, no tight headshots, no cropped faces, no letterbox bars.",
"ImageURLs": null
},
{
"Role": "user",
"Text": "A cinematic dark storybook illustration, 9:16 portrait. A small, cloaked figure in tattered grey robes crouches behind a shattered, ancient stone pillar on a steep, ash-covered mountain pass. In the distance, a faint, menacing red light glows from a jagged watchtower. The atmosphere is thick with falling grey ash and suffocating smoke. Wide-angle perspective, textured brushwork, high-fantasy survival tone.",
"ImageURLs": null
}
]
}Stored response
{
"ok": true,
"metadata": {
"model": "gemini-3.1-flash-image-preview",
"source": "artist",
"provider": "gemini",
"imageSize": "1K",
"aspectRatio": "9:16",
"usageMetadata": {
"serviceTier": "standard",
"totalTokenCount": 1816,
"promptTokenCount": 374,
"promptTokensDetails": [
{
"modality": "TEXT",
"tokenCount": 374
}
],
"candidatesTokenCount": 1442,
"candidatesTokensDetails": [
{
"modality": "IMAGE",
"tokenCount": 1120
}
]
}
},
"mimeType": "image/jpeg",
"byteCount": 790291,
"providerURL": ""
}Database Proof
generation_jobs
id role modality status speculative scene_id created_at 77288246-cf05-4b92-938f-480b86aea9d1 NARRATOR TEXT SUCCEEDED false 30e66cc9-893d-4d54-bb3e-13c6f2dc0051 2026-05-15 13:56:16.960352+00 d49daa00-33f3-4b4c-a174-cdec38772db1 IMAGE_ARTIST IMAGE SUCCEEDED false 30e66cc9-893d-4d54-bb3e-13c6f2dc0051 2026-05-15 13:56:19.984454+00 9df8f3bd-b519-4cdd-8976-a482164942cf NARRATOR TEXT SUCCEEDED true 30e66cc9-893d-4d54-bb3e-13c6f2dc0051 2026-05-15 13:56:20.000628+00 527e2aaa-1aa7-4707-8a04-6470191f78c8 NARRATOR TEXT SUCCEEDED true 30e66cc9-893d-4d54-bb3e-13c6f2dc0051 2026-05-15 13:56:20.001865+00 e2301c1b-364d-4b49-943c-c2debca7f9e5 NARRATOR TEXT SUCCEEDED false 095725ff-9d72-4f36-986b-5d03755efac7 2026-05-15 13:56:32.981861+00 07680ee8-1580-4e61-8fdc-d66ac4593561 IMAGE_ARTIST IMAGE SUCCEEDED false 095725ff-9d72-4f36-986b-5d03755efac7 2026-05-15 13:56:35.996293+00 a5c93ce5-06cb-4233-a8ff-6b6ff25a95c1 NARRATOR TEXT SUCCEEDED true 095725ff-9d72-4f36-986b-5d03755efac7 2026-05-15 13:56:36.009619+00 cf5e624c-3046-4fa7-bc2f-471ee670decd NARRATOR TEXT SUCCEEDED true 095725ff-9d72-4f36-986b-5d03755efac7 2026-05-15 13:56:36.010529+00 (8 rows)
generation_attempts
generation_job_id role modality status provider_alias model_id coalesce coalesce coalesce coalesce coalesce coalesce created_at (0 rows)
recent generation_cache rows
role modality provider_alias model_alias left ?column? created_at IMAGE_ARTIST IMAGE gemini artist.default image:state:v1:gemini-3.1-flash-image-preview:98da58854d39de30ebaa91c8 t 2026-05-15 13:49:44.975349+00 NARRATOR TEXT gemini narrator.default narrator:state:v1:gemini-flash-lite-latest:4673748dffc1efd4c390d79b5b1 f 2026-05-15 13:49:12.965062+00 IMAGE_ARTIST IMAGE gemini artist.default image:state:v1:gemini-3.1-flash-image-preview:99ecb9837c690f2e75c6c14b t 2026-05-15 13:49:10.361784+00 NARRATOR TEXT gemini narrator.default narrator:state:v1:gemini-flash-lite-latest:1080ad6d5e625a848481e5f0518 f 2026-05-15 13:48:47.683966+00 IMAGE_ARTIST IMAGE gemini artist.default image:state:v1:gemini-3.1-flash-image-preview:79f5e583ab3f262dd62736c1 t 2026-05-15 13:48:45.090055+00 NARRATOR TEXT gemini narrator.default narrator:state:v1:gemini-flash-lite-latest:d60a02a523c4bbb6a607a391815 f 2026-05-15 13:48:25.849675+00 IMAGE_ARTIST IMAGE gemini artist.default image:state:v1:gemini-3.1-flash-image-preview:b464e512ca2be83911cbc123 t 2026-05-15 13:48:23.302501+00 NARRATOR TEXT gemini narrator.default narrator:state:v1:gemini-flash-lite-latest:015ab1135600b03818981241b23 f 2026-05-15 13:48:03.6868+00 IMAGE_ARTIST IMAGE gemini artist.default image:state:v1:gemini-3.1-flash-image-preview:8109ebdaa5578d3d42034c8c t 2026-05-15 13:47:59.022275+00 NARRATOR TEXT gemini narrator.default narrator:state:v1:gemini-flash-lite-latest:3b61bbe82a69e2becac74d3afe7 f 2026-05-15 13:47:46.818393+00 IMAGE_ARTIST IMAGE gemini artist.default image:state:v1:gemini-3.1-flash-image-preview:ec8c808e166b83739fb599a7 t 2026-05-15 13:39:36.94129+00 NARRATOR TEXT gemini narrator.default narrator:state:v1:gemini-flash-lite-latest:a5dfaed777f6bd1ff87d8b741e0 f 2026-05-15 13:39:15.425359+00 IMAGE_ARTIST IMAGE gemini artist.default image:state:v1:gemini-3.1-flash-image-preview:18bf98d5b9dec998c40f70f8 t 2026-05-15 13:39:12.541428+00 NARRATOR TEXT gemini narrator.default narrator:state:v1:gemini-flash-lite-latest:e270ec5d30629edba1346d61131 f 2026-05-15 13:38:37.021726+00 IMAGE_ARTIST IMAGE gemini artist.default image:state:v1:gemini-3.1-flash-image-preview:c2aee9d36cd98fcc90f12ba7 t 2026-05-15 13:38:29.755972+00 NARRATOR TEXT gemini narrator.default narrator:state:v1:gemini-flash-lite-latest:e7191af5eda10364eb75a8714f0 f 2026-05-15 13:38:16.010883+00 IMAGE_ARTIST IMAGE gemini artist.default image:state:v1:gemini-3.1-flash-image-preview:887bcd5b0fc802337598d795 t 2026-05-15 13:38:13.26106+00 IMAGE_ARTIST IMAGE gemini artist.default image:state:v1:gemini-3.1-flash-image-preview:8aecba93bfc3cd99e986e14b t 2026-05-15 13:37:53.13337+00 NARRATOR TEXT gemini narrator.default narrator:state:v1:gemini-flash-lite-latest:3690316d5e43c92daf8af5fdc62 f 2026-05-15 13:34:09.749088+00 NARRATOR TEXT gemini narrator.default narrator:state:v1:gemini-flash-lite-latest:a44828eab27a316b3c96b608cdb f 2026-05-15 13:29:47.439602+00 (20 rows)
Raw API Result
{
"base": "https://chocoberry.app",
"release": "3830251-20260515135414",
"startedAt": "2026-05-15T13:56:14Z",
"finishedAt": "2026-05-15T13:56:42Z",
"readyz": {
"status": "ok"
},
"session": {
"userId": null
},
"selectedBundle": "mordor-ring-shadow",
"runId": "0977aece-d3b3-4922-aec1-8c891a118a03",
"startLatencySeconds": 3.617,
"opening": {
"id": "30e66cc9-893d-4d54-bb3e-13c6f2dc0051",
"turnNumber": 1,
"locale": "en",
"textStatus": "READY",
"imageStatus": "READY",
"imageUrl": "https://chocoberry.app/media/story-runs/2b955030-a0a2-4338-a63f-54bd035d9d45/scenes/ae6fd369-e197-4963-9fa7-444b07981c3b/image.jpg",
"voiceStatus": "NOT_REQUESTED",
"videoStatus": "NOT_REQUESTED",
"sceneTitle": "The Ash-Choked Pass",
"sceneText": "Black ash falls like snow, coating the jagged rocks of the Cirith Ungol pass. You crouch behind a shattered pillar, your breath hitching in the thin, sulfurous air. Below, the red eye of a watchtower sweeps the path. A narrow, crumbling goat track leads upward, while a dark, mossy crevice offers hidden passage.",
"choices": [
{
"id": "05d2097e-18fc-4a28-97a4-b573778545b0",
"key": "climb_goat_track",
"label": "Climb the exposed goat track"
},
{
"id": "05d477fb-f9c8-4120-b826-56f86985ad96",
"key": "enter_crevice",
"label": "Squeeze into the mossy crevice"
}
],
"isTerminal": false,
"terminalOutcome": null,
"_pollSeconds": 0.484
},
"selectedChoice": {
"id": "05d2097e-18fc-4a28-97a4-b573778545b0",
"key": "climb_goat_track",
"label": "Climb the exposed goat track"
},
"selectLatencySeconds": 3.641,
"turn2": {
"id": "095725ff-9d72-4f36-986b-5d03755efac7",
"turnNumber": 2,
"locale": "en",
"textStatus": "READY",
"imageStatus": "READY",
"imageUrl": "https://chocoberry.app/media/story-runs/2b955030-a0a2-4338-a63f-54bd035d9d45/scenes/360b9eb8-5826-4b51-946d-49e311fce99d/image.jpg",
"voiceStatus": "NOT_REQUESTED",
"videoStatus": "NOT_REQUESTED",
"sceneTitle": "The Exposed Ascent",
"sceneText": "You scramble up the goat track, boots slipping on loose shale. The red light from the tower sweeps over you, forcing you to flatten against the cliff face. A patrol of orcs marches on the path below, their iron boots clanking against the stone. You are dangerously visible here.",
"choices": [
{
"id": "32b5974c-32a2-469c-a175-db332b7d5bd4",
"key": "use_ring_to_hide",
"label": "Slip the Ring onto your finger"
},
{
"id": "e656601f-f5fe-47d0-bb8c-2a5cf47ddad3",
"key": "wait_for_pass",
"label": "Wait for the patrol to pass"
}
],
"isTerminal": false,
"terminalOutcome": null,
"_pollSeconds": 0.515
}
}