{
  "project": "afterimage",
  "shots": [
    {
      "data": {
        "episode_id": "EP001",
        "project": "dead_air",
        "shots": [
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 1,
            "source_text": "## THE MOMENT"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 2,
            "source_text": "The phone glowing face-down on the counter."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 3,
            "source_text": "She knows it's there."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 4,
            "source_text": "She doesn't pick it up."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 5,
            "source_text": "## NARRATIVE SCRIPT ### [00:00-00:04] ENTRY IMAGE"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 6,
            "source_text": "Rain on glass."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 7,
            "source_text": "Neon bleeds behind it \u2014"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 8,
            "source_text": "the city breathing in long, wet pulses."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 9,
            "source_text": "Camera drifts down from an apartment window"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 10,
            "source_text": "to a bar sign one floor below."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 11,
            "source_text": "Same building."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 12,
            "source_text": "### [00:04-00:22] VOICE"
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 13,
            "source_text": "[VO: SADIE] \"The number."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 14,
            "source_text": "It hasn't worked in two years."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 15,
            "source_text": "I watched them disconnect it."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 16,
            "source_text": "But it calls."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 17,
            "source_text": "Every night,"
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 18,
            "source_text": "the same time."
          },
          {
            "characters_mentioned": [
              "Sadie",
              "Caller"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 19,
            "source_text": "I don't know what he's saying."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 20,
            "source_text": "It sounds like weather.\""
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 21,
            "source_text": "### [00:22-00:30] LINGER"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 22,
            "source_text": "The phone on the counter."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 23,
            "source_text": "Screen lit, face down."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 24,
            "source_text": "The notification glow catches in the rain on the window \u2014"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 25,
            "source_text": "two sources of light,"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 26,
            "source_text": "neither warm."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 27,
            "source_text": "Hold."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 5,
            "shot_index": 28,
            "source_text": "## WORLD VOTE"
          },
          {
            "characters_mentioned": [
              "Caller"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 5,
            "shot_index": 29,
            "source_text": "**[DM_PROMPT]** Behind his voice on the voicemail:"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 5,
            "shot_index": 30,
            "source_text": "* [A] Rain"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 5,
            "shot_index": 31,
            "source_text": "* [B] Music"
          }
        ],
        "total_shots": 31
      },
      "path": "afterimage/state/visual/camera_tested/ep_001.json"
    },
    {
      "data": {
        "episode_id": "EP002",
        "project": "leviathan",
        "shots": [
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 1,
            "shot_index": 1,
            "source_text": "A bar."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 1,
            "shot_index": 2,
            "source_text": "Low amber light."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 1,
            "shot_index": 3,
            "source_text": "Bottles catching neon from outside."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 1,
            "shot_index": 4,
            "source_text": "One stool"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 1,
            "shot_index": 5,
            "source_text": "\u2014 seat seven \u2014"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 1,
            "shot_index": 6,
            "source_text": "pulled out"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 1,
            "shot_index": 7,
            "source_text": "from the counter."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 1,
            "shot_index": 8,
            "source_text": "As if someone"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 1,
            "shot_index": 9,
            "source_text": "just stood up."
          },
          {
            "characters_mentioned": [
              "DUSTY"
            ],
            "has_dialogue": true,
            "location_hint": "INT. BAR",
            "scene_index": 2,
            "shot_index": 10,
            "source_text": "[VO: DUSTY] \"You notice things behind a bar.\""
          },
          {
            "characters_mentioned": [
              "DUSTY"
            ],
            "has_dialogue": true,
            "location_hint": "INT. BAR",
            "scene_index": 2,
            "shot_index": 11,
            "source_text": "\"You learn to read a room\""
          },
          {
            "characters_mentioned": [
              "DUSTY"
            ],
            "has_dialogue": true,
            "location_hint": "INT. BAR",
            "scene_index": 2,
            "shot_index": 12,
            "source_text": "\"by what's missing.\""
          },
          {
            "characters_mentioned": [
              "DUSTY"
            ],
            "has_dialogue": true,
            "location_hint": "INT. BAR",
            "scene_index": 2,
            "shot_index": 13,
            "source_text": "\"The glass\""
          },
          {
            "characters_mentioned": [
              "DUSTY"
            ],
            "has_dialogue": true,
            "location_hint": "INT. BAR",
            "scene_index": 2,
            "shot_index": 14,
            "source_text": "\"that empties itself.\""
          },
          {
            "characters_mentioned": [
              "DUSTY"
            ],
            "has_dialogue": true,
            "location_hint": "INT. BAR",
            "scene_index": 2,
            "shot_index": 15,
            "source_text": "\"The napkin\""
          },
          {
            "characters_mentioned": [
              "DUSTY"
            ],
            "has_dialogue": true,
            "location_hint": "INT. BAR",
            "scene_index": 2,
            "shot_index": 16,
            "source_text": "\"that folds.\""
          },
          {
            "characters_mentioned": [
              "DUSTY"
            ],
            "has_dialogue": true,
            "location_hint": "INT. BAR",
            "scene_index": 2,
            "shot_index": 17,
            "source_text": "\"Seat seven\""
          },
          {
            "characters_mentioned": [
              "DUSTY"
            ],
            "has_dialogue": true,
            "location_hint": "INT. BAR",
            "scene_index": 2,
            "shot_index": 18,
            "source_text": "\"\u2014 every night he's there.\""
          },
          {
            "characters_mentioned": [
              "DUSTY"
            ],
            "has_dialogue": true,
            "location_hint": "INT. BAR",
            "scene_index": 2,
            "shot_index": 19,
            "source_text": "\"I pour for him.\""
          },
          {
            "characters_mentioned": [
              "DUSTY"
            ],
            "has_dialogue": true,
            "location_hint": "INT. BAR",
            "scene_index": 2,
            "shot_index": 20,
            "source_text": "\"I've seen his shoulders,\""
          },
          {
            "characters_mentioned": [
              "DUSTY"
            ],
            "has_dialogue": true,
            "location_hint": "INT. BAR",
            "scene_index": 2,
            "shot_index": 21,
            "source_text": "\"his hands.\""
          },
          {
            "characters_mentioned": [
              "DUSTY"
            ],
            "has_dialogue": true,
            "location_hint": "INT. BAR",
            "scene_index": 2,
            "shot_index": 22,
            "source_text": "\"The cameras\""
          },
          {
            "characters_mentioned": [
              "DUSTY"
            ],
            "has_dialogue": true,
            "location_hint": "INT. BAR",
            "scene_index": 2,
            "shot_index": 23,
            "source_text": "\"see nothing.\""
          },
          {
            "characters_mentioned": [
              "DUSTY"
            ],
            "has_dialogue": true,
            "location_hint": "INT. BAR",
            "scene_index": 2,
            "shot_index": 24,
            "source_text": "\"But the drink\""
          },
          {
            "characters_mentioned": [
              "DUSTY"
            ],
            "has_dialogue": true,
            "location_hint": "INT. BAR",
            "scene_index": 2,
            "shot_index": 25,
            "source_text": "\"disappears.\""
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 3,
            "shot_index": 26,
            "source_text": "The bar,"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 3,
            "shot_index": 27,
            "source_text": "clean and empty."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 3,
            "shot_index": 28,
            "source_text": "Every stool pushed in."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 3,
            "shot_index": 29,
            "source_text": "Except seven."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 3,
            "shot_index": 30,
            "source_text": "A single empty glass,"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 3,
            "shot_index": 31,
            "source_text": "condensation still on it."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 3,
            "shot_index": 32,
            "source_text": "No fingerprints."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 3,
            "shot_index": 33,
            "source_text": "Hold."
          }
        ],
        "total_shots": 33
      },
      "path": "afterimage/state/visual/camera_tested/ep_002.json"
    },
    {
      "data": {
        "episode_id": "EP003",
        "project": "leviathan",
        "shots": [
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 1,
            "source_text": "Sadie's hand hovering over the phone."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 2,
            "source_text": "Close-up."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 3,
            "source_text": "The screen glow on her skin."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 4,
            "source_text": "[VO: SADIE] \"I played it back.\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 5,
            "source_text": "[Punch-in: Sadie's eyes, focused.]"
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 6,
            "source_text": "[VO: SADIE] \"Slower.\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 7,
            "source_text": "[Extreme close-up: Her finger on the screen.]"
          },
          {
            "characters_mentioned": [
              "Sadie",
              "He"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 8,
            "source_text": "[VO: SADIE] \"He's not saying words \u2014\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 9,
            "source_text": "[Reaction shot: Sadie's brow furrows.]"
          },
          {
            "characters_mentioned": [
              "Sadie",
              "He"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 10,
            "source_text": "[VO: SADIE] \"he's describing something.\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 11,
            "source_text": "[VO: SADIE] \"A room.\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 12,
            "source_text": "[VO: SADIE] \"Low light.\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 13,
            "source_text": "[VO: SADIE] \"Bottles.\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 14,
            "source_text": "[Close-up: Sadie listening intently.]"
          },
          {
            "characters_mentioned": [
              "Sadie",
              "She",
              "He"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 15,
            "source_text": "[VO: SADIE] \"'She's here again,' he says.\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 16,
            "source_text": "[VO: SADIE] \"'I can almost\u2014'\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 17,
            "source_text": "[VO: SADIE] \"And it cuts.\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 18,
            "source_text": "[Reaction shot: Sadie exhales, frustrated.]"
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 19,
            "source_text": "[VO: SADIE] \"Every time, the same word.\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 20,
            "source_text": "[VO: SADIE] \"Almost.\""
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 21,
            "source_text": "[Close-up: The mysterious phone number on the screen.]"
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 22,
            "source_text": "[VO: SADIE] \"I called the number.\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 23,
            "source_text": "[VO: SADIE] \"I don't know why.\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 24,
            "source_text": "[VO: SADIE] \"It\u2014\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 25,
            "source_text": "The phone pressed to her ear."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 26,
            "source_text": "Silence."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 27,
            "source_text": "[Extreme close-up: Sadie's ear and the phone speaker.]"
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 28,
            "source_text": "Her expression shifts \u2014"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 29,
            "source_text": "someone picked up."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 30,
            "source_text": "Hold in silence."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 31,
            "source_text": "Cut before we hear a voice."
          }
        ],
        "total_shots": 31
      },
      "path": "afterimage/state/visual/camera_tested/ep_003.json"
    },
    {
      "data": {
        "episode_id": "EP004",
        "project": "leviathan",
        "shots": [
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 1,
            "shot_index": 1,
            "source_text": "The bar at opening."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 2,
            "source_text": "Morning light cutting through neon signage"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 3,
            "source_text": "still left on."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 4,
            "source_text": "Dust in the light."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 5,
            "source_text": "Seat seven"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 6,
            "source_text": "is empty."
          },
          {
            "characters_mentioned": [
              "DUSTY"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 7,
            "source_text": "[VO: DUSTY] 'You've been pouring for an invisible man"
          },
          {
            "characters_mentioned": [
              "DUSTY"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 8,
            "source_text": "for three months."
          },
          {
            "characters_mentioned": [
              "DUSTY"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 9,
            "source_text": "You catch yourself asking if he wants another round."
          },
          {
            "characters_mentioned": [
              "DUSTY"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 10,
            "source_text": "Out loud."
          },
          {
            "characters_mentioned": [
              "DUSTY"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 11,
            "source_text": "To a stool."
          },
          {
            "characters_mentioned": [
              "DUSTY"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 12,
            "source_text": "Then this morning"
          },
          {
            "characters_mentioned": [
              "DUSTY"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 13,
            "source_text": "\u2014 seat seven."
          },
          {
            "characters_mentioned": [
              "DUSTY"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 14,
            "source_text": "The alarm didn't trip."
          },
          {
            "characters_mentioned": [
              "DUSTY"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 15,
            "source_text": "The doors were locked."
          },
          {
            "characters_mentioned": [
              "DUSTY"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 16,
            "source_text": "Ghosts don't leave collateral."
          },
          {
            "characters_mentioned": [
              "DUSTY"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 17,
            "source_text": "But there it was."
          },
          {
            "characters_mentioned": [
              "DUSTY"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 18,
            "source_text": "Shaped like something I should remember.'"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 19,
            "source_text": "The earring"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 20,
            "source_text": "on the bar surface."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 21,
            "source_text": "Extreme close-up."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 22,
            "source_text": "Silver catching neon"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 23,
            "source_text": "in a way nothing else in the world does"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 24,
            "source_text": "\u2014 the light refracts wrong,"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 25,
            "source_text": "impossibly."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 26,
            "source_text": "Hold."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 5,
            "shot_index": 27,
            "source_text": "**[DM_PROMPT]** The voicemails."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 5,
            "shot_index": 28,
            "source_text": "The empty seat."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 5,
            "shot_index": 29,
            "source_text": "The earring."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 5,
            "shot_index": 30,
            "source_text": "* [A] Longing"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 5,
            "shot_index": 31,
            "source_text": "* [B] Dread"
          }
        ],
        "total_shots": 31
      },
      "path": "afterimage/state/visual/camera_tested/ep_004.json"
    },
    {
      "data": {
        "episode_id": "EP005",
        "project": "leviathan",
        "shots": [
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": "Sadie's apartment",
            "scene_index": 1,
            "shot_index": 1,
            "source_text": "Rain on Sadie's apartment window."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "Sadie's apartment",
            "scene_index": 1,
            "shot_index": 2,
            "source_text": "Same framing as Episode 1,"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "Sadie's apartment",
            "scene_index": 1,
            "shot_index": 3,
            "source_text": "but the neon outside is warmer \u2014"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "Sadie's apartment",
            "scene_index": 1,
            "shot_index": 4,
            "source_text": "amber bleeding into the cyan."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "Sadie's apartment",
            "scene_index": 1,
            "shot_index": 5,
            "source_text": "The color temperature is shifting."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "Sadie's apartment",
            "scene_index": 1,
            "shot_index": 6,
            "source_text": "SENSORY BLEED begins."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": "Sadie's apartment",
            "scene_index": 2,
            "shot_index": 7,
            "source_text": "[VO: SADIE] \"It started last week.\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": "Sadie's apartment",
            "scene_index": 2,
            "shot_index": 8,
            "source_text": "[VO: SADIE] \"When the voicemail plays, the room changes.\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": "Sadie's apartment",
            "scene_index": 2,
            "shot_index": 9,
            "source_text": "[VO: SADIE] \"Not the light \u2014 the air.\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": "Sadie's apartment",
            "scene_index": 2,
            "shot_index": 10,
            "source_text": "[VO: SADIE] \"Sandalwood.\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": "Sadie's apartment",
            "scene_index": 2,
            "shot_index": 11,
            "source_text": "[VO: SADIE] \"Citrus peel.\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": "Sadie's apartment",
            "scene_index": 2,
            "shot_index": 12,
            "source_text": "[VO: SADIE] \"Something someone wore.\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": "Sadie's apartment",
            "scene_index": 2,
            "shot_index": 13,
            "source_text": "[VO: SADIE] \"I went through every cabinet.\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": "Sadie's apartment",
            "scene_index": 2,
            "shot_index": 14,
            "source_text": "[VO: SADIE] \"Nothing.\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": "Sadie's apartment",
            "scene_index": 2,
            "shot_index": 15,
            "source_text": "[VO: SADIE] \"It's only there when his voice is playing.\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": "Sadie's apartment",
            "scene_index": 2,
            "shot_index": 16,
            "source_text": "[VO: SADIE] \"When it stops \u2014 cold coffee.\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": "Sadie's apartment",
            "scene_index": 2,
            "shot_index": 17,
            "source_text": "[VO: SADIE] \"Old rain.\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": "Sadie's apartment",
            "scene_index": 3,
            "shot_index": 18,
            "source_text": "Sadie standing in her apartment,"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "Sadie's apartment",
            "scene_index": 3,
            "shot_index": 19,
            "source_text": "eyes closed,"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "Sadie's apartment",
            "scene_index": 3,
            "shot_index": 20,
            "source_text": "breathing in."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "Sadie's apartment",
            "scene_index": 3,
            "shot_index": 21,
            "source_text": "The voicemail plays."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": "Sadie's apartment",
            "scene_index": 3,
            "shot_index": 22,
            "source_text": "She doesn't want it to end \u2014"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "Sadie's apartment",
            "scene_index": 3,
            "shot_index": 23,
            "source_text": "not for the voice,"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "Sadie's apartment",
            "scene_index": 3,
            "shot_index": 24,
            "source_text": "but for the smell."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "Sadie's apartment",
            "scene_index": 3,
            "shot_index": 25,
            "source_text": "Hold."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "Sadie's apartment",
            "scene_index": 3,
            "shot_index": 26,
            "source_text": "RHYME with Ep 1's window \u2014"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "Sadie's apartment",
            "scene_index": 3,
            "shot_index": 27,
            "source_text": "same frame,"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "Sadie's apartment",
            "scene_index": 3,
            "shot_index": 28,
            "source_text": "warmer light,"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "Sadie's apartment",
            "scene_index": 3,
            "shot_index": 29,
            "source_text": "different longing."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 30,
            "source_text": "**[DM_PROMPT]** Where the scent is strongest:"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 31,
            "source_text": "* [A] The phone itself"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 32,
            "source_text": "* [B] The window glass"
          }
        ],
        "total_shots": 32
      },
      "path": "afterimage/state/visual/camera_tested/ep_005.json"
    },
    {
      "data": {
        "episode_id": "EP006",
        "project": "leviathan",
        "shots": [
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 1,
            "source_text": "## Metadata\n- Exposure: THE FRACTURE\n- Sequence: THE TOLL (Pushback)\n- Push/Pushback: Pushback\n- Rhythm: Drift\n- VO: Yes\n- Ending Type: DISSONANCE\n- Emotional Beat: none\n- Disruption: AUDIO BLEED \u2014 Sadie's apartment sounds (coffee maker hum, phone buzz, radiator tick) invade bar ambience beneath VO. Subliminal. Audio layer cracks before visual."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 2,
            "source_text": "## FRAGMENT\n- Recontextualizes: Ep 2 \u2014 the empty glass\n- Original meaning: A regular who left, absence\n- New meaning: Someone drank from it. The condensation ring is warm. The lip print is wet. Presence is becoming physical.\n- Carrier: ENTRY IMAGE"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 3,
            "source_text": "## THE MOMENT\nThe lip print on the glass held up to neon."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 4,
            "source_text": "Contact."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 5,
            "source_text": "Warmth."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 6,
            "source_text": "The absent one was here and left a mark."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 7,
            "source_text": "And underneath it all, an audio reality that shouldn't be there."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "The bar.",
            "scene_index": 3,
            "shot_index": 8,
            "source_text": "## NARRATIVE SCRIPT\n\n### [00:00-00:04] ENTRY IMAGE\n\nThe bar."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "The bar.",
            "scene_index": 3,
            "shot_index": 9,
            "source_text": "Night."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "The bar.",
            "scene_index": 3,
            "shot_index": 10,
            "source_text": "Seat seven's glass, seen from behind the bar."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "The bar.",
            "scene_index": 3,
            "shot_index": 11,
            "source_text": "Condensation fresh."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "The bar.",
            "scene_index": 3,
            "shot_index": 12,
            "source_text": "The camera monitor in the background \u2014 showing an empty seat."
          },
          {
            "characters_mentioned": [
              "Dusty"
            ],
            "has_dialogue": true,
            "location_hint": "The bar.",
            "scene_index": 4,
            "shot_index": 13,
            "source_text": "### [00:04-00:22] VOICE\n\n[VO: DUSTY]\n\"You pick up a glass and you know."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": true,
            "location_hint": "The bar.",
            "scene_index": 4,
            "shot_index": 14,
            "source_text": "Room temperature."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": true,
            "location_hint": "The bar.",
            "scene_index": 4,
            "shot_index": 15,
            "source_text": "Dishwasher warm."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": true,
            "location_hint": "The bar.",
            "scene_index": 4,
            "shot_index": 16,
            "source_text": "Left-out-overnight cold."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": true,
            "location_hint": "The bar.",
            "scene_index": 4,
            "shot_index": 17,
            "source_text": "This glass was body warm."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": true,
            "location_hint": "The bar.",
            "scene_index": 4,
            "shot_index": 18,
            "source_text": "And there's a mark on the rim."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": true,
            "location_hint": "The bar.",
            "scene_index": 4,
            "shot_index": 19,
            "source_text": "A ghost doesn't have a pulse."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": true,
            "location_hint": "The bar.",
            "scene_index": 4,
            "shot_index": 20,
            "source_text": "A ghost doesn't leave body heat."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": true,
            "location_hint": "The bar.",
            "scene_index": 4,
            "shot_index": 21,
            "source_text": "A ghost doesn't leave a piece of themselves behind on a Tuesday night.\""
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "The bar.",
            "scene_index": 4,
            "shot_index": 22,
            "source_text": "[Audio Direction: Bar atmosphere AND apartment audio bleed beneath."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": "The bar.",
            "scene_index": 4,
            "shot_index": 23,
            "source_text": "Sadie's voicemail plays faintly under bar sounds."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "The bar.",
            "scene_index": 4,
            "shot_index": 24,
            "source_text": "Rain on TWO windows \u2014 two rooms, one audio space."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "The bar.",
            "scene_index": 4,
            "shot_index": 25,
            "source_text": "Audience needs 10 seconds to sense something wrong.]"
          },
          {
            "characters_mentioned": [
              "Dusty"
            ],
            "has_dialogue": false,
            "location_hint": "The bar.",
            "scene_index": 5,
            "shot_index": 26,
            "source_text": "### [00:22-00:30] LINGER\n\nDusty holding the glass up to neon light."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "The bar.",
            "scene_index": 5,
            "shot_index": 27,
            "source_text": "The lip print visible."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "The bar.",
            "scene_index": 5,
            "shot_index": 28,
            "source_text": "The audio bleed continues through the hold \u2014 it doesn't resolve."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "The bar.",
            "scene_index": 5,
            "shot_index": 29,
            "source_text": "DISSONANCE between bar visuals and apartment sounds."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 6,
            "shot_index": 30,
            "source_text": "## WORLD VOTE\n**[DM_PROMPT]** What she left on the rim:"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 6,
            "shot_index": 31,
            "source_text": "* [A] Bare \u2014 just warmth"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 6,
            "shot_index": 32,
            "source_text": "* [B] A smudge of dark lipstick"
          }
        ],
        "total_shots": 32
      },
      "path": "afterimage/state/visual/camera_tested/ep_006.json"
    },
    {
      "data": {
        "episode_id": "EP007",
        "project": "leviathan",
        "shots": [
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 1,
            "source_text": "[00:00-00:03] ENTRY IMAGE"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 2,
            "source_text": "Not atmosphere."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 3,
            "source_text": "A harsh clinical audio-waveform UI..."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 4,
            "source_text": "...on a phone screen."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 5,
            "source_text": "Spectrogram."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 6,
            "source_text": "Time markers."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 7,
            "source_text": "The warm amber world of AFTERIMAGE..."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 8,
            "source_text": "...replaced by cold blue software light."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 9,
            "source_text": "[00:03-00:22] VOICE"
          },
          {
            "characters_mentioned": [
              "SADIE"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 10,
            "source_text": "[VO: SADIE \u2014 found-document register, flat, clinical] \"Spectral match.\""
          },
          {
            "characters_mentioned": [],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 11,
            "source_text": "\"Compressor hum...\""
          },
          {
            "characters_mentioned": [],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 12,
            "source_text": "\"...sixty-three hertz.\""
          },
          {
            "characters_mentioned": [],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 13,
            "source_text": "\"Runs all night...\""
          },
          {
            "characters_mentioned": [],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 14,
            "source_text": "\"...behind his voice.\""
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 15,
            "source_text": "Cross-referenced with city licenses."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 16,
            "source_text": "\"Three bars in the district...\""
          },
          {
            "characters_mentioned": [],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 17,
            "source_text": "\"...use that model compressor.\""
          },
          {
            "characters_mentioned": [],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 18,
            "source_text": "\"One of them is in my building.\""
          },
          {
            "characters_mentioned": [],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 19,
            "source_text": "\"Below me.\""
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 20,
            "source_text": "And there..."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 21,
            "source_text": "...behind the hum."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 22,
            "source_text": "\"Rain on a window.\""
          },
          {
            "characters_mentioned": [],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 23,
            "source_text": "\"The same rain I hear on mine.\""
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 24,
            "source_text": "[00:22-00:30] LINGER"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 25,
            "source_text": "The spectrogram frozen..."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 26,
            "source_text": "...on the waveform of the word \\\"almost.\\\""
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 27,
            "source_text": "The shape of the word hangs in the air."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 28,
            "source_text": "Beautiful despite the clinical context."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 29,
            "source_text": "Hold."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 30,
            "source_text": "WORLD VOTE"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 31,
            "source_text": "**[DM_PROMPT]** What the spectrogram reveals behind \\\"almost\\\":"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 32,
            "source_text": "* [A] A second voice, whispering"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 33,
            "source_text": "* [B] A heartbeat at 72 BPM"
          }
        ],
        "total_shots": 33
      },
      "path": "afterimage/state/visual/camera_tested/ep_007.json"
    },
    {
      "data": {
        "episode_id": "EP008",
        "project": "leviathan",
        "shots": [
          {
            "characters_mentioned": [
              "Dusty",
              "Man"
            ],
            "has_dialogue": true,
            "location_hint": "INT. BAR",
            "scene_index": 1,
            "shot_index": 1,
            "source_text": "[VO: DUSTY] \"You spend months watching a man who isn't there.\""
          },
          {
            "characters_mentioned": [
              "Dusty",
              "Man"
            ],
            "has_dialogue": true,
            "location_hint": "INT. BAR",
            "scene_index": 1,
            "shot_index": 2,
            "source_text": "[VO: DUSTY] \"You learn his shoulders.\""
          },
          {
            "characters_mentioned": [
              "Dusty",
              "Man"
            ],
            "has_dialogue": true,
            "location_hint": "INT. BAR",
            "scene_index": 1,
            "shot_index": 3,
            "source_text": "[VO: DUSTY] \"The way he holds a glass.\""
          },
          {
            "characters_mentioned": [
              "Dusty",
              "Man"
            ],
            "has_dialogue": true,
            "location_hint": "INT. BAR",
            "scene_index": 1,
            "shot_index": 4,
            "source_text": "[VO: DUSTY] \"You pour for him and you wait.\""
          },
          {
            "characters_mentioned": [
              "Dusty"
            ],
            "has_dialogue": true,
            "location_hint": "INT. BAR",
            "scene_index": 1,
            "shot_index": 5,
            "source_text": "[VO: DUSTY] \"Three months of notes in a bartender's ledger \u2014\""
          },
          {
            "characters_mentioned": [
              "Dusty"
            ],
            "has_dialogue": true,
            "location_hint": "INT. BAR",
            "scene_index": 1,
            "shot_index": 6,
            "source_text": "[VO: DUSTY] \"temperature of the stool,\""
          },
          {
            "characters_mentioned": [
              "Dusty"
            ],
            "has_dialogue": true,
            "location_hint": "INT. BAR",
            "scene_index": 1,
            "shot_index": 7,
            "source_text": "[VO: DUSTY] \"the way the napkin folds.\""
          },
          {
            "characters_mentioned": [
              "Dusty"
            ],
            "has_dialogue": true,
            "location_hint": "INT. BAR",
            "scene_index": 1,
            "shot_index": 8,
            "source_text": "[VO: DUSTY] \"You know this ghost.\""
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 1,
            "shot_index": 9,
            "source_text": "Atmospheric shots of the bar."
          },
          {
            "characters_mentioned": [
              "Dusty"
            ],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 1,
            "shot_index": 10,
            "source_text": "Dusty behind the bar, the weight of months."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 1,
            "shot_index": 11,
            "source_text": "Contemplative."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 1,
            "shot_index": 12,
            "source_text": "The audience thinks this is a standard episode."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 2,
            "shot_index": 13,
            "source_text": "The glass is PUT DOWN."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 2,
            "shot_index": 14,
            "source_text": "Hard."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 2,
            "shot_index": 15,
            "source_text": "By an invisible hand."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 2,
            "shot_index": 16,
            "source_text": "The sound of glass on wood with intent \u2014"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 2,
            "shot_index": 17,
            "source_text": "someone ordering."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 2,
            "shot_index": 18,
            "source_text": "Then a voice."
          },
          {
            "characters_mentioned": [
              "Dusty"
            ],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 2,
            "shot_index": 19,
            "source_text": "Close, intimate, directly beside him:"
          },
          {
            "characters_mentioned": [
              "Woman"
            ],
            "has_dialogue": true,
            "location_hint": "INT. BAR",
            "scene_index": 2,
            "shot_index": 20,
            "source_text": "\"Can you see me?\" A woman's voice."
          },
          {
            "characters_mentioned": [
              "Man",
              "Dusty"
            ],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 2,
            "shot_index": 21,
            "source_text": "Not the man he's been seeing."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 2,
            "shot_index": 22,
            "source_text": "Everything inverts."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 2,
            "shot_index": 23,
            "source_text": "No LINGER."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 2,
            "shot_index": 24,
            "source_text": "The BREAK IS the linger."
          },
          {
            "characters_mentioned": [
              "Woman"
            ],
            "has_dialogue": false,
            "location_hint": "INT. BAR",
            "scene_index": 2,
            "shot_index": 25,
            "source_text": "The woman's voice is the last sound."
          },
          {
            "characters_mentioned": [
              "Man"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 26,
            "source_text": "**[DM_PROMPT]** The invisible man was never a man."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 27,
            "source_text": "* [A] Forgotten"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 28,
            "source_text": "* [B] Erased"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 29,
            "source_text": "[Oracle overlays the BREAK \u2014 visceral, not contemplative.]"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 30,
            "source_text": "[The audience is asked to interpret while still reeling.]"
          }
        ],
        "total_shots": 30
      },
      "path": "afterimage/state/visual/camera_tested/ep_008.json"
    },
    {
      "data": {
        "episode_id": "EP009",
        "project": "leviathan",
        "shots": [
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": "INT. APARTMENT",
            "scene_index": 1,
            "shot_index": 1,
            "source_text": "Sadie's hand opening a jacket pocket."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. APARTMENT",
            "scene_index": 1,
            "shot_index": 2,
            "source_text": "A matchbook falls out."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": "INT. APARTMENT",
            "scene_index": 1,
            "shot_index": 3,
            "source_text": "Close-up \u2014 the logo matches the neon glow she sees through her window every night."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. APARTMENT",
            "scene_index": 1,
            "shot_index": 4,
            "source_text": "The bar is downstairs."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": "INT. APARTMENT",
            "scene_index": 2,
            "shot_index": 5,
            "source_text": "[VO: SADIE] \"I've lived here two years."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": "INT. APARTMENT",
            "scene_index": 2,
            "shot_index": 6,
            "source_text": "The sign downstairs \u2014 I look at it every night."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": "INT. APARTMENT",
            "scene_index": 2,
            "shot_index": 7,
            "source_text": "I never went in."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": "INT. APARTMENT",
            "scene_index": 2,
            "shot_index": 8,
            "source_text": "But the matchbook was in my coat."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": "INT. APARTMENT",
            "scene_index": 2,
            "shot_index": 9,
            "source_text": "My coat, my pocket, my handwriting on the inside cover."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": "INT. APARTMENT",
            "scene_index": 2,
            "shot_index": 10,
            "source_text": "A phone number."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": "INT. APARTMENT",
            "scene_index": 2,
            "shot_index": 11,
            "source_text": "His number."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": "INT. APARTMENT",
            "scene_index": 2,
            "shot_index": 12,
            "source_text": "The disconnected one."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": "INT. APARTMENT",
            "scene_index": 2,
            "shot_index": 13,
            "source_text": "I wrote it down."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": "INT. APARTMENT",
            "scene_index": 2,
            "shot_index": 14,
            "source_text": "When?\""
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. APARTMENT",
            "scene_index": 2,
            "shot_index": 15,
            "source_text": "[Sound design escalates through the VO: neon hum louder,"
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": "INT. APARTMENT",
            "scene_index": 2,
            "shot_index": 16,
            "source_text": "compressor hum matching her breathing,"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. APARTMENT",
            "scene_index": 2,
            "shot_index": 17,
            "source_text": "rain intensifying. Building toward eruption.]"
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": "INT. STAIRWELL",
            "scene_index": 3,
            "shot_index": 18,
            "source_text": "GHOST FRACTURE: She walks to her apartment door."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. STAIRWELL",
            "scene_index": 3,
            "shot_index": 19,
            "source_text": "Down the stairwell."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. STAIRWELL",
            "scene_index": 3,
            "shot_index": 20,
            "source_text": "The neon flickers."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. STAIRWELL",
            "scene_index": 3,
            "shot_index": 21,
            "source_text": "Rain hammers."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": "EXT. BAR",
            "scene_index": 4,
            "shot_index": 22,
            "source_text": "She reaches for the bar's door handle \u2014 the audience expects the crossing."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": "EXT. BAR",
            "scene_index": 4,
            "shot_index": 23,
            "source_text": "She stops."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "EXT. BAR",
            "scene_index": 4,
            "shot_index": 24,
            "source_text": "The neon slows."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "EXT. BAR",
            "scene_index": 4,
            "shot_index": 25,
            "source_text": "The rain softens."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": "INT. APARTMENT",
            "scene_index": 5,
            "shot_index": 26,
            "source_text": "Sadie at her window, looking at the neon sign below."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": "INT. APARTMENT",
            "scene_index": 5,
            "shot_index": 27,
            "source_text": "The bar she's lived above for two years without entering."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": "INT. APARTMENT",
            "scene_index": 5,
            "shot_index": 28,
            "source_text": "RHYME with Ep 3's threshold \u2014 there she crossed (called the number); here she freezes."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "INT. APARTMENT",
            "scene_index": 5,
            "shot_index": 29,
            "source_text": "Hold."
          }
        ],
        "total_shots": 29
      },
      "path": "afterimage/state/visual/camera_tested/ep_009.json"
    },
    {
      "data": {
        "episode_id": "EP010",
        "project": "leviathan",
        "shots": [
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 1,
            "source_text": "The bar, empty, lights low."
          },
          {
            "characters_mentioned": [
              "Dusty"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 2,
            "source_text": "Dusty's hand resting on the bar surface"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 3,
            "source_text": "at seat seven."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 4,
            "source_text": "His fingers spread."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 5,
            "source_text": "Feeling."
          },
          {
            "characters_mentioned": [
              "Dusty"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 6,
            "source_text": "[VO: DUSTY] \"You wipe down a bar every night."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 7,
            "source_text": "Same motion,"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 8,
            "source_text": "same surfaces."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 9,
            "source_text": "But you've never touched it like this \u2014"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 10,
            "source_text": "looking for something."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 11,
            "source_text": "Seat seven is warm."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 12,
            "source_text": "Not glass-warm."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 13,
            "source_text": "Skin-warm."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 14,
            "source_text": "And if I close my eyes,"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 15,
            "source_text": "I can feel the outline."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 16,
            "source_text": "A forearm."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 17,
            "source_text": "An elbow."
          },
          {
            "characters_mentioned": [
              "someone"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 18,
            "source_text": "The weight of someone leaning in."
          },
          {
            "characters_mentioned": [
              "She"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 19,
            "source_text": "She's here right now.\""
          },
          {
            "characters_mentioned": [
              "Dusty"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 20,
            "source_text": "Dusty's hand on the bar,"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 21,
            "source_text": "eyes closed."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 22,
            "source_text": "Then:"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 23,
            "source_text": "\"I opened them."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 24,
            "source_text": "The warmth was gone.\""
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 25,
            "source_text": "His hand on empty wood."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 26,
            "source_text": "But the impression"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 27,
            "source_text": "in the leather seat"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 28,
            "source_text": "is deeper than before."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 29,
            "source_text": "DISSONANCE \u2014"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 30,
            "source_text": "the voice says gone,"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 31,
            "source_text": "the image says more present than ever."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 32,
            "source_text": "Hold."
          }
        ],
        "total_shots": 32
      },
      "path": "afterimage/state/visual/camera_tested/ep_010.json"
    },
    {
      "data": {
        "episode_id": "EP011",
        "project": "leviathan",
        "shots": [
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 1,
            "source_text": "Sadie sprints down neon-lit streets toward the bar."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 2,
            "source_text": "The city fights her \u2014"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 3,
            "source_text": "streetlights shut off in sequence,"
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 4,
            "source_text": "chasing her down the block."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 5,
            "source_text": "Rain goes horizontal."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 6,
            "source_text": "Crosswalk signs flash hostile red data."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 7,
            "source_text": "The bar's neon sign flickers OFF for the first time in the series."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 8,
            "source_text": "5-8 fast cuts."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 9,
            "source_text": "Each connects to a prior image \u2014"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 10,
            "source_text": "the same neon,"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 11,
            "source_text": "the same rain,"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 12,
            "source_text": "the same street,"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 13,
            "source_text": "now weaponized."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 14,
            "source_text": "[VO: SADIE \u2014 perfectly still and domestic, over the sprint] \"The apartment smells like cold coffee again."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 15,
            "source_text": "Just cold coffee."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 16,
            "source_text": "I sat on the kitchen floor last night because \u2014 I don't know."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 17,
            "source_text": "I wanted to be lower."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 18,
            "source_text": "Closer to something."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 19,
            "source_text": "I keep reaching for my left ear."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 20,
            "source_text": "The earring's been gone for months."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 21,
            "source_text": "I don't remember losing it.\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 22,
            "source_text": "Sadie at the bar's door."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 23,
            "source_text": "She grabs the handle."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 24,
            "source_text": "The neon is off."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 25,
            "source_text": "The sign is dark."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 26,
            "source_text": "ABSENCE \u2014 the thing she ran toward has gone dark."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 27,
            "source_text": "She stands in the rain at a dark door."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 28,
            "source_text": "Hold."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 29,
            "source_text": "WORLD VOTE"
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 30,
            "source_text": "**[DM_PROMPT]** What she sees through the dark bar window:"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 31,
            "source_text": "* [A] An empty stool, pulled out"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 32,
            "source_text": "* [B] A single glass, catching light that shouldn't be there"
          }
        ],
        "total_shots": 32
      },
      "path": "afterimage/state/visual/camera_tested/ep_011.json"
    },
    {
      "data": {
        "episode_id": "EP012",
        "project": "fracture",
        "shots": [
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "[00:00-00:05] BREAK",
            "scene_index": 1,
            "shot_index": 1,
            "source_text": "The photograph. Full screen. Full color."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 2,
            "source_text": "Found document \u2014 shown directly to the audience."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 3,
            "source_text": "Two people at a bar."
          },
          {
            "characters_mentioned": [
              "Dusty"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 4,
            "source_text": "The man is Dusty."
          },
          {
            "characters_mentioned": [
              "Woman"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 5,
            "source_text": "The woman's face catches neon and washes out \u2014 unresolvable."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 6,
            "source_text": "But the earring is sharp. Silver."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 7,
            "source_text": "The glass is in the photo \u2014 the same glass."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 8,
            "source_text": "Grain of a printed photo. Edges curled."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "[00:05-00:30] AFTERMATH \u2014 MONOCHROME",
            "scene_index": 2,
            "shot_index": 9,
            "source_text": "The bar goes black-and-white."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 10,
            "source_text": "All neon signs glow white instead of magenta."
          },
          {
            "characters_mentioned": [
              "Dusty"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 11,
            "source_text": "Dusty in monochrome."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 12,
            "source_text": "The only color: the earring in the photograph, retaining its impossible silver-refracting quality."
          },
          {
            "characters_mentioned": [
              "Dusty"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 13,
            "source_text": "[VO: DUSTY] \"You look at a photo of yourself and you should know.\""
          },
          {
            "characters_mentioned": [],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 14,
            "source_text": "\"You should recognize the bar you've owned for six years.\""
          },
          {
            "characters_mentioned": [],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 15,
            "source_text": "\"The stool. The glass.\""
          },
          {
            "characters_mentioned": [
              "Woman"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 16,
            "source_text": "\"The woman beside you. You should know her name.\""
          },
          {
            "characters_mentioned": [
              "Dusty"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 17,
            "source_text": "He holds the photo up to the neon."
          },
          {
            "characters_mentioned": [
              "Woman"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 18,
            "source_text": "Her face disappears in the light."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 19,
            "source_text": "The earring stays sharp."
          },
          {
            "characters_mentioned": [
              "Dusty"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 20,
            "source_text": "His hand closes on the bar surface."
          },
          {
            "characters_mentioned": [
              "Dusty"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 21,
            "source_text": "Knuckles white."
          },
          {
            "characters_mentioned": [
              "Dusty"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 22,
            "source_text": "He sweeps the glass off the bar \u2014 the connective object \u2014"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 23,
            "source_text": "and it SHATTERS."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 24,
            "source_text": "Silence."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 25,
            "source_text": "Glass on the floor."
          },
          {
            "characters_mentioned": [
              "Dusty"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 26,
            "source_text": "He doesn't clean it up."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 27,
            "source_text": "Overhead lights flicker."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 28,
            "source_text": "One burns out."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "[00:28-00:30] LINGER",
            "scene_index": 5,
            "shot_index": 29,
            "source_text": "The shattered glass on the bar floor. Monochrome."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 5,
            "shot_index": 30,
            "source_text": "The photo beside it."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 5,
            "shot_index": 31,
            "source_text": "The earring \u2014 the only color in the frame. Hold."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "ORACLE",
            "scene_index": 6,
            "shot_index": 32,
            "source_text": "**[DM_PROMPT]** The photo proves they were together. Now they're apart."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 6,
            "shot_index": 33,
            "source_text": "* [A] Find * [B] Release"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 6,
            "shot_index": 34,
            "source_text": "[Oracle in monochrome. White text on B&W image.]"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 6,
            "shot_index": 35,
            "source_text": "[The earring's color is the only non-monochrome element beside the vote text.]"
          }
        ],
        "total_shots": 35
      },
      "path": "afterimage/state/visual/camera_tested/ep_012.json"
    },
    {
      "data": {
        "episode_id": "EP013",
        "project": "leviathan",
        "shots": [
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 1,
            "source_text": "Camera starts on Sadie's hand pushing open her apartment door."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 2,
            "source_text": "Tracks her from behind down the stairwell \u2014"
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 3,
            "source_text": "her footsteps echo, the compressor hum growing louder with each floor."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 4,
            "source_text": "Rain-sound floods through the building's front door as she passes it."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 5,
            "source_text": "She reaches the bar door."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 6,
            "source_text": "The compressor hum \u2014 the sound from the voicemails \u2014 fills the stairwell."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 7,
            "source_text": "She recognizes it."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 8,
            "source_text": "We see it in her shoulders."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 9,
            "source_text": "She pushes the bar door open."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 10,
            "source_text": "Steps through."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 11,
            "source_text": "Her foot lands on linoleum."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 12,
            "source_text": "Her kitchen."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 13,
            "source_text": "The camera is still behind her \u2014 it never cut."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 14,
            "source_text": "The door she just opened is her apartment door."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 15,
            "source_text": "The stairwell is gone."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 16,
            "source_text": "The bar is gone."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 17,
            "source_text": "She is standing in her own kitchen, hand still on the handle."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 18,
            "source_text": "The compressor hum fades to the radiator tick she hears every night."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 19,
            "source_text": "The coffee maker clicks."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 20,
            "source_text": "No VO for the first 18 seconds. Just the journey: apartment quiet, stairwell echo, rain, the compressor growing, the bar door \u2014 then the spatial loop."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 21,
            "source_text": "Silence as she stands in her own kitchen."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 22,
            "source_text": "[VO: SADIE \u2014 quiet, almost to herself] \"I went down.\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 23,
            "source_text": "\"I know I went down.\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 24,
            "source_text": "\"The stairs.\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 25,
            "source_text": "\"The rain.\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 26,
            "source_text": "\"The door.\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 27,
            "source_text": "\"But the door opened here.\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 28,
            "source_text": "\"The same counter.\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 29,
            "source_text": "\"The same window.\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 30,
            "source_text": "\"The same phone.\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 31,
            "source_text": "\"I can still hear the compressor through the floor.\""
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 32,
            "source_text": "The episode ends on Sadie in her kitchen."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 33,
            "source_text": "Her hand on the door handle."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 34,
            "source_text": "Through the floor beneath her feet \u2014 the faintest compressor hum."
          },
          {
            "characters_mentioned": [
              "He"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 35,
            "source_text": "He is down there."
          },
          {
            "characters_mentioned": [
              "Sadie",
              "He"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 36,
            "source_text": "She cannot get to him."
          }
        ],
        "total_shots": 36
      },
      "path": "afterimage/state/visual/camera_tested/ep_013.json"
    },
    {
      "data": {
        "episode_id": "EP014",
        "project": "leviathan",
        "shots": [
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "SPLIT SCREEN",
            "scene_index": 1,
            "shot_index": 1,
            "source_text": "The frame cracks vertically."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": "SPLIT SCREEN",
            "scene_index": 1,
            "shot_index": 2,
            "source_text": "Top half: Sadie's apartment."
          },
          {
            "characters_mentioned": [
              "Dusty"
            ],
            "has_dialogue": false,
            "location_hint": "SPLIT SCREEN",
            "scene_index": 1,
            "shot_index": 3,
            "source_text": "Bottom half: Dusty's bar."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "SPLIT SCREEN",
            "scene_index": 1,
            "shot_index": 4,
            "source_text": "The ceiling/floor between them is the dividing line."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "SPLIT SCREEN",
            "scene_index": 1,
            "shot_index": 5,
            "source_text": "Same building. Different floors."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": "SPLIT SCREEN",
            "scene_index": 2,
            "shot_index": 6,
            "source_text": "Top: Sadie at her kitchen counter."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "SPLIT SCREEN",
            "scene_index": 2,
            "shot_index": 7,
            "source_text": "Phone on the surface."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": "SPLIT SCREEN",
            "scene_index": 2,
            "shot_index": 8,
            "source_text": "She lifts her coffee cup."
          },
          {
            "characters_mentioned": [
              "Dusty"
            ],
            "has_dialogue": false,
            "location_hint": "SPLIT SCREEN",
            "scene_index": 2,
            "shot_index": 9,
            "source_text": "Bottom: Dusty behind the bar."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "SPLIT SCREEN",
            "scene_index": 2,
            "shot_index": 10,
            "source_text": "Glass on the surface."
          },
          {
            "characters_mentioned": [
              "Dusty"
            ],
            "has_dialogue": false,
            "location_hint": "SPLIT SCREEN",
            "scene_index": 2,
            "shot_index": 11,
            "source_text": "He polishes a glass."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "SPLIT SCREEN",
            "scene_index": 3,
            "shot_index": 12,
            "source_text": "Synchronized gestures:"
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": "SPLIT SCREEN",
            "scene_index": 3,
            "shot_index": 13,
            "source_text": "when she looks out her window,"
          },
          {
            "characters_mentioned": [
              "Dusty"
            ],
            "has_dialogue": false,
            "location_hint": "SPLIT SCREEN",
            "scene_index": 3,
            "shot_index": 14,
            "source_text": "he looks up at his ceiling."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": "SPLIT SCREEN",
            "scene_index": 3,
            "shot_index": 15,
            "source_text": "When she puts her hand on the counter,"
          },
          {
            "characters_mentioned": [
              "Dusty"
            ],
            "has_dialogue": false,
            "location_hint": "SPLIT SCREEN",
            "scene_index": 3,
            "shot_index": 16,
            "source_text": "his drifts to the bar surface."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": "SPLIT SCREEN",
            "scene_index": 4,
            "shot_index": 17,
            "source_text": "[VO: SADIE - top half] \"I can hear the music from downstairs. I've heard it every night for two years. I never went down.\""
          },
          {
            "characters_mentioned": [
              "Dusty"
            ],
            "has_dialogue": true,
            "location_hint": "SPLIT SCREEN",
            "scene_index": 4,
            "shot_index": 18,
            "source_text": "[VO: DUSTY - bottom half] \"You hear footsteps above you. Every night. Same time. You've never gone up.\""
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "SPLIT SCREEN",
            "scene_index": 5,
            "shot_index": 19,
            "source_text": "Through the bar window (bottom half), the view changes - not the street."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": "SPLIT SCREEN",
            "scene_index": 5,
            "shot_index": 20,
            "source_text": "Her apartment window, seen from outside."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "SPLIT SCREEN",
            "scene_index": 5,
            "shot_index": 21,
            "source_text": "The spaces are folding."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "SPLIT SCREEN",
            "scene_index": 5,
            "shot_index": 22,
            "source_text": "SPATIAL COLLAPSE."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "SPLIT SCREEN",
            "scene_index": 5,
            "shot_index": 23,
            "source_text": "The dividing line between the two halves narrows through the episode"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "SPLIT SCREEN",
            "scene_index": 5,
            "shot_index": 24,
            "source_text": "but never closes."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "LINGER",
            "scene_index": 6,
            "shot_index": 25,
            "source_text": "LINGER (8s)"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "LINGER",
            "scene_index": 6,
            "shot_index": 26,
            "source_text": "Both halves."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": "LINGER",
            "scene_index": 6,
            "shot_index": 27,
            "source_text": "She looking down."
          },
          {
            "characters_mentioned": [
              "Dusty"
            ],
            "has_dialogue": false,
            "location_hint": "LINGER",
            "scene_index": 6,
            "shot_index": 28,
            "source_text": "He looking up."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "LINGER",
            "scene_index": 6,
            "shot_index": 29,
            "source_text": "The line between them - the floor/ceiling -"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "LINGER",
            "scene_index": 6,
            "shot_index": 30,
            "source_text": "as thin as possible."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "LINGER",
            "scene_index": 6,
            "shot_index": 31,
            "source_text": "But still there."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "WORLD VOTE",
            "scene_index": 7,
            "shot_index": 32,
            "source_text": "WORLD VOTE"
          },
          {
            "characters_mentioned": [
              "Dusty",
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": "WORLD VOTE",
            "scene_index": 7,
            "shot_index": 33,
            "source_text": "**[DM_PROMPT]** What he pours for her:"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "WORLD VOTE",
            "scene_index": 7,
            "shot_index": 34,
            "source_text": "* [A] The rye and orange peel"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "WORLD VOTE",
            "scene_index": 7,
            "shot_index": 35,
            "source_text": "* [B] Ice water"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "WORLD VOTE",
            "scene_index": 7,
            "shot_index": 36,
            "source_text": "[Same vote appears on BOTH halves simultaneously."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": "WORLD VOTE",
            "scene_index": 7,
            "shot_index": 37,
            "source_text": "One question, two perspectives.]"
          }
        ],
        "total_shots": 37
      },
      "path": "afterimage/state/visual/camera_tested/ep_014.json"
    },
    {
      "data": {
        "episode_id": "EP015",
        "project": "leviathan",
        "shots": [
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 1,
            "source_text": "The bar window."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 2,
            "source_text": "Rain."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 3,
            "source_text": "Neon."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 4,
            "source_text": "Two people standing side by side."
          },
          {
            "characters_mentioned": [
              "Dusty"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 5,
            "source_text": "Dusty has come out from behind the bar \u2014 his territory, his ledger, his control surface \u2014"
          },
          {
            "characters_mentioned": [
              "Dusty"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 6,
            "source_text": "and stands in the open room."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 7,
            "source_text": "Sadie has risen from the stool."
          },
          {
            "characters_mentioned": [
              "Dusty",
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 8,
            "source_text": "They are at the glass."
          },
          {
            "characters_mentioned": [
              "Sadie",
              "Dusty"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 9,
            "source_text": "[VO: SADIE] \"I can feel him beside me. Not see \u2014 feel. The way the air gets heavier when someone is watching you.\""
          },
          {
            "characters_mentioned": [
              "Dusty",
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 10,
            "source_text": "[VO: DUSTY] \"You know that if you touch her, the system corrects itself. The voicemails stop. The seat goes cold. You don't close your eyes this time.\""
          },
          {
            "characters_mentioned": [
              "Sadie",
              "Dusty"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 11,
            "source_text": "[VO: SADIE] \"He's right there. I know it the way I know the phone is on the counter.\""
          },
          {
            "characters_mentioned": [
              "Dusty",
              "Sadie"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 12,
            "source_text": "[VO: DUSTY] \"You can see her. In the reflection. In the rain on the glass. She's\u2014\""
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 13,
            "source_text": "The rain on the window falls upward for three seconds."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 14,
            "source_text": "Then corrects."
          },
          {
            "characters_mentioned": [
              "Dusty",
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 15,
            "source_text": "Nobody acknowledges it."
          },
          {
            "characters_mentioned": [
              "Dusty",
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 16,
            "source_text": "He sees her reflection."
          },
          {
            "characters_mentioned": [
              "Dusty"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 17,
            "source_text": "He reaches toward the glass."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 18,
            "source_text": "The neon pulses faster."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 19,
            "source_text": "Sound escalates."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 20,
            "source_text": "Every cue says: this is the moment."
          },
          {
            "characters_mentioned": [
              "Dusty"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 5,
            "shot_index": 21,
            "source_text": "His hand stops."
          },
          {
            "characters_mentioned": [
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 5,
            "shot_index": 22,
            "source_text": "Her hand stops."
          },
          {
            "characters_mentioned": [
              "Dusty",
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 5,
            "shot_index": 23,
            "source_text": "Both on the glass, inches apart."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 5,
            "shot_index": 24,
            "source_text": "The neon slows."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 5,
            "shot_index": 25,
            "source_text": "The rain softens."
          },
          {
            "characters_mentioned": [
              "Dusty"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 5,
            "shot_index": 26,
            "source_text": "His choice."
          },
          {
            "characters_mentioned": [
              "Dusty"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 5,
            "shot_index": 27,
            "source_text": "He understands that reaching through ends the voicemails,"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 5,
            "shot_index": 28,
            "source_text": "ends the warmth on seat seven,"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 5,
            "shot_index": 29,
            "source_text": "ends the presence."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 5,
            "shot_index": 30,
            "source_text": "The mystery IS the relationship."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 5,
            "shot_index": 31,
            "source_text": "The barrier is what makes the intimacy possible."
          },
          {
            "characters_mentioned": [
              "Dusty",
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 6,
            "shot_index": 32,
            "source_text": "Two reflections in the glass."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 6,
            "shot_index": 33,
            "source_text": "Separated by something as thin as a window."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 6,
            "shot_index": 34,
            "source_text": "RHYME with Episode 1's single reflection \u2014 now there are two."
          },
          {
            "characters_mentioned": [
              "Dusty",
              "Sadie"
            ],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 7,
            "shot_index": 35,
            "source_text": "**[DM_PROMPT]** What appears between their reflections:"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 7,
            "shot_index": 36,
            "source_text": "* [A] A breath fogging the glass"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 7,
            "shot_index": 37,
            "source_text": "* [B] The earring's light, catching once"
          }
        ],
        "total_shots": 37
      },
      "path": "afterimage/state/visual/camera_tested/ep_015.json"
    },
    {
      "data": {
        "episode_id": "EP016",
        "project": "leviathan",
        "shots": [
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 1,
            "source_text": "Rain on glass."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 2,
            "source_text": "Neon blurred behind it."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 3,
            "source_text": "The same city,"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 4,
            "source_text": "the same night,"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 5,
            "source_text": "the same window."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 6,
            "source_text": "Exact match to Episode 1."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 7,
            "source_text": "The audience recognizes the frame before a word is spoken."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 8,
            "source_text": "The neon is the same color but warmer."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 1,
            "shot_index": 9,
            "source_text": "The city's glow has shifted from observation to embrace."
          },
          {
            "characters_mentioned": [
              "SADIE"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 10,
            "source_text": "[VO: SADIE] \"I keep the phone on the counter."
          },
          {
            "characters_mentioned": [
              "SADIE"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 11,
            "source_text": "Face down."
          },
          {
            "characters_mentioned": [
              "SADIE"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 12,
            "source_text": "The number hasn't called in a week."
          },
          {
            "characters_mentioned": [
              "SADIE"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 13,
            "source_text": "I don't need it to."
          },
          {
            "characters_mentioned": [
              "SADIE"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 14,
            "source_text": "The bar is open until two."
          },
          {
            "characters_mentioned": [
              "SADIE"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 15,
            "source_text": "He leaves a glass out for me \u2014"
          },
          {
            "characters_mentioned": [
              "SADIE"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 16,
            "source_text": "seat seven."
          },
          {
            "characters_mentioned": [
              "SADIE"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 17,
            "source_text": "Every night, the same time."
          },
          {
            "characters_mentioned": [
              "SADIE"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 18,
            "source_text": "I can almost see him now."
          },
          {
            "characters_mentioned": [
              "SADIE"
            ],
            "has_dialogue": true,
            "location_hint": null,
            "scene_index": 2,
            "shot_index": 19,
            "source_text": "Almost.\""
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 20,
            "source_text": "Rain on glass."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 21,
            "source_text": "Same frame as Episode 1."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 22,
            "source_text": "But in the reflection \u2014"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 23,
            "source_text": "two shapes."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 24,
            "source_text": "Closer than Episode 15."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 25,
            "source_text": "Not touching."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 26,
            "source_text": "But closer."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 27,
            "source_text": "The neon makes them glow."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 28,
            "source_text": "The rain falls normally."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 29,
            "source_text": "Peacefully."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 30,
            "source_text": "The system has either repaired itself"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 31,
            "source_text": "or stopped trying."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 3,
            "shot_index": 32,
            "source_text": "Hold."
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 33,
            "source_text": "**[DM_PROMPT]** What remains?"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 34,
            "source_text": "* [A] The rain"
          },
          {
            "characters_mentioned": [],
            "has_dialogue": false,
            "location_hint": null,
            "scene_index": 4,
            "shot_index": 35,
            "source_text": "* [B] The warmth"
          }
        ],
        "total_shots": 35
      },
      "path": "afterimage/state/visual/camera_tested/ep_016.json"
    },
    {
      "data": {
        "characters": {
          "DUSTY": {
            "bible_synced": true,
            "grid_session_id": "e1e7183f",
            "hero_path": "assets/identity/dusty/hero.png",
            "hero_source": "grid_session",
            "status": "hero_selected"
          },
          "SADIE": {
            "bible_synced": false,
            "grid_session_id": "d8b3e072",
            "hero_path": "assets/identity/sadie/hero.jpg",
            "hero_selected_at": 1775498731.355437,
            "hero_source": "console_assets",
            "status": "hero_selected"
          },
          "WIDOWER": {
            "bible_synced": true,
            "grid_session_id": "5928dda4",
            "hero_path": "assets/identity/widower/hero.png",
            "hero_source": "grid_session",
            "status": "hero_selected"
          }
        },
        "grid_sessions": {
          "5928dda4": {
            "anchor": {
              "mood_text": "desaturated cool greys, muted charcoal, warm beige tones, grounded, unvarnished, subtle ruggedness, finely detailed, authentic realism, contemporary, unembellished",
              "path": "assets/identity/widower/widower_hero.png",
              "source": "provided"
            },
            "asset_type": "character",
            "beauty_pass_path": null,
            "candidates": [
              {
                "path": null,
                "re_roll_generation": 0,
                "slot": 0,
                "state": "empty"
              },
              {
                "path": null,
                "re_roll_generation": 0,
                "slot": 1,
                "state": "empty"
              },
              {
                "path": null,
                "re_roll_generation": 0,
                "slot": 2,
                "state": "empty"
              },
              {
                "path": null,
                "re_roll_generation": 0,
                "slot": 3,
                "state": "empty"
              },
              {
                "path": null,
                "re_roll_generation": 0,
                "slot": 4,
                "state": "empty"
              },
              {
                "path": null,
                "re_roll_generation": 0,
                "slot": 5,
                "state": "empty"
              }
            ],
            "collapsed_override": "",
            "cost": 0.0,
            "descriptor": {
              "aspect_ratio": "1:1",
              "beauty_pass": true,
              "beauty_pass_model_role": "production",
              "beauty_pass_temp": 0.2,
              "diegetic_frame": "A premium television casting director's on-location makeup and wardrobe screen test.",
              "generation_strategy": "composite_grid",
              "grid_format": "2x3",
              "model_role": "exploration",
              "prompt_template": "casting_director",
              "ref_handling": {
                "inline_ref": false,
                "strategy": "vision_extraction"
              },
              "temperature": 0.68
            },
            "hero_locked": true,
            "hero_path": "assets/identity/widower/widower_hero.png",
            "parent_context": {
              "character_id": "WIDOWER"
            },
            "re_roll_count": 0,
            "session_id": "5928dda4",
            "status": "hero_locked",
            "user_overrides": []
          },
          "d8b3e072": {
            "anchor": {
              "mood_text": "Desaturated cool tones, pale skin, muted off-whites, gritty, decaying, worn, dystopian urban realism, cyberpunk melancholia.",
              "path": "assets/identity/sadie/sadie_hero.png",
              "source": "provided"
            },
            "asset_type": "character",
            "beauty_pass_error": null,
            "beauty_pass_path": null,
            "candidates": [
              {
                "path": null,
                "re_roll_generation": 0,
                "slot": 0,
                "state": "empty"
              },
              {
                "path": null,
                "re_roll_generation": 0,
                "slot": 1,
                "state": "empty"
              },
              {
                "path": null,
                "re_roll_generation": 0,
                "slot": 2,
                "state": "empty"
              },
              {
                "path": null,
                "re_roll_generation": 0,
                "slot": 3,
                "state": "empty"
              },
              {
                "path": null,
                "re_roll_generation": 0,
                "slot": 4,
                "state": "empty"
              },
              {
                "path": null,
                "re_roll_generation": 0,
                "slot": 5,
                "state": "empty"
              }
            ],
            "collapsed_override": "",
            "cost": 0.0,
            "descriptor": {
              "aspect_ratio": "1:1",
              "beauty_pass": true,
              "beauty_pass_model_role": "production",
              "beauty_pass_temp": 0.2,
              "diegetic_frame": "A premium television casting director's on-location makeup and wardrobe screen test.",
              "generation_strategy": "composite_grid",
              "grid_format": "2x3",
              "model_role": "exploration",
              "prompt_template": "casting_director",
              "ref_handling": {
                "inline_ref": false,
                "strategy": "vision_extraction"
              },
              "temperature": 0.68
            },
            "hero_locked": true,
            "hero_path": "assets/identity/sadie/sadie_hero.png",
            "parent_context": {
              "character_id": "SADIE"
            },
            "re_roll_count": 0,
            "session_id": "d8b3e072",
            "status": "hero_locked",
            "user_overrides": []
          },
          "e1e7183f": {
            "anchor": {
              "mood_text": "Rich warm browns, deep amber golds, muted reds, shadowy off-whites, softly glowing, intimate, subdued, neo-noir elegance, vintage warmth.",
              "path": "assets/identity/dusty/dusty_hero.png",
              "source": "provided"
            },
            "asset_type": "character",
            "beauty_pass_path": null,
            "candidates": [
              {
                "path": null,
                "re_roll_generation": 0,
                "slot": 0,
                "state": "empty"
              },
              {
                "path": null,
                "re_roll_generation": 0,
                "slot": 1,
                "state": "empty"
              },
              {
                "path": null,
                "re_roll_generation": 0,
                "slot": 2,
                "state": "empty"
              },
              {
                "path": null,
                "re_roll_generation": 0,
                "slot": 3,
                "state": "empty"
              },
              {
                "path": null,
                "re_roll_generation": 0,
                "slot": 4,
                "state": "empty"
              },
              {
                "path": null,
                "re_roll_generation": 0,
                "slot": 5,
                "state": "empty"
              }
            ],
            "collapsed_override": "",
            "cost": 0.0,
            "descriptor": {
              "aspect_ratio": "1:1",
              "beauty_pass": true,
              "beauty_pass_model_role": "production",
              "beauty_pass_temp": 0.2,
              "diegetic_frame": "A premium television casting director's on-location makeup and wardrobe screen test.",
              "generation_strategy": "composite_grid",
              "grid_format": "2x3",
              "model_role": "exploration",
              "prompt_template": "casting_director",
              "ref_handling": {
                "inline_ref": false,
                "strategy": "vision_extraction"
              },
              "temperature": 0.68
            },
            "hero_locked": true,
            "hero_path": "assets/identity/dusty/dusty_hero.png",
            "parent_context": {
              "character_id": "DUSTY"
            },
            "re_roll_count": 0,
            "session_id": "e1e7183f",
            "status": "hero_locked",
            "user_overrides": []
          }
        },
        "locations": {
          "ext_city_street": {
            "hero_path": "assets/loc/ext_city_street/hero.png",
            "moodboard_picks": []
          },
          "int_dusty_bar": {
            "hero_path": "assets/loc/int_dusty_bar/hero.jpg",
            "hero_selected_at": 1775541699.643344,
            "hero_source": "console_assets",
            "moodboard_picks": []
          },
          "int_sadie_apartment": {
            "hero_path": "assets/loc/int_sadie_apartment/hero.png",
            "hero_selected_at": 1775456484.224412,
            "hero_source": "migration",
            "moodboard_picks": []
          },
          "int_stairwell": {
            "hero_path": "assets/loc/int_stairwell/hero.png",
            "hero_selected_at": 1775456484.224441,
            "hero_source": "migration",
            "moodboard_picks": []
          }
        }
      },
      "path": "afterimage/state/visual/casting_state.json"
    },
    {
      "data": {
        "characters": {
          "DUSTY": {
            "char_id": "DUSTY",
            "display_name": "Dusty",
            "episodes": [
              2,
              4,
              6,
              8,
              10,
              12,
              14,
              15
            ],
            "height_cm": null,
            "phases": [
              {
                "distinguishing_marks": "none",
                "end_ep": 11,
                "hair_makeup": "medium-length slightly tousled dark hair, clean-shaven, matte skin",
                "phase_id": "ph1",
                "phase_trigger_event": "Series start, maintaining the ledger",
                "start_ep": 2,
                "wardrobe_arc_carries": "none",
                "wardrobe_arc_delta": "Baseline bartender uniform",
                "wardrobe_description": "crisp white button-down shirt, rolled sleeves to forearms, dark tailored vest, dark trousers, leather belt, polishing cloth in back pocket"
              },
              {
                "distinguishing_marks": "small cut on right knuckle",
                "end_ep": 16,
                "hair_makeup": "tousled dark hair falling forward, sweat sheen on forehead, tense jaw",
                "phase_id": "ph2",
                "phase_trigger_event": "Shattered the glass, reality went monochrome",
                "start_ep": 12,
                "wardrobe_arc_carries": "dark trousers",
                "wardrobe_arc_delta": "~ unbuttoned collar, ~ wrinkled sleeves, ~ unbuttoned vest, + glass dust on shoes",
                "wardrobe_description": "white button-down shirt, unbuttoned collar, wrinkled sleeves, dark vest unbuttoned, dark trousers, glass dust on leather shoes"
              }
            ],
            "scale_prompt_fragment": null,
            "visual_description": "late 20s to early 30s Japanese man, warm golden-brown skin, angular defined jaw with clean-shaven face, deep-set dark brown eyes steady and watchful with quiet sadness behind composure, thick straight dark eyebrows, broad nose, full lips set in neutral line, medium-length black hair slightly tousled and wavy, lean build with upright posture, large hands, forearms visible where sleeves are rolled",
            "wardrobe_arc_thesis": "Dusty's wardrobe is a system of control that breaks down. The crisp white shirt and tailored vest are his bartender's uniform \u2014 precise, maintained, a container for the chaos of other people's nights. As reality fractures, the uniform degrades: collar loosens, sleeves wrinkle, vest hangs open. The glass dust on his shoes in the final phase is the first thing he can't clean up. His clothes track the dissolution of the only ordered system he had left.",
            "wardrobe_arc_thesis_approved": false,
            "wardrobe_arc_thesis_source": "auto",
            "wardrobe_arc_vision": "Phase 1 palette: stark white against deep charcoal and black \u2014 high contrast, bartender formality. Fabrics are pressed, structured: broadcloth shirt, worsted wool vest, leather watch strap. Everything has a place. Phase 2 pivot: same garments but entropy creeps in \u2014 cotton softens, seams twist, leather darkens with sweat. Reference: Tony Leung in Fallen Angels meets Jake Gyllenhaal in Nightcrawler \u2014 professional composure dissolving from the edges inward."
          },
          "SADIE": {
            "char_id": "SADIE",
            "display_name": "Sadie",
            "episodes": [
              1,
              3,
              5,
              7,
              9,
              11,
              13,
              14,
              15,
              16
            ],
            "height_cm": null,
            "phases": [
              {
                "distinguishing_marks": "empty piercing hole left ear",
                "end_ep": 8,
                "hair_makeup": "messy bun, loose strands, pale complexion with light freckles, soft natural shadows under eyes",
                "phase_id": "ph1",
                "phase_trigger_event": "Series start, trapped in apartment loop",
                "start_ep": 1,
                "wardrobe_arc_carries": "none",
                "wardrobe_arc_delta": "Baseline domestic \u2014 intimate, vulnerable",
                "wardrobe_description": "underwear, occasionally black knit sweater, bare feet, bare left earlobe"
              },
              {
                "distinguishing_marks": "empty piercing hole left ear",
                "end_ep": 16,
                "hair_makeup": "wet hair plastered to face, rain-streaked skin with freckles visible, flushed cheeks",
                "phase_id": "ph2",
                "phase_trigger_event": "Found matchbook in coat, went out into the rain",
                "start_ep": 9,
                "wardrobe_arc_carries": "bare left earlobe",
                "wardrobe_arc_delta": "+ heavy dark trench coat, + dark jeans, + boots",
                "wardrobe_description": "heavy dark trench coat, deep pockets, damp sweater, dark jeans, wet boots, bare left earlobe"
              }
            ],
            "scale_prompt_fragment": null,
            "visual_description": "mid 20s, waif-thin delicate frame, pale luminous skin with cool undertone, light freckles scattered across bridge of nose and cheeks, long platinum blonde hair thin and slightly wavy falling past shoulders, large pale blue eyes with soft natural shadows underneath, high delicate cheekbones, small pointed chin, thin arched eyebrows, small mouth slightly parted, prominent bare collarbones, thin bare arms, birdlike fragile build, empty piercing hole left earlobe",
            "wardrobe_arc_thesis": "Sadie's wardrobe is a cocoon that unravels. In the apartment she wears soft shapeless layers \u2014 oversized knits, bare feet \u2014 the uniform of someone who has stopped expecting the outside world. When the investigation pulls her out, the trench coat becomes armor: heavy, dark, pocketed for evidence. The empty earlobe carries across both phases \u2014 something was removed and never replaced. Her clothes tell the story of a woman transitioning from passive witness to active searcher.",
            "wardrobe_arc_thesis_approved": false,
            "wardrobe_arc_thesis_source": "auto",
            "wardrobe_arc_vision": "Phase 1 palette: cream, oatmeal, soft grey \u2014 fabrics that absorb light rather than reflect it. Chunky cable knit, washed cotton, bare skin. Silhouette is shapeless, protective. Phase 2 pivot: dark navy trench with matte finish, structured shoulders over the same soft underlayer. Wet textures dominate \u2014 damp wool, rain-slicked cotton. Reference: Maggie Cheung in In the Mood for Love meets Scarlett Johansson in Under the Skin."
          },
          "WIDOWER": {
            "char_id": "WIDOWER",
            "display_name": "The Widower",
            "episodes": [
              0,
              4,
              8,
              10,
              12,
              16
            ],
            "height_cm": null,
            "phases": [
              {
                "distinguishing_marks": "none",
                "end_ep": 16,
                "hair_makeup": "salt-and-pepper close-cropped hair, short full beard salt-and-pepper, weathered skin",
                "phase_id": "ph1",
                "phase_trigger_event": "Series start \u2014 the regular",
                "start_ep": 1,
                "wardrobe_arc_carries": "none",
                "wardrobe_arc_delta": "No change \u2014 ritual costume",
                "wardrobe_description": "dark peacoat, collar up, dark trousers, leather shoes"
              }
            ],
            "scale_prompt_fragment": null,
            "visual_description": "early 50s, Caucasian, salt-and-pepper close-cropped hair, short full beard salt-and-pepper, broad shoulders slightly hunched, deep lines around the mouth, tired blue-gray eyes, medium-heavy build, weathered face, large hands",
            "wardrobe_arc_thesis": "The Widower wears the same thing every time \u2014 dark peacoat, collar up, dark trousers, leather shoes. His wardrobe is a uniform of ritual. He dresses the same way he did the night he met his wife. The costume never changes because the night never changes for him.",
            "wardrobe_arc_thesis_approved": false,
            "wardrobe_arc_thesis_source": "auto",
            "wardrobe_arc_vision": null
          }
        },
        "generated_at": "2024-05-24T12:00:00Z",
        "lighting_motifs": [
          {
            "associated_characters": [
              "SADIE",
              "DUSTY"
            ],
            "associated_locations": [
              "int_sadie_apartment",
              "int_dusty_bar"
            ],
            "color_temp": "mixed",
            "description": "Neon light from the city bleeding through wet glass, shifting from cool cyan to warm amber as the connection deepens.",
            "motif_id": "neon_bleed"
          },
          {
            "associated_characters": [
              "DUSTY"
            ],
            "associated_locations": [
              "int_dusty_bar"
            ],
            "color_temp": "cool",
            "description": "Total desaturation of the environment, leaving only the connective object (earring) in color to emphasize the fracture of reality.",
            "motif_id": "monochrome_isolation"
          },
          {
            "associated_characters": [
              "SADIE"
            ],
            "associated_locations": [
              "ext_city_street"
            ],
            "color_temp": "mixed",
            "description": "Harsh, aggressive lighting (flashing red data, streetlights shutting off) when the system actively fights their connection.",
            "motif_id": "system_hostility"
          }
        ],
        "locations": {
          "ext_city_street": {
            "aliases": [
              "neon-lit streets",
              "dark bar window"
            ],
            "atmosphere": "Wet asphalt reflects neon in long distorted streaks \u2014 red, white, amber \u2014 so the ground looks like it's running with color. Rain falls in the sodium glow of streetlights, each drop briefly visible as a bright scratch in the air. The bar's exterior door is a dark rectangle that swallows light. Crosswalk signals click and change for nobody. The city sounds like static with a heartbeat underneath.",
            "color_palette": [
              "#FF0000",
              "#000000",
              "#4F4F4F"
            ],
            "description": "wet asphalt, crosswalk signs, streetlights, dark bar exterior door",
            "habitat_zone": "The City",
            "lighting_profile": {
              "color_temp": "mixed",
              "direction": "ABOVE",
              "primary_source": "streetlights",
              "quality": "hard"
            },
            "location_id": "ext_city_street"
          },
          "int_dusty_bar": {
            "aliases": [
              "A bar",
              "seat seven",
              "bar window"
            ],
            "atmosphere": "Amber pendant light pools on the wooden counter and dissolves into shadow at the edges. The bar smells like citrus peel and old leather. Bottles catch light in vertical columns behind the rail. Seat seven is slightly apart from the others \u2014 the leather worn to a different shade. The room hums with the low murmur of other patrons, but there is a pocket of stillness around that seventh stool, as if the air is denser there.",
            "color_palette": [
              "#FFBF00",
              "#8B4513",
              "#000000"
            ],
            "description": "wooden bar counter, leather stools, seat seven, liquor bottles, glass window, leather seat impression",
            "habitat_zone": "Ground Floor",
            "lighting_profile": {
              "color_temp": "amber",
              "direction": "ABOVE",
              "primary_source": "bar pendants",
              "quality": "mixed"
            },
            "location_id": "int_dusty_bar"
          },
          "int_sadie_apartment": {
            "aliases": [
              "apartment window",
              "kitchen",
              "kitchen counter"
            ],
            "atmosphere": "Cool blue-white fluorescence from the kitchen fixture wars with warm neon bleed through rain-streaked glass \u2014 the apartment never achieves a single color temperature. The radiator ticks arhythmically. When the phone screen lights up face-down on the counter, it throws a brief cyan rectangle onto the ceiling. The space feels held-breath quiet, the kind of silence that makes you aware of your own pulse.",
            "color_palette": [
              "#00FFFF",
              "#00008B",
              "#FFFFFF"
            ],
            "description": "kitchen counter, glass window, rain droplets, radiator, coffee maker, linoleum floor",
            "habitat_zone": "Upper Floors",
            "lighting_profile": {
              "color_temp": "cool",
              "direction": "FRONT",
              "primary_source": "neon sign outside",
              "quality": "soft"
            },
            "location_id": "int_sadie_apartment"
          },
          "int_stairwell": {
            "aliases": [
              "stairwell",
              "down the stairwell"
            ],
            "atmosphere": "Fluorescent tubes buzz at a frequency just below conscious notice \u2014 the kind of sound you only hear when everything else stops. Painted brick walls close in on both sides. The metal handrail is cold enough to feel through a sleeve. Each step echoes twice: once down, once up. The space between Sadie's apartment and Dusty's bar \u2014 vertical separation made architectural. The heavy door at the bottom seals with a pressure change you feel in your ears.",
            "color_palette": [
              "#E0FFFF",
              "#808080",
              "#2F4F4F"
            ],
            "description": "linoleum steps, metal handrail, painted brick walls, heavy metal door",
            "habitat_zone": "Building Transition",
            "lighting_profile": {
              "color_temp": "cool",
              "direction": "ABOVE",
              "primary_source": "fluorescent tubes",
              "quality": "hard"
            },
            "location_id": "int_stairwell"
          }
        },
        "project": "afterimage",
        "props": {
          "bar_matchbook": {
            "associated_characters": [
              "SADIE"
            ],
            "attached_to": null,
            "description": "cardboard matchbook, neon bar logo on cover, handwritten ink phone number inside",
            "episodes": [
              9
            ],
            "is_permanent_attachment": false,
            "prop_id": "bar_matchbook",
            "state_notes": "found in coat pocket (Ep 9)",
            "states": {
              "pristine": "slightly worn edges, ink legible"
            }
          },
          "photograph": {
            "associated_characters": [
              "DUSTY"
            ],
            "attached_to": null,
            "description": "printed photograph, curled edges, visible film grain",
            "episodes": [
              12
            ],
            "is_permanent_attachment": false,
            "prop_id": "photograph",
            "state_notes": "held up to neon light (Ep 12)",
            "states": {
              "pristine": "curled edges, washed-out face, sharp silver earring"
            }
          },
          "sadie_phone": {
            "associated_characters": [
              "SADIE"
            ],
            "attached_to": null,
            "description": "rectangular smartphone, glass screen, glowing notification LED",
            "episodes": [
              1,
              3,
              5,
              7,
              13,
              14,
              16
            ],
            "is_permanent_attachment": false,
            "prop_id": "sadie_phone",
            "state_notes": "face down (Ep 1, 16), pressed to ear (Ep 3), displaying blue spectrogram (Ep 7)",
            "states": {
              "pristine": "face down, glowing LED",
              "spectrogram": "screen up, clinical blue waveform UI"
            }
          },
          "seat_seven_glass": {
            "associated_characters": [
              "DUSTY",
              "SADIE"
            ],
            "attached_to": null,
            "description": "heavy-bottomed rocks glass, clear glass, condensation rings",
            "episodes": [
              2,
              6,
              8,
              12,
              14,
              16
            ],
            "is_permanent_attachment": false,
            "prop_id": "seat_seven_glass",
            "state_notes": "empty with condensation (Ep 2), lip print on rim (Ep 6), shattered on floor (Ep 12)",
            "states": {
              "destroyed": "shattered glass shards on floor",
              "marked": "intact, dark lipstick smudge on rim",
              "pristine": "intact, condensation"
            }
          },
          "silver_earring": {
            "associated_characters": [
              "SADIE",
              "DUSTY"
            ],
            "attached_to": null,
            "description": "silver metal earring, highly reflective surface",
            "episodes": [
              4,
              11,
              12
            ],
            "is_permanent_attachment": false,
            "prop_id": "silver_earring",
            "state_notes": "resting on bar (Ep 4), missing from Sadie's ear (Ep 11), visible in photograph (Ep 12)",
            "states": {
              "pristine": "intact, refracting impossible light"
            }
          }
        },
        "structural_analysis": "Timeline & Phase Math: Sadie appears in odd episodes (1, 3, 5, 7, 9, 11, 13) and shared convergence episodes (14, 15, 16). Dusty appears in even episodes (2, 4, 6, 8, 10, 12) and shared convergence episodes (14, 15). Sadie's Phase 1 (Eps 1-8) is domestic isolation. Phase 2 (Eps 9-16) triggers when she finds the matchbook in her coat and ventures into the rain. Dusty's Phase 1 (Eps 2-11) is the controlled bartender. Phase 2 (Eps 12-16) triggers when he shatters the glass in Ep 12, breaking his ledger-keeping composure. Props: The glass is pristine until Ep 12 where it shatters. The earring appears in Ep 4, is noted missing by Sadie in Ep 11, and appears in the photo in Ep 12. Locations: Sadie's apartment and Dusty's bar are the primary anchors, with the stairwell and street acting as transitional hostility zones.",
        "total_episodes": 16,
        "wardrobe_philosophy": "Clothing in AFTERIMAGE is infrastructure \u2014 like the city itself, it mediates how these characters are perceived and how they perceive themselves. Sadie's soft layers absorb; Dusty's crisp lines contain. As the separation protocol fails, their wardrobes degrade in parallel: her cocoon opens, his container cracks. The shared visual element is texture \u2014 both characters are defined by what their clothes feel like, not what they look like, because this is a story about senses finding channels.",
        "wardrobe_philosophy_approved": false
      },
      "path": "afterimage/state/visual/global_bible.json"
    },
    {
      "data": {
        "passes": {
          "EP001_PASS_TEST_001": {
            "cost_usd": 0.0,
            "created_at": 1776200749.769685,
            "detected_cuts": 0,
            "expected_cuts": 2,
            "pass_id": "EP001_PASS_TEST_001",
            "retry_strategy": null,
            "segment_shot_ids": [
              "EP001_SH03",
              "EP001_SH04",
              "EP001_SH13"
            ],
            "segment_timestamps": {},
            "status": "pending",
            "takes": [],
            "updated_at": 1776200749.769685,
            "video_path": null
          },
          "EP001_PASS_TEST_002": {
            "cost_usd": 3.034,
            "created_at": 1776200786.1854122,
            "detected_cuts": 0,
            "expected_cuts": 2,
            "pass_id": "EP001_PASS_TEST_002",
            "retry_strategy": null,
            "segment_shot_ids": [
              "EP001_SH03",
              "EP001_SH04",
              "EP001_SH13"
            ],
            "segment_timestamps": {},
            "status": "complete",
            "takes": [
              {
                "cost_usd": 3.034,
                "take_number": 1,
                "video_path": "afterimage/renders/ep_001/EP001_PASS_TEST_002_take1.mp4"
              }
            ],
            "updated_at": 1776200952.250429,
            "video_path": null
          }
        }
      },
      "path": "afterimage/state/visual/passes/ep_001_pass_state.json"
    },
    {
      "data": {
        "episode_id": "EP001",
        "generated_at": "2023-10-25T00:00:00Z",
        "project": "Starsend",
        "shots": [
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "muffled city traffic, distant thunder",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "static framing, deep depth of field, high contrast shadows",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "LEFT",
                    "intensity": "moderate",
                    "motivator": "streetlamp through window",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "stillness, atmospheric haze, sharp focus on counter edge",
                "emotion_line": "anticipation, emptiness, cold isolation",
                "environment_line": "dim apartment kitchen, linoleum floor, shadows stretching across room",
                "subject_line": "empty kitchen counter, dark room, rain-streaked window in background"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP001_SH01",
            "source_text": "## THE MOMENT",
            "source_text_hash": "3e9319e5f947a6e20e758068980149e0",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "sadie_phone",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low hum of refrigerator",
              "dialogue": [],
              "foley_action": "subtle electronic buzz"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "macro focus on phone edge, subtle light halation, static composition",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "BELOW",
                    "intensity": "dim",
                    "motivator": "phone notification LED",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "macro photography, shallow depth of field, glowing edge light",
                "emotion_line": "dread, technological intrusion, focal point",
                "environment_line": "worn kitchen counter, dark background",
                "subject_line": "smartphone face-down on counter, glowing notification light bleeding onto surface"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 2,
            "shot_id": "EP001_SH02",
            "source_text": "The phone glowing face-down on the counter.",
            "source_text_hash": "9b128a8243b188d81fd4904374598fe0",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "dread",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "rain hitting glass",
              "dialogue": [],
              "foley_action": "shallow breathing"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "50mm",
              "kinetic_action": "slow optical push-in, micro-tension in jaw, eyes fixed off-screen right",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "LEFT",
                    "intensity": "moderate",
                    "motivator": "streetlamp through window",
                    "quality": "soft"
                  },
                  {
                    "color_temp": "blue",
                    "direction": "RIGHT",
                    "intensity": "dim",
                    "motivator": "phone glow reflection",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow push-in, sharp focus on eyes, subtle catchlight",
                "emotion_line": "paralysis, knowing dread, hyper-awareness",
                "environment_line": "shadowy apartment interior, out of focus background",
                "subject_line": "SADIE, standing still, head turned slightly right, eyes locked on off-screen object"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 3,
            "shot_id": "EP001_SH03",
            "source_text": "She knows it's there.",
            "source_text_hash": "5858210fc4985b5a03a97535f4aeb457",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "tense",
                  "screen_position": "left",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [
                {
                  "prop_id": "sadie_phone",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "heavy rain outside",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "static framing, rigid posture, hands clenched at sides",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "LEFT",
                    "intensity": "moderate",
                    "motivator": "streetlamp through window",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "deep depth of field, high contrast, static composition",
                "emotion_line": "resistance, frozen in place, tension",
                "environment_line": "kitchen counter in foreground, dark apartment, rain-streaked window",
                "subject_line": "SADIE, standing a few feet from kitchen counter, arms rigid at sides, staring at phone on counter"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 5
            },
            "scene_index": 4,
            "shot_id": "EP001_SH04",
            "source_text": "She doesn't pick it up.",
            "source_text_hash": "354eac3d2ed5f371504a00b44bb503a8",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "heavy rain on pavement, distant siren",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "24mm",
              "kinetic_action": "static framing, rain streaks blurring lights, deep focus",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "ABOVE",
                    "intensity": "bright",
                    "motivator": "streetlights",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "wide establishing shot, atmospheric perspective, rain distortion",
                "emotion_line": "urban isolation, cold, desolate",
                "environment_line": "city street at night, heavy rain, reflections on wet pavement",
                "subject_line": "empty wet asphalt street, glowing crosswalk signs, dark building facades"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 5,
            "shot_id": "EP001_SH05",
            "source_text": "## NARRATIVE SCRIPT ### [00:00-00:04] ENTRY IMAGE",
            "source_text_hash": "06cd40a1e89ddc05a5708b1eb31fc146",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "pattering rain on glass",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "macro focus on water droplets, background completely blurred, static camera",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "BEHIND",
                    "intensity": "moderate",
                    "motivator": "neon sign outside",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "macro photography, shallow depth of field, specular highlights on water",
                "emotion_line": "melancholy, barrier, weeping",
                "environment_line": "apartment window, dark interior, blurred city lights outside",
                "subject_line": "water droplets clinging to glass pane, sliding downward"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 6,
            "shot_id": "EP001_SH06",
            "source_text": "Rain on glass.",
            "source_text_hash": "ee31df7e83505766b1d3f65b79c3b9c0",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "electric hum of neon, rain",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "rack focus from glass to neon sign, light blooming in lens",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "bright",
                    "motivator": "neon bar sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "lens flare, bokeh, color bleed, rack focus effect",
                "emotion_line": "intoxicating, overwhelming, urban pulse",
                "environment_line": "looking out apartment window into city night",
                "subject_line": "blurred neon sign glowing through rain-streaked glass, red and orange light bleeding"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 7,
            "shot_id": "EP001_SH07",
            "source_text": "Neon bleeds behind it \u2014",
            "source_text_hash": "cab19753377f11e518d9237a12a550ee",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "whoosh of passing cars on wet road",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pan",
              "focal_length": "35mm",
              "kinetic_action": "slow horizontal pan, motion blur on passing headlights, rhythmic light changes",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "RIGHT",
                    "intensity": "bright",
                    "motivator": "passing car headlights",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow pan right, cinematic lighting, high contrast, wet surfaces",
                "emotion_line": "alive but indifferent, rhythmic, vast",
                "environment_line": "urban canyon, rain pouring, mist rising from grates",
                "subject_line": "wet city street, reflections of traffic lights on asphalt, dark alleyways"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "pan",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 5
            },
            "scene_index": 8,
            "shot_id": "EP001_SH08",
            "source_text": "the city breathing in long, wet pulses.",
            "source_text_hash": "a0138ca0dff318f2a15fff1fa961ab2a",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "wind and rain",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "tilt",
              "focal_length": "50mm",
              "kinetic_action": "smooth downward tilt, vertical motion blur on brick texture",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "FROM_SUBJECT",
                    "intensity": "dim",
                    "motivator": "apartment interior light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "downward camera tilt, architectural framing, moody shadows",
                "emotion_line": "descent, hidden lives, voyeuristic",
                "environment_line": "city building facade, rain falling vertically through frame",
                "subject_line": "dark brick building exterior, single lit window on upper floor"
              },
              "shot_type": "LS"
            },
            "routing_data": {
              "camera_complexity": "tilt",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": true,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 9,
            "shot_id": "EP001_SH09",
            "source_text": "Camera drifts down from an apartment window",
            "source_text_hash": "ba582ccdf668f0b8fdaa6ff3ca2912f2",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "buzzing neon tube",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "tilt",
              "focal_length": "50mm",
              "kinetic_action": "tilt settles on sign, sharp focus, neon flickering slightly",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "neon bar sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "end of tilt movement, high contrast neon against dark brick",
                "emotion_line": "lure, vice, destination",
                "environment_line": "lower level of brick building, dark street below",
                "subject_line": "glowing neon bar sign attached to brick wall, rain splashing off metal casing"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "tilt",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": true,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 10,
            "shot_id": "EP001_SH10",
            "source_text": "to a bar sign one floor below.",
            "source_text_hash": "d8fc12fe4ca0a7cc9a3dcf431b557f22",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "city ambience, rain",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "24mm",
              "kinetic_action": "static framing, wide depth of field, rain falling",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "ABOVE_LEFT",
                    "intensity": "moderate",
                    "motivator": "streetlamp",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "wide establishing shot, architectural scale, static composition",
                "emotion_line": "proximity, inescapable connection, stacked lives",
                "environment_line": "city street corner, wet pavement, dark sky",
                "subject_line": "full view of brick building, lit apartment window above, neon bar sign below"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 11,
            "shot_id": "EP001_SH11",
            "source_text": "Same building.",
            "source_text_hash": "881ea7e6bc201eb48ebb00a3adb294d3",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "silence, faint rain",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "static framing, deep shadows, still air",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "LEFT",
                    "intensity": "dim",
                    "motivator": "streetlamp through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "wide shot, low key lighting, static composition",
                "emotion_line": "anticipation, silence before speaking",
                "environment_line": "dim interior, radiator, window in background",
                "subject_line": "empty apartment living space, shadows stretching across floor"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 12,
            "shot_id": "EP001_SH12",
            "source_text": "### [00:04-00:22] VOICE",
            "source_text_hash": "ad3269b6b579732a5a7b6afa4226f75a",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "haunted",
                  "screen_position": "left",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "quiet, reflective",
                  "is_voiceover": true,
                  "text": "The number."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static framing, shallow depth of field, sharp focus on face",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "LEFT",
                    "intensity": "moderate",
                    "motivator": "streetlamp through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "close up, high contrast lighting, static composition",
                "emotion_line": "haunted, reflective, isolated",
                "environment_line": "dim kitchen, dark background",
                "subject_line": "SADIE, sitting on linoleum floor, knees pulled to chest, gazing off-screen right"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 13,
            "shot_id": "EP001_SH13",
            "source_text": "[VO: SADIE] \"The number.",
            "source_text_hash": "9f20b117a293bea67fb893b969ae54cd",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "anxious",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "matter-of-fact",
                  "is_voiceover": true,
                  "text": "It hasn't worked in two years."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "slow push-in on hands, micro-tremor in fingers, shallow focus",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE_LEFT",
                    "intensity": "dim",
                    "motivator": "streetlamp through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "macro detail, slow push-in, soft shadows",
                "emotion_line": "anxiety, passage of time, nervous habit",
                "environment_line": "dark lap, out of focus floor",
                "subject_line": "SADIE's hands, picking at a loose thread on her oversized knit sweater"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 14,
            "shot_id": "EP001_SH14",
            "source_text": "It hasn't worked in two years.",
            "source_text_hash": "c379377351b93b991ebd0f114d314407",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "distant",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "cold",
                  "is_voiceover": true,
                  "text": "I watched them disconnect it."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "static framing, silhouette against window, motionless",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "BEHIND",
                    "intensity": "bright",
                    "motivator": "streetlamp outside",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "silhouette, high contrast, static composition",
                "emotion_line": "memory, finality, distance",
                "environment_line": "apartment window, rain streaks, dark interior",
                "subject_line": "SADIE, standing by the window, looking out into the rain, back to camera"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 15,
            "shot_id": "EP001_SH15",
            "source_text": "I watched them disconnect it.",
            "source_text_hash": "d463534c9e0e9ac3695c56190e5ef334",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "away-from-camera"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "startled",
                  "screen_position": "background",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "sadie_phone",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "disbelief",
                  "is_voiceover": true,
                  "text": "But it calls."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "rack focus from background SADIE to foreground phone, sudden clarity",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "BELOW",
                    "intensity": "moderate",
                    "motivator": "phone notification LED",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "rack focus, depth of field shift, glowing edge light",
                "emotion_line": "intrusion, impossible reality, shock",
                "environment_line": "kitchen counter, dark apartment",
                "subject_line": "glowing smartphone face-down on counter in sharp foreground, SADIE blurred in background turning around"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 16,
            "shot_id": "EP001_SH16",
            "source_text": "But it calls.",
            "source_text_hash": "3d5fb042134bb74c95cd1f22ed83e412",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "obsessive",
                  "screen_position": "right",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "rhythmic",
                  "is_voiceover": true,
                  "text": "Every night,"
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static framing, rigid posture, eyes wide",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "RIGHT",
                    "intensity": "moderate",
                    "motivator": "streetlamp through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "medium close up, sharp focus, high contrast",
                "emotion_line": "obsession, inescapable cycle",
                "environment_line": "dark apartment, shadows on wall behind her",
                "subject_line": "SADIE, facing left, staring intensely at the counter, tense jaw"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 17,
            "shot_id": "EP001_SH17",
            "source_text": "Every night,",
            "source_text_hash": "7d0131f529930c93e239339d1f4e14ec",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "hypnotized",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "resigned",
                  "is_voiceover": true,
                  "text": "the same time."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "slow push-in, shallow breathing visible in shoulders",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "BELOW_LEFT",
                    "intensity": "dim",
                    "motivator": "phone glow reflection",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow push-in, tight framing, specular highlight in eyes",
                "emotion_line": "hypnotized, trapped, dread",
                "environment_line": "pitch black background",
                "subject_line": "SADIE's face, illuminated from below by blue light, eyes unblinking"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 18,
            "shot_id": "EP001_SH18",
            "source_text": "the same time.",
            "source_text_hash": "717a5eb0a91f9ba06218e4af964b5cff",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "fearful",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "trembling slightly",
                  "is_voiceover": true,
                  "text": "I don't know what he's saying."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "static framing, extreme macro on eye, slight twitch in eyelid",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "phone glow reflection",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "macro photography, sharp focus on iris, static composition",
                "emotion_line": "confusion, searching, fear",
                "environment_line": "darkness",
                "subject_line": "SADIE's eye, extreme close up, reflection of glowing rectangular screen visible in pupil"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 19,
            "shot_id": "EP001_SH19",
            "source_text": "I don't know what he's saying.",
            "source_text_hash": "c73965b754f26c6a5e726a69e0e461ec",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "chilled",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "wind howling faintly",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "hollow",
                  "is_voiceover": true,
                  "text": "It sounds like weather."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pull_back",
              "focal_length": "50mm",
              "kinetic_action": "slow pull-back, shadows enveloping face, rigid stillness",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "LEFT",
                    "intensity": "dim",
                    "motivator": "streetlamp through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow pull-back, fading light, moody atmosphere",
                "emotion_line": "surrender, chilling realization, isolation",
                "environment_line": "dark apartment, rain visible through window behind her",
                "subject_line": "SADIE, face half in shadow, looking down toward the floor"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "pull_back",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 20,
            "shot_id": "EP001_SH20",
            "source_text": "It sounds like weather.\"",
            "source_text_hash": "aeba5b30d31fbec1f9aec2e0e4c15f0d",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "rain, silence",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "static framing, dust motes drifting in light beam",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "LEFT",
                    "intensity": "moderate",
                    "motivator": "streetlamp through window",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "wide shot, deep focus, still atmosphere",
                "emotion_line": "heavy silence, lingering tension",
                "environment_line": "dark apartment, rain shadows moving across the wall",
                "subject_line": "empty kitchen space, counter in foreground, window in background"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 21,
            "shot_id": "EP001_SH21",
            "source_text": "### [00:22-00:30] LINGER",
            "source_text_hash": "05708d0e78c61f0fd2258ec50e0e3a64",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "sadie_phone",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static framing, sharp focus on phone casing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "ambient room light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "close up, shallow depth of field, static composition",
                "emotion_line": "object of dread, waiting",
                "environment_line": "kitchen counter surface, dark background",
                "subject_line": "smartphone resting face-down on worn kitchen counter"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 22,
            "shot_id": "EP001_SH22",
            "source_text": "The phone on the counter.",
            "source_text_hash": "b5d9856dbb737dc98ac409421b3e1c2d",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "sadie_phone",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low electronic hum",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "macro focus on glowing edge, light pulsing slightly",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "BELOW",
                    "intensity": "moderate",
                    "motivator": "phone screen",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "extreme close up, glowing edge light, high contrast",
                "emotion_line": "active threat, technological pulse",
                "environment_line": "macro texture of counter, pitch black background",
                "subject_line": "edge of smartphone face-down, bright blue light spilling onto counter surface"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 23,
            "shot_id": "EP001_SH23",
            "source_text": "Screen lit, face down.",
            "source_text_hash": "875aaff2601bda364787eb2bd6104ce3",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [
                {
                  "prop_id": "sadie_phone",
                  "visibility": "off_screen"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "rain on glass",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "rack focus from phone to window, blue light reflecting in water droplets",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "phone screen reflection",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "macro photography, specular highlights, rack focus",
                "emotion_line": "infection, spreading influence, cold",
                "environment_line": "apartment window, dark night outside",
                "subject_line": "rain droplets on glass pane, reflecting tiny blue rectangular lights"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 24,
            "shot_id": "EP001_SH24",
            "source_text": "The notification glow catches in the rain on the window \u2014",
            "source_text_hash": "5339ca11dde6f614ceb06638d4374e21",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "sadie_phone",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static framing, balanced composition of two light sources",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "LEFT",
                    "intensity": "moderate",
                    "motivator": "streetlamp through window",
                    "quality": "hard"
                  },
                  {
                    "color_temp": "blue",
                    "direction": "RIGHT",
                    "intensity": "dim",
                    "motivator": "phone screen",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "medium shot, dual lighting, high contrast",
                "emotion_line": "duality, coldness, trapped between",
                "environment_line": "dark kitchen interior, space between window and counter",
                "subject_line": "glowing phone on counter right, illuminated rain-streaked window left"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 25,
            "shot_id": "EP001_SH25",
            "source_text": "two sources of light,",
            "source_text_hash": "2c4b737fdbcfe320c06684cca377da69",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "wind draft",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pull_back",
              "focal_length": "35mm",
              "kinetic_action": "slow pull-back, increasing negative space, shadows deepening",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "LEFT",
                    "intensity": "dim",
                    "motivator": "streetlamp through window",
                    "quality": "soft"
                  },
                  {
                    "color_temp": "blue",
                    "direction": "RIGHT",
                    "intensity": "dim",
                    "motivator": "phone screen",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow pull-back, wide composition, stark lighting",
                "emotion_line": "freezing, absolute isolation, bleak",
                "environment_line": "apartment interior, vast shadows, cold atmosphere",
                "subject_line": "wide view of empty kitchen, small blue glow on counter, pale light from window"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "pull_back",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 26,
            "shot_id": "EP001_SH26",
            "source_text": "neither warm.",
            "source_text_hash": "c2581ec1f78da19a49007b3bb8718d8e",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "complete silence",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "static framing, absolutely no movement, frozen time",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "LEFT",
                    "intensity": "dim",
                    "motivator": "streetlamp through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "prolonged static shot, deep focus, unwavering",
                "emotion_line": "suspense, holding breath, eternity",
                "environment_line": "dark apartment, still air",
                "subject_line": "empty kitchen, shadows locked in place"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 5
            },
            "scene_index": 27,
            "shot_id": "EP001_SH27",
            "source_text": "Hold.",
            "source_text_hash": "bcf4f99d900646d6d43c7ccdcf60baf4",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static framing, abstract shadows",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "ambient room light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, minimalist composition",
                "emotion_line": "transition, pause",
                "environment_line": "empty space, liminal",
                "subject_line": "blank wall in dark apartment, subtle texture"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 28,
            "shot_id": "EP001_SH28",
            "source_text": "## WORLD VOTE",
            "source_text_hash": "41c2c52ddb00b67e92b959baf2813d8e",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "faint static crackle",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static framing, soft focus on background",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "LEFT",
                    "intensity": "dim",
                    "motivator": "streetlamp",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static shot, abstract light play",
                "emotion_line": "listening, unseen presence",
                "environment_line": "dark interior wall, projected light from window",
                "subject_line": "shadows of rain sliding down the apartment wall"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 29,
            "shot_id": "EP001_SH29",
            "source_text": "**[DM_PROMPT]** Behind his voice on the voicemail:",
            "source_text_hash": "392b059a5725abc07d18c5a8b6ca9db2",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "heavy rain soundscape",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static framing, water droplets in sharp focus",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "LEFT",
                    "intensity": "moderate",
                    "motivator": "streetlamp",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static composition, high contrast, wet textures",
                "emotion_line": "nature, washing away, relentless",
                "environment_line": "apartment window looking out",
                "subject_line": "heavy rain hitting the window pane, dark city beyond"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 30,
            "shot_id": "EP001_SH30",
            "source_text": "* [A] Rain",
            "source_text_hash": "a51ae522520186d0782c763645f7eaa4",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "faint muffled music through walls",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static framing, soft focus, dust motes dancing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "RIGHT",
                    "intensity": "dim",
                    "motivator": "neon sign reflection",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static composition, atmospheric haze",
                "emotion_line": "nostalgia, haunting melody, distant memory",
                "environment_line": "empty room, subtle warm glow",
                "subject_line": "warm light bleeding into the dark apartment, soft shadows"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 31,
            "shot_id": "EP001_SH31",
            "source_text": "* [B] Music",
            "source_text_hash": "e336754ea17ca23a62a33d7d07b3cd4b",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          }
        ],
        "source_hash": "3e5384971bd9c0d837a6479dfea5d5fa",
        "total_shots": 31
      },
      "path": "afterimage/state/visual/plans/ep_001_plan.json"
    },
    {
      "data": {
        "episode_id": "EP002",
        "generated_at": "2023-10-25T12:00:00Z",
        "project": "Starsend",
        "shots": [
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low hum of distant city traffic, faint refrigerator buzz",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "24mm",
              "kinetic_action": "static frame, deep depth of field, dust motes drifting in light shafts",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "overhead pendant lights",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static composition, atmospheric haze, wide perspective",
                "emotion_line": "lonely, quiet, expectant",
                "environment_line": "int_{char_DUSTY}_bar, dark wood, polished surfaces, shadows",
                "subject_line": "empty wooden bar counter, leather stools lined up"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 5
            },
            "scene_index": 1,
            "shot_id": "EP002_SH01",
            "source_text": "A bar.",
            "source_text_hash": "62aa2c30205c047d2589fa29bd0fe5ed",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "muffled rain against glass",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pan",
              "focal_length": "50mm",
              "kinetic_action": "smooth lateral pan, specular highlights shifting across polished wood",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "BELOW",
                    "intensity": "moderate",
                    "motivator": "under-bar LED strip",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow pan, light catching dust particles, warm glow",
                "emotion_line": "melancholic, intimate",
                "environment_line": "int_{char_DUSTY}_bar, rich textures, low illumination",
                "subject_line": "wooden bar surface, amber light pooling on grain"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "pan",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP002_SH02",
            "source_text": "Low amber light.",
            "source_text_hash": "0fba9211b1db2b08a0bcb4577211fe27",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "faint electrical hum of neon sign",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "shallow depth of field, neon reflections pulsing slightly on glass curves",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "bright",
                    "motivator": "exterior neon sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "macro focus, sharp specular highlights, vibrant color contrast",
                "emotion_line": "vivid, urban isolation",
                "environment_line": "int_{char_DUSTY}_bar, back bar display, dark background",
                "subject_line": "liquor bottles on shelf, neon light refracting through glass"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP002_SH03",
            "source_text": "Bottles catching neon from outside.",
            "source_text_hash": "cf2e4b649c3a1d07e9b8a8feae672835",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "50mm",
              "kinetic_action": "slow forward tracking, parallax shift between stool and bar",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "overhead pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "center-weighted composition, creeping camera movement",
                "emotion_line": "focus, anticipation",
                "environment_line": "int_{char_DUSTY}_bar, shadowed floor, warm wood tones",
                "subject_line": "single leather bar stool, isolated against wooden counter"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP002_SH04",
            "source_text": "One stool",
            "source_text_hash": "5cffa9ea72ae69215994e0ad9b0662b3",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static frame, sharp focus on worn leather texture",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "overhead pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "macro detail, high texture contrast",
                "emotion_line": "ghostly presence",
                "environment_line": "int_{char_DUSTY}_bar, dark background",
                "subject_line": "worn leather seat cushion, slight impression in the center"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP002_SH05",
            "source_text": "\u2014 seat seven \u2014",
            "source_text_hash": "20c70c109e4a3c417259083fab1a4156",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "tilt",
              "focal_length": "50mm",
              "kinetic_action": "downward tilt following the stool leg to the floor",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "BELOW",
                    "intensity": "dim",
                    "motivator": "floor level emergency light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "vertical camera movement, revealing spatial offset",
                "emotion_line": "disruption of order",
                "environment_line": "int_{char_DUSTY}_bar, scuffed floorboards, shadows",
                "subject_line": "base of bar stool, angled away from counter"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "tilt",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": true,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP002_SH06",
            "source_text": "pulled out",
            "source_text_hash": "fff2ab1f1d06b43baafe2acbd737eb13",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "static frame, deep focus showing distance between stool and bar",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "overhead pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "geometric composition, negative space",
                "emotion_line": "abandonment",
                "environment_line": "int_{char_DUSTY}_bar, empty adjacent stools pushed in",
                "subject_line": "bar stool positioned two feet back from the wooden counter"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": true,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP002_SH07",
            "source_text": "from the counter.",
            "source_text_hash": "6313626d2ed566e44f01c6d56c45e0cc",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "50mm",
              "kinetic_action": "slow push in on the empty space above the stool",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "ambient bar lighting",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "creeping camera, framing an invisible subject",
                "emotion_line": "eerie, suggestive",
                "environment_line": "int_{char_DUSTY}_bar, blurred background bottles",
                "subject_line": "empty space above pulled-out stool"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP002_SH08",
            "source_text": "As if someone",
            "source_text_hash": "67d33b41ea973f3d5ffaeb201e338a82",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": "faint creak of leather decompressing"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static frame, dust motes swirling in the air where a body would be",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "overhead pendant light",
                    "quality": "mixed"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "micro-movement of dust, still composition",
                "emotion_line": "lingering presence",
                "environment_line": "int_{char_DUSTY}_bar, dark out-of-focus background",
                "subject_line": "air above the stool, illuminated dust particles"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP002_SH09",
            "source_text": "just stood up.",
            "source_text_hash": "41be452c2ded115a741a71080aa04baa",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "observant",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover, reflective",
                  "is_voiceover": true,
                  "text": "You notice things behind a bar."
                }
              ],
              "foley_action": "cloth sliding over polished wood"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "subtle motion blur on hands wiping counter, static torso",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE_LEFT",
                    "intensity": "moderate",
                    "motivator": "pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "rhythmic wiping motion, centered framing",
                "emotion_line": "contemplative, methodical",
                "environment_line": "int_{char_DUSTY}_bar, liquor bottles in background, warm wood",
                "subject_line": "{char_DUSTY} standing behind bar, wiping wood with cloth, looking down"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP002_SH10",
            "source_text": "[VO: DUSTY] \"You notice things behind a bar.\"",
            "source_text_hash": "ab0b2731c5a5cb3c70ea1c83e832b4b3",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "analytical",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "",
                  "is_voiceover": false,
                  "text": "You learn to read a room"
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "slow push in, eyes scanning off-camera, slight head turn",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "RIGHT",
                    "intensity": "moderate",
                    "motivator": "neon sign reflection",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "smooth camera push, sharp focus on eyes",
                "emotion_line": "calculating, analytical",
                "environment_line": "int_{char_DUSTY}_bar, blurred background",
                "subject_line": "{char_DUSTY} looking up from counter, eyes tracking left to right"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP002_SH11",
            "source_text": "\"You learn to read a room\"",
            "source_text_hash": "599b3deb06e17bc7ba2b83007a17232d",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "grim",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "low, pointed",
                  "is_voiceover": false,
                  "text": "by what's missing."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "stillness, micro-tension in jaw, unblinking gaze",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE_LEFT",
                    "intensity": "moderate",
                    "motivator": "pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, high contrast on face",
                "emotion_line": "knowing, grim",
                "environment_line": "int_{char_DUSTY}_bar, deep shadows",
                "subject_line": "{char_DUSTY} staring directly off-center, jaw set"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP002_SH12",
            "source_text": "\"by what's missing.\"",
            "source_text_hash": "ea72eb947d7185b4dd75faee7ed376e9",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "The glass"
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "static frame, specular highlight on rim of glass",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "bright",
                    "motivator": "overhead pendant light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "macro focus on glass texture, static",
                "emotion_line": "clinical",
                "environment_line": "int_{char_DUSTY}_bar, dark wood grain",
                "subject_line": "heavy-bottomed rocks glass on wooden bar"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP002_SH13",
            "source_text": "\"The glass\"",
            "source_text_hash": "f3da8092a9a38a35303a4959a4a303dc",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "mystified",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "",
                  "is_voiceover": false,
                  "text": "that empties itself."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "slight head tilt, eyes narrowing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE_LEFT",
                    "intensity": "moderate",
                    "motivator": "pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, subtle facial micro-expression",
                "emotion_line": "mystified",
                "environment_line": "int_{char_DUSTY}_bar, blurred background",
                "subject_line": "{char_DUSTY} looking down toward counter, slight head tilt"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP002_SH14",
            "source_text": "\"that empties itself.\"",
            "source_text_hash": "1d45778077a20b060a1fa3854c72892e",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "The napkin"
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "static frame, sharp focus on paper texture",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "overhead pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "macro focus, top-down angle",
                "emotion_line": "mundane detail",
                "environment_line": "int_{char_DUSTY}_bar, dark wood grain",
                "subject_line": "white paper bar napkin on wooden counter"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP002_SH15",
            "source_text": "\"The napkin\"",
            "source_text_hash": "8b45af63661f57a44092bd906433c85d",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "focused",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "",
                  "is_voiceover": false,
                  "text": "that folds."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "slight shift in posture, chest rising with breath",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE_LEFT",
                    "intensity": "moderate",
                    "motivator": "pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, subtle breathing motion",
                "emotion_line": "intense focus",
                "environment_line": "int_{char_DUSTY}_bar, shadowed background",
                "subject_line": "{char_DUSTY} looking forward, arms resting on bar out of frame"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP002_SH16",
            "source_text": "\"that folds.\"",
            "source_text_hash": "e3e2e1c3c659a4e86c59ea341271b439",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "attentive",
                  "screen_position": "left",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "",
                  "is_voiceover": false,
                  "text": "Seat seven"
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "50mm",
              "kinetic_action": "slow push in, Dusty turning head toward screen right",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "RIGHT",
                    "intensity": "moderate",
                    "motivator": "neon sign reflection",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "creeping camera, motion blur on head turn",
                "emotion_line": "directing attention",
                "environment_line": "int_{char_DUSTY}_bar, warm wood, neon edge light",
                "subject_line": "{char_DUSTY} turning head to look at seat seven off-screen"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP002_SH17",
            "source_text": "\"Seat seven\"",
            "source_text_hash": "ad55db8ecc5872de54799ab23752207a",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "certain",
                  "screen_position": "left",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "",
                  "is_voiceover": false,
                  "text": "\u2014 every night he's there."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static posture, hand resting on bar towel",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE_LEFT",
                    "intensity": "moderate",
                    "motivator": "pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, relaxed but vigilant posture",
                "emotion_line": "certainty",
                "environment_line": "int_{char_DUSTY}_bar, wide view of back bar",
                "subject_line": "{char_DUSTY} leaning slightly on the bar, looking off-screen right"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP002_SH18",
            "source_text": "\"\u2014 every night he's there.\"",
            "source_text_hash": "23bed948ed5ef9fdcf4cdb379ab63f08",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "routine",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "",
                  "is_voiceover": false,
                  "text": "I pour for him."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "motion blur on hand pantomiming pouring a bottle",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE_LEFT",
                    "intensity": "moderate",
                    "motivator": "pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "fluid wrist motion, tight framing on face and hand",
                "emotion_line": "routine, muscle memory",
                "environment_line": "int_{char_DUSTY}_bar, dark background",
                "subject_line": "{char_DUSTY} holding an invisible bottle, tilting wrist"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP002_SH19",
            "source_text": "\"I pour for him.\"",
            "source_text_hash": "57af3e0448194d678965751d81d8be56",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "reminiscent",
                  "screen_position": "left",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "",
                  "is_voiceover": false,
                  "text": "I've seen his shoulders,"
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "slow push in, eyes tracking an invisible figure's posture",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "RIGHT",
                    "intensity": "moderate",
                    "motivator": "neon sign reflection",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "creeping camera, intense gaze",
                "emotion_line": "vivid recollection",
                "environment_line": "int_{char_DUSTY}_bar, blurred bottles",
                "subject_line": "{char_DUSTY} looking off-screen right, eyes slightly raised"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP002_SH20",
            "source_text": "\"I've seen his shoulders,\"",
            "source_text_hash": "5ac5ad97f07697e59d09fcbee9917680",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "focused",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "",
                  "is_voiceover": false,
                  "text": "his hands."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "eyes darting down to counter level",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE_LEFT",
                    "intensity": "moderate",
                    "motivator": "pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, quick eye movement",
                "emotion_line": "specific memory",
                "environment_line": "int_{char_DUSTY}_bar, deep shadows",
                "subject_line": "{char_DUSTY} looking down toward the bar surface"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP002_SH21",
            "source_text": "\"his hands.\"",
            "source_text_hash": "03f24723adf74af789b7b057a76863a8",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "aware",
                  "screen_position": "right",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "",
                  "is_voiceover": false,
                  "text": "The cameras"
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "tilt",
              "focal_length": "50mm",
              "kinetic_action": "slight upward tilt as Dusty glances toward ceiling corner",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE_LEFT",
                    "intensity": "moderate",
                    "motivator": "pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "upward camera tilt, tracking eye line",
                "emotion_line": "paranoid, aware",
                "environment_line": "int_{char_DUSTY}_bar, ceiling beams visible",
                "subject_line": "{char_DUSTY} looking up toward the ceiling corner"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "tilt",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP002_SH22",
            "source_text": "\"The cameras\"",
            "source_text_hash": "7d979e59297a7097644a615b73b15e23",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "serious",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "",
                  "is_voiceover": false,
                  "text": "see nothing."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "eyes returning to center, deadpan stare into lens",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE_LEFT",
                    "intensity": "moderate",
                    "motivator": "pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, breaking the fourth wall slightly",
                "emotion_line": "chilling certainty",
                "environment_line": "int_{char_DUSTY}_bar, dark background",
                "subject_line": "{char_DUSTY} staring directly forward, expression flat"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP002_SH23",
            "source_text": "\"see nothing.\"",
            "source_text_hash": "47bbb956225e81dc55108e2e177c0ab1",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "But the drink"
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "static frame, liquid residue at bottom of glass",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "bright",
                    "motivator": "overhead pendant light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "macro focus, sharp specular highlights",
                "emotion_line": "evidence",
                "environment_line": "int_{char_DUSTY}_bar, wooden counter",
                "subject_line": "bottom of rocks glass, amber liquid residue"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP002_SH24",
            "source_text": "\"But the drink\"",
            "source_text_hash": "dca4aa01db1d338649b68b9c28c372e5",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "conviction",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "whispered",
                  "is_voiceover": false,
                  "text": "disappears."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "100mm",
              "kinetic_action": "slow push in on eyes, micro-tremor in jaw muscle",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE_LEFT",
                    "intensity": "moderate",
                    "motivator": "pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "extreme close up, creeping camera, high detail on skin texture",
                "emotion_line": "absolute conviction",
                "environment_line": "int_{char_DUSTY}_bar, pure black background",
                "subject_line": "{char_DUSTY}'s eyes and brow, intense stare"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP002_SH25",
            "source_text": "\"disappears.\"",
            "source_text_hash": "c2341ac9a183497f533a7e3b4f248999",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "hollow room tone, distant rain",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pull_back",
              "focal_length": "24mm",
              "kinetic_action": "slow pull back revealing the length of the empty bar",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "overhead pendant lights",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "smooth reverse tracking, expanding space",
                "emotion_line": "vast emptiness",
                "environment_line": "int_{char_DUSTY}_bar, symmetrical composition, shadows",
                "subject_line": "long wooden bar counter, empty room"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "pull_back",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP002_SH26",
            "source_text": "The bar,",
            "source_text_hash": "d9ef43c868b627b81e0683625221daf2",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "static frame, pristine surfaces reflecting dim light",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "BELOW",
                    "intensity": "moderate",
                    "motivator": "under-bar LED strip",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static wide composition, high contrast reflections",
                "emotion_line": "sterile, unnatural order",
                "environment_line": "int_{char_DUSTY}_bar, immaculate condition",
                "subject_line": "polished bar surface, no glasses or debris"
              },
              "shot_type": "LS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP002_SH27",
            "source_text": "clean and empty.",
            "source_text_hash": "a035157a2f902f7c1b86528d8b64bc53",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pan",
              "focal_length": "50mm",
              "kinetic_action": "smooth lateral pan across aligned stools",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "BELOW",
                    "intensity": "dim",
                    "motivator": "floor level emergency light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "panning motion, rhythmic visual pattern",
                "emotion_line": "obsessive neatness",
                "environment_line": "int_{char_DUSTY}_bar, geometric repetition",
                "subject_line": "row of leather bar stools, perfectly aligned with counter"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "pan",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP002_SH28",
            "source_text": "Every stool pushed in.",
            "source_text_hash": "7cc285f39220f8376e9119cec20126a8",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static frame, abrupt stop of visual pattern",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "overhead pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static composition, focal point on the anomaly",
                "emotion_line": "glaring exception",
                "environment_line": "int_{char_DUSTY}_bar, dark wood",
                "subject_line": "one bar stool pulled out, breaking the aligned row"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": true,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP002_SH29",
            "source_text": "Except seven.",
            "source_text_hash": "bd505501854f4ec3ff3fcbb56dcd43f3",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "slow push in on glass, shallow depth of field",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "bright",
                    "motivator": "overhead pendant light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "creeping camera, sharp focus on glass rim",
                "emotion_line": "isolated evidence",
                "environment_line": "int_{char_DUSTY}_bar, blurred background",
                "subject_line": "empty rocks glass sitting alone on wooden counter"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP002_SH30",
            "source_text": "A single empty glass,",
            "source_text_hash": "26d8fa2614437efaa659d7dfa16f118d",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "macro focus, single drop of water sliding down glass",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "RIGHT",
                    "intensity": "bright",
                    "motivator": "neon sign reflection",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "extreme macro detail, specular highlights on water",
                "emotion_line": "recent presence",
                "environment_line": "int_{char_DUSTY}_bar, dark wood out of focus",
                "subject_line": "side of rocks glass, water droplets clinging to surface"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP002_SH31",
            "source_text": "condensation still on it.",
            "source_text_hash": "a39085617cbdf2dea78a05299b7d7838",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pan",
              "focal_length": "100mm",
              "kinetic_action": "micro-pan around the glass curve, revealing unbroken condensation",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "bright",
                    "motivator": "overhead pendant light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow rotational pan, highlighting lack of smudges",
                "emotion_line": "impossible, ghostly",
                "environment_line": "int_{char_DUSTY}_bar, macro texture",
                "subject_line": "smooth condensation on glass, perfectly undisturbed"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "pan",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP002_SH32",
            "source_text": "No fingerprints.",
            "source_text_hash": "4584981e0ea77c5aa972480f63489025",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low drone, fading out",
              "dialogue": [],
              "foley_action": "faint wet slide of condensation drop"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "absolute stillness, condensation drop finally falling",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "overhead pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, prolonged hold, tension",
                "emotion_line": "unresolved mystery",
                "environment_line": "int_{char_DUSTY}_bar, deep shadows creeping in",
                "subject_line": "empty rocks glass on wooden bar, single drop of water falling"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 5
            },
            "scene_index": 1,
            "shot_id": "EP002_SH33",
            "source_text": "Hold.",
            "source_text_hash": "bcf4f99d900646d6d43c7ccdcf60baf4",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          }
        ],
        "source_hash": "0b21a4cbd4519760eb3e7a60f51514b5",
        "total_shots": 33
      },
      "path": "afterimage/state/visual/plans/ep_002_plan.json"
    },
    {
      "data": {
        "episode_id": "EP003",
        "generated_at": "2023-10-25T00:00:00Z",
        "project": "Starsend",
        "shots": [
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "anxious",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "sadie_phone",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low hum of radiator, distant rain",
              "dialogue": [],
              "foley_action": "fabric rustle"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "micro-tremor in fingertips, shallow depth of field, static framing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "BELOW",
                    "intensity": "dim",
                    "motivator": "sadie_phone screen",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "suspended motion, static pose",
                "emotion_line": "anxious anticipation, dread",
                "environment_line": "kitchen counter, dim apartment, shadows",
                "subject_line": "SADIE hand hovering over sadie_phone, fingers slightly curled, palm facing down"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP003_SH01",
            "source_text": "Sadie's hand hovering over the phone.",
            "source_text_hash": "4102458b49850ec74ad8e108a2180820",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [
                {
                  "prop_id": "sadie_phone",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low hum of radiator",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "sharp macro focus, static framing, high contrast",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "sadie_phone screen",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static object, glowing pixels",
                "emotion_line": "cold isolation, technological dread",
                "environment_line": "dark linoleum floor background, out of focus",
                "subject_line": "sadie_phone resting on kitchen counter, glowing screen, sharp focus on glass surface"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 2,
            "shot_id": "EP003_SH02",
            "source_text": "Close-up.",
            "source_text_hash": "a04c873906a2adf3de41e0dd426b9691",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "hypnotized",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "distant rain",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "subtle light flicker on skin, static framing, shallow depth of field",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "BELOW",
                    "intensity": "moderate",
                    "motivator": "sadie_phone screen",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "unblinking stare, static pose",
                "emotion_line": "hypnotized, fearful",
                "environment_line": "pitch black background, isolated",
                "subject_line": "SADIE face illuminated from below, eyes locked downward, rigid posture"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 3,
            "shot_id": "EP003_SH03",
            "source_text": "The screen glow on her skin.",
            "source_text_hash": "693bd42fe15d48bdbda81e1e06254639",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "focused",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low hum of radiator",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "",
                  "is_voiceover": true,
                  "text": "I played it back."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static framing, center-weighted composition",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "BELOW",
                    "intensity": "moderate",
                    "motivator": "sadie_phone screen",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "listening intently, static pose",
                "emotion_line": "obsessive, focused",
                "environment_line": "kitchen counter, dim apartment",
                "subject_line": "SADIE looking down, face bathed in cool light, shoulders tense"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 4,
            "shot_id": "EP003_SH04",
            "source_text": "[VO: SADIE] \"I played it back.\"",
            "source_text_hash": "5bb31ee05a35dddd260dfcbc32a9d65a",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "focused",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "distant rain",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "100mm",
              "kinetic_action": "sharp focus on iris, static framing, minimal motion",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "BELOW",
                    "intensity": "bright",
                    "motivator": "sadie_phone screen",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "intense stare, micro-saccades",
                "emotion_line": "hyper-focused, disturbed",
                "environment_line": "pitch black background",
                "subject_line": "SADIE eyes wide, reflecting cool light, unblinking gaze"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 5,
            "shot_id": "EP003_SH05",
            "source_text": "[Punch-in: Sadie's eyes, focused.]",
            "source_text_hash": "a97aa489882b6d87b31a9200cf63efc4",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "focused",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low hum of radiator",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "",
                  "is_voiceover": true,
                  "text": "Slower."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "static framing, shallow depth of field",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "BELOW",
                    "intensity": "bright",
                    "motivator": "sadie_phone screen",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "intense stare, static pose",
                "emotion_line": "hyper-focused, disturbed",
                "environment_line": "pitch black background",
                "subject_line": "SADIE eyes wide, reflecting cool light, unblinking gaze"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 6,
            "shot_id": "EP003_SH06",
            "source_text": "[VO: SADIE] \"Slower.\"",
            "source_text_hash": "35f71afba7564268ad73c2182720d08a",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "focused",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "sadie_phone",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "distant rain",
              "dialogue": [],
              "foley_action": "glass tap"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "motion blur on fingertip contact, sharp macro focus",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "sadie_phone screen",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "pressing screen, static hold",
                "emotion_line": "deliberate, obsessive",
                "environment_line": "dark out of focus background",
                "subject_line": "SADIE index finger pressing against sadie_phone glass screen, applying pressure"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 7,
            "shot_id": "EP003_SH07",
            "source_text": "[Extreme close-up: Her finger on the screen.]",
            "source_text_hash": "930efca656c87acae1749ba16f997ee4",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "realization",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low hum of radiator",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "",
                  "is_voiceover": true,
                  "text": "He's not saying words \u2014"
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static framing, center-weighted composition",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "BELOW",
                    "intensity": "moderate",
                    "motivator": "sadie_phone screen",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "listening intently, static pose",
                "emotion_line": "realization, dread",
                "environment_line": "kitchen counter, dim apartment",
                "subject_line": "SADIE looking down, face bathed in cool light, shoulders tense"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 8,
            "shot_id": "EP003_SH08",
            "source_text": "[VO: SADIE] \"He's not saying words \u2014\"",
            "source_text_hash": "50a11a1429cf0bd844f289907b8fc3d7",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "confused",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "distant rain",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "subtle muscle tension visible, static framing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "BELOW",
                    "intensity": "moderate",
                    "motivator": "sadie_phone screen",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "facial micro-expression, static pose",
                "emotion_line": "confusion, deep concentration",
                "environment_line": "kitchen counter, dim apartment",
                "subject_line": "SADIE brow furrowed, head tilted slightly, tense jaw"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 9,
            "shot_id": "EP003_SH09",
            "source_text": "[Reaction shot: Sadie's brow furrows.]",
            "source_text_hash": "fb5e2f86e02565b5423c0d673c58312b",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "realization",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low hum of radiator",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "",
                  "is_voiceover": true,
                  "text": "he's describing something."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static framing, shallow depth of field",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "BELOW",
                    "intensity": "moderate",
                    "motivator": "sadie_phone screen",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "listening intently, static pose",
                "emotion_line": "realization, deep concentration",
                "environment_line": "kitchen counter, dim apartment",
                "subject_line": "SADIE brow furrowed, head tilted slightly, tense jaw"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 10,
            "shot_id": "EP003_SH10",
            "source_text": "[VO: SADIE] \"he's describing something.\"",
            "source_text_hash": "fe893c4d981e163e6c3ca114b476241b",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "realization",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "distant rain",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "",
                  "is_voiceover": true,
                  "text": "A room."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static framing, center-weighted composition",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "BELOW",
                    "intensity": "moderate",
                    "motivator": "sadie_phone screen",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "listening intently, static pose",
                "emotion_line": "realization, deep concentration",
                "environment_line": "kitchen counter, dim apartment",
                "subject_line": "SADIE brow furrowed, head tilted slightly, tense jaw"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 11,
            "shot_id": "EP003_SH11",
            "source_text": "[VO: SADIE] \"A room.\"",
            "source_text_hash": "8c05e8b4412ae33a68cc10c51d72a9ce",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "realization",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low hum of radiator",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "",
                  "is_voiceover": true,
                  "text": "Low light."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static framing, shallow depth of field",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "BELOW",
                    "intensity": "moderate",
                    "motivator": "sadie_phone screen",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "listening intently, static pose",
                "emotion_line": "realization, deep concentration",
                "environment_line": "kitchen counter, dim apartment",
                "subject_line": "SADIE looking down, face bathed in cool light, shoulders tense"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 12,
            "shot_id": "EP003_SH12",
            "source_text": "[VO: SADIE] \"Low light.\"",
            "source_text_hash": "e801f9f05cd57c250524bf0ed5749880",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "realization",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "distant rain",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "",
                  "is_voiceover": true,
                  "text": "Bottles."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static framing, center-weighted composition",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "BELOW",
                    "intensity": "moderate",
                    "motivator": "sadie_phone screen",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "listening intently, static pose",
                "emotion_line": "realization, deep concentration",
                "environment_line": "kitchen counter, dim apartment",
                "subject_line": "SADIE looking down, face bathed in cool light, shoulders tense"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 13,
            "shot_id": "EP003_SH13",
            "source_text": "[VO: SADIE] \"Bottles.\"",
            "source_text_hash": "712169ba65c5bc2ef9b5ff05011ed795",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "focused",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low hum of radiator",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static framing, shallow depth of field",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "BELOW",
                    "intensity": "moderate",
                    "motivator": "sadie_phone screen",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "listening intently, static pose",
                "emotion_line": "focused, obsessive",
                "environment_line": "kitchen counter, dim apartment",
                "subject_line": "SADIE looking down, face bathed in cool light, shoulders tense"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 14,
            "shot_id": "EP003_SH14",
            "source_text": "[Close-up: Sadie listening intently.]",
            "source_text_hash": "622d1cc2c699c80407674ab17eae2adc",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "focused",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "distant rain",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "",
                  "is_voiceover": true,
                  "text": "'She's here again,' he says."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static framing, center-weighted composition",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "BELOW",
                    "intensity": "moderate",
                    "motivator": "sadie_phone screen",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "listening intently, static pose",
                "emotion_line": "focused, obsessive",
                "environment_line": "kitchen counter, dim apartment",
                "subject_line": "SADIE looking down, face bathed in cool light, shoulders tense"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 15,
            "shot_id": "EP003_SH15",
            "source_text": "[VO: SADIE] \"'She's here again,' he says.\"",
            "source_text_hash": "82fdee4935f3c7e80889d091dffa84dc",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "focused",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low hum of radiator",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "",
                  "is_voiceover": true,
                  "text": "'I can almost\u2014'"
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static framing, shallow depth of field",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "BELOW",
                    "intensity": "moderate",
                    "motivator": "sadie_phone screen",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "listening intently, static pose",
                "emotion_line": "focused, obsessive",
                "environment_line": "kitchen counter, dim apartment",
                "subject_line": "SADIE looking down, face bathed in cool light, shoulders tense"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 16,
            "shot_id": "EP003_SH16",
            "source_text": "[VO: SADIE] \"'I can almost\u2014'\"",
            "source_text_hash": "19171ea31ab92ba4b92ca682ffe82da1",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "frustrated",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "distant rain",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "",
                  "is_voiceover": true,
                  "text": "And it cuts."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static framing, center-weighted composition",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "BELOW",
                    "intensity": "moderate",
                    "motivator": "sadie_phone screen",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "listening intently, static pose",
                "emotion_line": "frustrated, obsessive",
                "environment_line": "kitchen counter, dim apartment",
                "subject_line": "SADIE looking down, face bathed in cool light, shoulders tense"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 17,
            "shot_id": "EP003_SH17",
            "source_text": "[VO: SADIE] \"And it cuts.\"",
            "source_text_hash": "13284890f5f667048495e4864e23825e",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "frustrated",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low hum of radiator",
              "dialogue": [],
              "foley_action": "heavy breath out"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "chest fall on exhale, static framing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "BELOW",
                    "intensity": "moderate",
                    "motivator": "sadie_phone screen",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "exhaling breath, static pose",
                "emotion_line": "frustrated, exhausted",
                "environment_line": "kitchen counter, dim apartment",
                "subject_line": "SADIE exhaling, shoulders dropped, head tilted back slightly"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 18,
            "shot_id": "EP003_SH18",
            "source_text": "[Reaction shot: Sadie exhales, frustrated.]",
            "source_text_hash": "19561edf6faade41be568c7dba1a6520",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "frustrated",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "distant rain",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "",
                  "is_voiceover": true,
                  "text": "Every time, the same word."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static framing, shallow depth of field",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "BELOW",
                    "intensity": "moderate",
                    "motivator": "sadie_phone screen",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "listening intently, static pose",
                "emotion_line": "frustrated, obsessive",
                "environment_line": "kitchen counter, dim apartment",
                "subject_line": "SADIE looking down, face bathed in cool light, shoulders tense"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 19,
            "shot_id": "EP003_SH19",
            "source_text": "[VO: SADIE] \"Every time, the same word.\"",
            "source_text_hash": "19316ec1ef3a609afcaad7f9633ca97d",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "frustrated",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low hum of radiator",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "",
                  "is_voiceover": true,
                  "text": "Almost."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static framing, center-weighted composition",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "BELOW",
                    "intensity": "moderate",
                    "motivator": "sadie_phone screen",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "listening intently, static pose",
                "emotion_line": "frustrated, obsessive",
                "environment_line": "kitchen counter, dim apartment",
                "subject_line": "SADIE looking down, face bathed in cool light, shoulders tense"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 20,
            "shot_id": "EP003_SH20",
            "source_text": "[VO: SADIE] \"Almost.\"",
            "source_text_hash": "8fd3b43afd9e658d016ba1d4418808e3",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [
                {
                  "prop_id": "sadie_phone",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "distant rain",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "sharp macro focus, static framing, high contrast",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "sadie_phone screen",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static object, glowing pixels",
                "emotion_line": "mysterious, ominous",
                "environment_line": "dark out of focus background",
                "subject_line": "sadie_phone screen displaying a phone number, glowing pixels, sharp macro focus"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 21,
            "shot_id": "EP003_SH21",
            "source_text": "[Close-up: The mysterious phone number on the screen.]",
            "source_text_hash": "e946f758dd93d3e801cb60b0f792c952",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "anxious",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low hum of radiator",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "",
                  "is_voiceover": true,
                  "text": "I called the number."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static framing, shallow depth of field",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "BELOW",
                    "intensity": "moderate",
                    "motivator": "sadie_phone screen",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "listening intently, static pose",
                "emotion_line": "resolute, anxious",
                "environment_line": "kitchen counter, dim apartment",
                "subject_line": "SADIE looking down, face bathed in cool light, shoulders tense"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 22,
            "shot_id": "EP003_SH22",
            "source_text": "[VO: SADIE] \"I called the number.\"",
            "source_text_hash": "ab5c58c9152c4903b73f5aa22e19442e",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "anxious",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "distant rain",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "",
                  "is_voiceover": true,
                  "text": "I don't know why."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static framing, center-weighted composition",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "BELOW",
                    "intensity": "moderate",
                    "motivator": "sadie_phone screen",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "listening intently, static pose",
                "emotion_line": "resolute, anxious",
                "environment_line": "kitchen counter, dim apartment",
                "subject_line": "SADIE looking down, face bathed in cool light, shoulders tense"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 23,
            "shot_id": "EP003_SH23",
            "source_text": "[VO: SADIE] \"I don't know why.\"",
            "source_text_hash": "8e0f52b7e0b5bfe2c2f0db250473cc04",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "anxious",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low hum of radiator",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "",
                  "is_voiceover": true,
                  "text": "It\u2014"
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static framing, shallow depth of field",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "BELOW",
                    "intensity": "moderate",
                    "motivator": "sadie_phone screen",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "listening intently, static pose",
                "emotion_line": "resolute, anxious",
                "environment_line": "kitchen counter, dim apartment",
                "subject_line": "SADIE looking down, face bathed in cool light, shoulders tense"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 24,
            "shot_id": "EP003_SH24",
            "source_text": "[VO: SADIE] \"It\u2014\"",
            "source_text_hash": "bd5c793f9c98dfd481b8e4e6726ad675",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "anxious",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "sadie_phone",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "distant rain",
              "dialogue": [],
              "foley_action": "fabric rustle"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "motion blur on phone lifting to ear, static framing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "LEFT",
                    "intensity": "dim",
                    "motivator": "streetlights through glass window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "holding phone to ear, static pose",
                "emotion_line": "anxious anticipation, dread",
                "environment_line": "kitchen counter, dim apartment",
                "subject_line": "SADIE holding sadie_phone pressed tightly against her ear, head tilted, tense shoulder"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 25,
            "shot_id": "EP003_SH25",
            "source_text": "The phone pressed to her ear.",
            "source_text_hash": "515160e4c7ca6e46dad00ef7918e28b1",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low hum of radiator, ringing phone tone",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "water droplets tracking down glass, static framing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "BEHIND",
                    "intensity": "dim",
                    "motivator": "streetlights through glass window",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "water droplets moving, static pose",
                "emotion_line": "isolation, tension",
                "environment_line": "glass window, dim apartment",
                "subject_line": "rain droplets streaking down glass window, dark night outside, static framing"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 26,
            "shot_id": "EP003_SH26",
            "source_text": "Silence.",
            "source_text_hash": "bb0fbabfe94802379503a63d6b29acaa",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "anxious",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "sadie_phone",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "ringing phone tone stops abruptly",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "sharp macro focus, static framing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "LEFT",
                    "intensity": "dim",
                    "motivator": "streetlights through glass window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "pressing phone to ear, static pose",
                "emotion_line": "anxious anticipation, dread",
                "environment_line": "dark out of focus background",
                "subject_line": "SADIE bare left earlobe, sadie_phone speaker pressed against skin, tight framing"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 27,
            "shot_id": "EP003_SH27",
            "source_text": "[Extreme close-up: Sadie's ear and the phone speaker.]",
            "source_text_hash": "4f1c57436bcbf7f9db51a07a9d966ed1",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "shocked",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low hum of radiator",
              "dialogue": [],
              "foley_action": "sharp intake of breath"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "subtle eye dart, static framing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "LEFT",
                    "intensity": "dim",
                    "motivator": "streetlights through glass window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "facial micro-expression, static pose",
                "emotion_line": "shock, sudden fear",
                "environment_line": "kitchen counter, dim apartment",
                "subject_line": "SADIE eyes widening slightly, lips parted, rigid neck muscles"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 28,
            "shot_id": "EP003_SH28",
            "source_text": "Her expression shifts \u2014",
            "source_text_hash": "c96754a6fcade673bb419f86ca952ee1",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "faint static from phone receiver",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static framing, deep depth of field",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "LEFT",
                    "intensity": "dim",
                    "motivator": "streetlights through glass window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static object, deep shadows",
                "emotion_line": "eerie silence, tension",
                "environment_line": "radiator, dim apartment",
                "subject_line": "old radiator against painted brick wall, shadows stretching across linoleum floor"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 29,
            "shot_id": "EP003_SH29",
            "source_text": "someone picked up.",
            "source_text_hash": "4e3876d969c5e9ccf7c690e6c957ab28",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "faint static from phone receiver",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static framing, high contrast",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "dim",
                    "motivator": "coffee maker indicator light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static object, glowing light",
                "emotion_line": "eerie silence, tension",
                "environment_line": "kitchen counter, dim apartment",
                "subject_line": "coffee maker on kitchen counter, red indicator light glowing in the dark"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 30,
            "shot_id": "EP003_SH30",
            "source_text": "Hold in silence.",
            "source_text_hash": "dc2af8e7982f8979b6b27824a1040fe6",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "abrupt silence",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "static framing, wide composition",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "LEFT",
                    "intensity": "dim",
                    "motivator": "streetlights through glass window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static environment, deep shadows",
                "emotion_line": "abrupt end, unresolved tension",
                "environment_line": "kitchen, dim apartment",
                "subject_line": "empty kitchen, shadows on linoleum floor, rain hitting glass window in background"
              },
              "shot_type": "LS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 31,
            "shot_id": "EP003_SH31",
            "source_text": "Cut before we hear a voice.",
            "source_text_hash": "512052bc44618619c9bd42cd43f862da",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          }
        ],
        "source_hash": "af3f1546686127030954c7f37c9591f7",
        "total_shots": 31
      },
      "path": "afterimage/state/visual/plans/ep_003_plan.json"
    },
    {
      "data": {
        "episode_id": "EP004",
        "generated_at": "2024-05-24T12:00:00Z",
        "project": "Starsend",
        "shots": [
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "dawn",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low hum of refrigeration, distant street traffic",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "24mm",
              "kinetic_action": "slow drift of dust motes, static frame, deep depth of field",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "bright",
                    "motivator": "morning sun through glass window",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "stillness, atmospheric haze catching light",
                "emotion_line": "quiet, abandoned, serene",
                "environment_line": "int_{char_DUSTY}_bar, wooden bar counter, leather stools, glass window",
                "subject_line": "empty bar room, dust settling in light shafts"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP004_SH01",
            "source_text": "The bar at opening.",
            "source_text_hash": "a5ace961e6be3d212349540b7efba638",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "dawn",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "electric buzz of neon sign",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pan",
              "focal_length": "50mm",
              "kinetic_action": "subtle flicker in neon gas, slow lateral pan",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "neon signage",
                    "quality": "soft"
                  },
                  {
                    "color_temp": "warm",
                    "direction": "BEHIND",
                    "intensity": "bright",
                    "motivator": "morning sun",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "light rays intersecting, high contrast",
                "emotion_line": "melancholic, transition, lingering",
                "environment_line": "int_{char_DUSTY}_bar, glass window, dust particles",
                "subject_line": "neon sign tubing, glowing against morning light"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "pan",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP004_SH02",
            "source_text": "Morning light cutting through neon signage",
            "source_text_hash": "fae2918677074aedcc8960c1d3357ec5",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "dawn",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "electric buzz of neon sign",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "micro-flicker of neon tube, static framing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "neon signage",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "vibrant color against shadow, sharp focus",
                "emotion_line": "forgotten, persistent, tired",
                "environment_line": "int_{char_DUSTY}_bar, dark background",
                "subject_line": "close up of neon glass tube, glowing gas"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP004_SH03",
            "source_text": "still left on.",
            "source_text_hash": "e611ccc408e27bdc30cab309f0500760",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "dawn",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone, absolute quiet",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "50mm",
              "kinetic_action": "dust motes drifting through focal plane, slow push in",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE_LEFT",
                    "intensity": "bright",
                    "motivator": "morning sun",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "particles catching light, shallow depth of field",
                "emotion_line": "stagnant, timeless, quiet",
                "environment_line": "int_{char_DUSTY}_bar, shadowy interior",
                "subject_line": "shaft of morning light, dust suspended in air"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP004_SH04",
            "source_text": "Dust in the light.",
            "source_text_hash": "0abc8ff19854955085852e89a029d6d3",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "dawn",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "static frame, deep shadows",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "LEFT",
                    "intensity": "moderate",
                    "motivator": "morning sun",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "worn leather texture highlighted, static composition",
                "emotion_line": "absence, waiting, lonely",
                "environment_line": "int_{char_DUSTY}_bar, wooden bar counter, leather seat impression",
                "subject_line": "empty leather bar stool, morning light hitting seat"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP004_SH05",
            "source_text": "Seat seven",
            "source_text_hash": "f994dd915238589c1fecfe82eb2dc60d",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "dawn",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "50mm",
              "kinetic_action": "slow push in on empty seat, subtle parallax",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "LEFT",
                    "intensity": "moderate",
                    "motivator": "morning sun",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "focus tightening on the worn leather, dust settling",
                "emotion_line": "hollow, expectant, unresolved",
                "environment_line": "int_{char_DUSTY}_bar, wooden bar counter",
                "subject_line": "leather seat impression on empty bar stool"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP004_SH06",
            "source_text": "is empty.",
            "source_text_hash": "b989faae3e70a711f45b304dcc9558b7",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "brooding",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "dawn",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "cloth rubbing on wood",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "You've been pouring for an invisible man"
                }
              ],
              "foley_action": "wiping bar counter"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "rhythmic motion blur on hand and cloth, steady gaze",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "overhead bar pendant",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "repetitive wiping motion, rigid posture, eyes fixed off-screen",
                "emotion_line": "routine, detached, brooding",
                "environment_line": "int_{char_DUSTY}_bar, wooden bar counter, liquor bottles in background",
                "subject_line": "{char_DUSTY}, standing behind bar, wiping counter with cloth, looking toward empty stool"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP004_SH07",
            "source_text": "[VO: DUSTY] 'You've been pouring for an invisible man",
            "source_text_hash": "2801ef1f6887c812149f2dd5b96f6a3f",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "weary",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "dawn",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "for three months."
                }
              ],
              "foley_action": "cloth stops moving"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "50mm",
              "kinetic_action": "stillness, subtle chest rise from breathing, slow push in",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "overhead bar pendant",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "hand freezing on counter, jaw clenching slightly",
                "emotion_line": "weary, haunted, fixated",
                "environment_line": "int_{char_DUSTY}_bar, blurred liquor bottles in background",
                "subject_line": "{char_DUSTY}, pausing wiping motion, staring off-center"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP004_SH08",
            "source_text": "for three months.",
            "source_text_hash": "dc242f3b71bd65d75d956c82890c934a",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "obsessive",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "dawn",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "You catch yourself asking if he wants another round."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "micro-tremor in jaw, static framing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "morning sun reflection",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "eyes tracking an invisible presence, tight facial muscles",
                "emotion_line": "self-reproach, obsessive, tired",
                "environment_line": "int_{char_DUSTY}_bar, out of focus background",
                "subject_line": "{char_DUSTY}, leaning slightly on bar counter, eyes fixed on seat seven"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP004_SH09",
            "source_text": "You catch yourself asking if he wants another round.",
            "source_text_hash": "3d4de452eae158e350ecc2019464361c",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "regret",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "dawn",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "Out loud."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "swallow visible in throat, static framing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "morning sun reflection",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "subtle shift in eye focus, tense neck tendons",
                "emotion_line": "regret, disbelief, isolated",
                "environment_line": "int_{char_DUSTY}_bar, out of focus background",
                "subject_line": "{char_DUSTY}, looking off-screen, lips slightly parted"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP004_SH10",
            "source_text": "Out loud.",
            "source_text_hash": "cc208f5ccd862dbd7f2e3fc635bb32e1",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "defeated",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "dawn",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "To a stool."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "tilt",
              "focal_length": "50mm",
              "kinetic_action": "slow tilt down following gaze, fabric shifting on shoulders",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "overhead bar pendant",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "head lowering, shoulders slumping slightly",
                "emotion_line": "defeated, foolish, alone",
                "environment_line": "int_{char_DUSTY}_bar, wooden bar counter, leather stool in foreground",
                "subject_line": "{char_DUSTY}, standing behind bar, looking down at empty stool"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "tilt",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP004_SH11",
            "source_text": "To a stool.",
            "source_text_hash": "f8428b00c508a15abe8c6d92d17ce8b9",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "alert",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "dawn",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "Then this morning"
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "eyes darting slightly, tracking invisible object on counter",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "LEFT",
                    "intensity": "bright",
                    "motivator": "morning sun",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "sudden stillness, intense focus downward",
                "emotion_line": "alert, confused, sharp",
                "environment_line": "int_{char_DUSTY}_bar, wooden bar counter",
                "subject_line": "{char_DUSTY}, looking down at bar surface, morning light hitting side of face"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP004_SH12",
            "source_text": "Then this morning",
            "source_text_hash": "794f4d65bc6da8f5641b265037f27f08",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "dread",
                  "screen_position": "foreground",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "dawn",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "\u2014 seat seven."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "35mm",
              "kinetic_action": "slow push in over Dusty's shoulder toward seat seven",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "morning sun",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "rigid back, completely motionless",
                "emotion_line": "dread, anticipation, frozen",
                "environment_line": "int_{char_DUSTY}_bar, wooden bar counter, seat seven",
                "subject_line": "{char_DUSTY}, seen from behind, looking at empty leather stool"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP004_SH13",
            "source_text": "\u2014 seat seven.",
            "source_text_hash": "04bdd3583fc80fc3062874c9d1e53072",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "away-from-camera"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "paranoid",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "dawn",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "The alarm didn't trip."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "sharp focus pull to eyes, rigid posture",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "LEFT",
                    "intensity": "bright",
                    "motivator": "morning sun",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "unblinking stare, tense facial muscles",
                "emotion_line": "paranoid, calculating, disturbed",
                "environment_line": "int_{char_DUSTY}_bar, dark background",
                "subject_line": "{char_DUSTY}, staring intently at bar surface, brow furrowed"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP004_SH14",
            "source_text": "The alarm didn't trip.",
            "source_text_hash": "4758dda5be49452e2ac780355f4f1216",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "unnerved",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "dawn",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "The doors were locked."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "micro-tremor in jaw, static framing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "LEFT",
                    "intensity": "bright",
                    "motivator": "morning sun",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "eyes locked on a single point, absolute stillness",
                "emotion_line": "unnerved, logical conflict, tense",
                "environment_line": "int_{char_DUSTY}_bar, dark background",
                "subject_line": "{char_DUSTY}, staring intently at bar surface, breathing shallowly"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP004_SH15",
            "source_text": "The doors were locked.",
            "source_text_hash": "b221d08e195ced93ae9ec5c7c3a2752d",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "disbelief",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "dawn",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "Ghosts don't leave collateral."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "50mm",
              "kinetic_action": "slow motion reach, tension in forearm tendons",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "LEFT",
                    "intensity": "bright",
                    "motivator": "morning sun",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "hesitant hand movement, fingers hovering over counter",
                "emotion_line": "fearful, compelled, disbelief",
                "environment_line": "int_{char_DUSTY}_bar, wooden bar counter",
                "subject_line": "{char_DUSTY}, slowly reaching hand toward bar surface"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP004_SH16",
            "source_text": "Ghosts don't leave collateral.",
            "source_text_hash": "4b7345deeaa5ea4551358d006807f9ff",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "shock",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "dawn",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "But there it was."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "hand freezing mid-air, static framing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "LEFT",
                    "intensity": "bright",
                    "motivator": "morning sun",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "eyes wide, breath catching",
                "emotion_line": "shock, realization, vulnerable",
                "environment_line": "int_{char_DUSTY}_bar, dark background",
                "subject_line": "{char_DUSTY}, staring down, face illuminated by morning light"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP004_SH17",
            "source_text": "But there it was.",
            "source_text_hash": "5a8b7362b31960a2ad1a634c3257f9d3",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "haunted",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "dawn",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "Shaped like something I should remember.'"
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "100mm",
              "kinetic_action": "pupil dilation, reflection shimmering in cornea, slow push in",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "neon sign reflection",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "micro-movements of the eye, glistening moisture",
                "emotion_line": "haunted, tragic, remembering",
                "environment_line": "int_{char_DUSTY}_bar, pure shadow background",
                "subject_line": "{char_DUSTY}'s eyes wide, reflecting neon light"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP004_SH18",
            "source_text": "Shaped like something I should remember.'",
            "source_text_hash": "45c33f86396ddbada6db1cfbbb8b5661",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "silver_earring",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "dawn",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "static frame, sharp specular highlight",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "LEFT",
                    "intensity": "bright",
                    "motivator": "morning sun",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "gleaming metal, sharp focus on jewelry",
                "emotion_line": "intimate, out of place, significant",
                "environment_line": "int_{char_DUSTY}_bar, scratched wood grain",
                "subject_line": "silver metal earring resting on wooden bar counter"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP004_SH19",
            "source_text": "The earring",
            "source_text_hash": "691593a4967534f71ad6c7400a117a8b",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "silver_earring",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "dawn",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "static frame, deep shadows in wood grain",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "LEFT",
                    "intensity": "bright",
                    "motivator": "morning sun",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "gleaming metal, sharp focus on jewelry",
                "emotion_line": "intimate, out of place, significant",
                "environment_line": "int_{char_DUSTY}_bar, scratched wood grain",
                "subject_line": "silver metal earring resting on wooden bar counter"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP004_SH20",
            "source_text": "on the bar surface.",
            "source_text_hash": "59a741246f9a34684383aa63cbda542c",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "silver_earring",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "dawn",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "100mm",
              "kinetic_action": "macro focus pull, slow push in",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "LEFT",
                    "intensity": "bright",
                    "motivator": "morning sun",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "micro-details of metal surface, extreme shallow depth of field",
                "emotion_line": "obsessive, hyper-real, focused",
                "environment_line": "int_{char_DUSTY}_bar, wooden bar counter",
                "subject_line": "macro view of silver metal earring on wood"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP004_SH21",
            "source_text": "Extreme close-up.",
            "source_text_hash": "9b18ba362698c85606521a067868a2ba",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "silver_earring",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "dawn",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "faint electric buzz",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "shifting color reflections on metal, static frame",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "bright",
                    "motivator": "neon signage",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "neon light pooling on curved metal surface",
                "emotion_line": "otherworldly, mesmerizing, strange",
                "environment_line": "int_{char_DUSTY}_bar, dark wood background",
                "subject_line": "silver metal earring reflecting vibrant neon colors"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP004_SH22",
            "source_text": "Silver catching neon",
            "source_text_hash": "5f99504430368a167230562c235f616c",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "silver_earring",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "dawn",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "faint electric buzz",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "impossible light refraction, static frame",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "bright",
                    "motivator": "neon signage",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "light bending unnaturally across the silver",
                "emotion_line": "alien, unique, captivating",
                "environment_line": "int_{char_DUSTY}_bar, dark wood background",
                "subject_line": "silver metal earring reflecting vibrant neon colors"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP004_SH23",
            "source_text": "in a way nothing else in the world does",
            "source_text_hash": "1e74cbc8f174e85ad0af02e041cdf77b",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "silver_earring",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "dawn",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "faint electric buzz",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "chromatic aberration on metal edges, static frame",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "bright",
                    "motivator": "neon signage",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "distorted reflections, impossible geometry of light",
                "emotion_line": "wrong, unsettling, magical",
                "environment_line": "int_{char_DUSTY}_bar, dark wood background",
                "subject_line": "silver metal earring reflecting vibrant neon colors"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP004_SH24",
            "source_text": "\u2014 the light refracts wrong,",
            "source_text_hash": "8378bece0aba079b3bffcf189c749bd6",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "silver_earring",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "dawn",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "faint electric buzz peaking",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "shimmering light artifact, static frame",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "blinding",
                    "motivator": "neon signage",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "blinding specular highlight, reality-bending glare",
                "emotion_line": "awe, terrifying, beautiful",
                "environment_line": "int_{char_DUSTY}_bar, dark wood background",
                "subject_line": "silver metal earring reflecting vibrant neon colors"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP004_SH25",
            "source_text": "impossibly.",
            "source_text_hash": "672a3290a134877ba0e46e53f89f07ff",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "silver_earring",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "dawn",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "absolute stillness, static frame",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "bright",
                    "motivator": "neon signage",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "frozen moment, lingering glow",
                "emotion_line": "suspense, finality, tension",
                "environment_line": "int_{char_DUSTY}_bar, dark wood background",
                "subject_line": "silver metal earring reflecting vibrant neon colors"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP004_SH26",
            "source_text": "Hold.",
            "source_text_hash": "bcf4f99d900646d6d43c7ccdcf60baf4",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "sadie_phone",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "dawn",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "faint electronic vibration",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "pulsing notification LED, static frame",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "moderate",
                    "motivator": "smartphone screen",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "screen illuminating the wood grain, blinking light",
                "emotion_line": "urgent, unanswered, desperate",
                "environment_line": "int_{char_DUSTY}_bar, dark shadows",
                "subject_line": "rectangular smartphone glowing on wooden bar counter"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP004_SH27",
            "source_text": "**[DM_PROMPT]** The voicemails.",
            "source_text_hash": "f282ef88f39929fb5ebac041d08d3865",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "dawn",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "static frame, deep shadows",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "LEFT",
                    "intensity": "moderate",
                    "motivator": "morning sun",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "dust motes settling, stark emptiness",
                "emotion_line": "void, missing, cold",
                "environment_line": "int_{char_DUSTY}_bar, wooden bar counter",
                "subject_line": "empty leather bar stool, morning light hitting seat"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP004_SH28",
            "source_text": "The empty seat.",
            "source_text_hash": "09c281e6178ae14f7429fc6458a6dbd7",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "silver_earring",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "dawn",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "static frame, sharp specular highlight",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "LEFT",
                    "intensity": "bright",
                    "motivator": "morning sun",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "gleaming metal, sharp focus on jewelry",
                "emotion_line": "evidence, undeniable, lingering",
                "environment_line": "int_{char_DUSTY}_bar, scratched wood grain",
                "subject_line": "silver metal earring resting on wooden bar counter"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP004_SH29",
            "source_text": "The earring.",
            "source_text_hash": "dd4def2b8ec359b175650b9258ebfce5",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "dawn",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "soft room tone",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "water droplet sliding down glass, slow motion",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "BEHIND",
                    "intensity": "moderate",
                    "motivator": "morning sun",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "golden light passing through clear glass, slow push in",
                "emotion_line": "longing, nostalgic, warm",
                "environment_line": "int_{char_DUSTY}_bar, warm morning light",
                "subject_line": "condensation rings on wooden bar counter, heavy-bottomed rocks glass"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP004_SH30",
            "source_text": "* [A] Longing",
            "source_text_hash": "7187682e58854b7519668cbd6202424a",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "dawn",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low frequency rumble",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pull_back",
              "focal_length": "85mm",
              "kinetic_action": "dust motes swirling in darkness, slow pull back",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "LEFT",
                    "intensity": "dim",
                    "motivator": "failing neon sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "shadows lengthening, cold light flickering",
                "emotion_line": "dread, ominous, cold",
                "environment_line": "int_{char_DUSTY}_bar, low key lighting, oppressive darkness",
                "subject_line": "deep shadows stretching across wooden bar counter"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "pull_back",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP004_SH31",
            "source_text": "* [B] Dread",
            "source_text_hash": "5790672ef4660b6dd456c985fc27bbfc",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          }
        ],
        "source_hash": "04441d6cc6296041434f0423dc977d13",
        "total_shots": 31
      },
      "path": "afterimage/state/visual/plans/ep_004_plan.json"
    },
    {
      "data": {
        "episode_id": "EP005",
        "generated_at": "2023-10-25T12:00:00Z",
        "project": "Starsend",
        "shots": [
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "melancholic",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "heavy rain against glass, muffled city traffic",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "rain droplets streaking down glass, focus pull from background to foreground droplets",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static posture, rain motion blur on glass",
                "emotion_line": "melancholic isolation",
                "environment_line": "dark apartment interior, rain-streaked window pane",
                "subject_line": "SADIE looking out window, silhouette against glass"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP005_SH01",
            "source_text": "Rain on Sadie's apartment window.",
            "source_text_hash": "b70ca47a88e34614c6b927b3e82183d2",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "heavy rain against glass",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "continuous rain sliding down glass, static framing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "rain motion blur on glass",
                "emotion_line": "empty longing",
                "environment_line": "dark apartment interior, rain-streaked window pane",
                "subject_line": "empty window frame, rain droplets"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": true,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 2,
            "shot_id": "EP005_SH02",
            "source_text": "Same framing as Episode 1,",
            "source_text_hash": "7fd135cd6a459e9a3b0e43f8ad3c70db",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "heavy rain against glass, low frequency hum",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "light blooming across wet glass, color temperature shifting",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "light halation, rain motion blur",
                "emotion_line": "sensory shift",
                "environment_line": "dark apartment interior, rain-streaked window pane",
                "subject_line": "empty window frame, rain droplets catching warm light"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 3,
            "shot_id": "EP005_SH03",
            "source_text": "but the neon outside is warmer \u2014",
            "source_text_hash": "59fc67db9e9b94206ece7fcaae06b03a",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "heavy rain against glass, low frequency hum intensifying",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "light refracting through rain droplets, slow push in",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "mixed"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "light refraction, slow forward camera movement",
                "emotion_line": "sensory bleed",
                "environment_line": "window pane macro detail",
                "subject_line": "rain droplets on glass, amber and cyan light mixing"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 4,
            "shot_id": "EP005_SH04",
            "source_text": "amber bleeding into the cyan.",
            "source_text_hash": "4981d71ab15f3195fe54ca5ee542d811",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "subtle atmospheric drone",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "shadows moving slightly as light shifts, color gradient changing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "color temperature transition, shadow crawl",
                "emotion_line": "unreal atmosphere",
                "environment_line": "dark apartment interior",
                "subject_line": "apartment wall, shadows shifting"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 5,
            "shot_id": "EP005_SH05",
            "source_text": "The color temperature is shifting.",
            "source_text_hash": "fc36895833e1f06168d4894cca452ad0",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "ethereal drone, rain fading into background",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pull_back",
              "focal_length": "35mm",
              "kinetic_action": "atmospheric haze catching warm light, slow pull back",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "FRONT",
                    "intensity": "bright",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow camera drift, light volumetric scattering",
                "emotion_line": "supernatural intrusion",
                "environment_line": "apartment interior, dust motes in air",
                "subject_line": "empty apartment living space, warm haze"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "pull_back",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 6,
            "shot_id": "EP005_SH06",
            "source_text": "SENSORY BLEED begins.",
            "source_text_hash": "7c6d3d911e0450daea97109aa7f45ccd",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "reflective",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "ethereal drone",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "quiet, intimate",
                  "is_voiceover": true,
                  "text": "It started last week."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "subtle chest rise, static posture",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "LEFT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "stillness, shallow breathing",
                "emotion_line": "reflective realization",
                "environment_line": "apartment interior, warm ambient glow",
                "subject_line": "SADIE standing in apartment, looking off-camera"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 7,
            "shot_id": "EP005_SH07",
            "source_text": "[VO: SADIE] \"It started last week.\"",
            "source_text_hash": "a17fb71f9c9dbb384b20988ee98e1b28",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "awe",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "ethereal drone",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "wondering",
                  "is_voiceover": true,
                  "text": "When the voicemail plays, the room changes."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "micro-tremor in jaw, slow blink, slow push in",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "LEFT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow blink, subtle facial tension",
                "emotion_line": "awe and confusion",
                "environment_line": "apartment interior, out of focus background",
                "subject_line": "SADIE face close up, eyes tracking invisible movement"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 8,
            "shot_id": "EP005_SH08",
            "source_text": "[VO: SADIE] \"When the voicemail plays, the room changes.\"",
            "source_text_hash": "72421018914b7863e742e2bfc5f99a4e",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "focused",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "ethereal drone",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "whispered",
                  "is_voiceover": true,
                  "text": "Not the light \u2014 the air."
                }
              ],
              "foley_action": "soft inhale"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "shallow breath, dust motes drifting in foreground",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "LEFT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "nostrils flaring slightly, dust drifting",
                "emotion_line": "sensory focus",
                "environment_line": "macro focus, dust motes in warm light",
                "subject_line": "SADIE nose and mouth, inhaling slowly"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 9,
            "shot_id": "EP005_SH09",
            "source_text": "[VO: SADIE] \"Not the light \u2014 the air.\"",
            "source_text_hash": "b7f810ff9e1e36a9c92db91dcd770ac8",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "recognition",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "ethereal drone",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "soft",
                  "is_voiceover": true,
                  "text": "Sandalwood."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "eyes darting slightly, tracking invisible scent",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "LEFT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "micro eye movements, static framing",
                "emotion_line": "recognition",
                "environment_line": "macro focus, warm light reflection in eyes",
                "subject_line": "SADIE eyes, pupils dilating"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 10,
            "shot_id": "EP005_SH10",
            "source_text": "[VO: SADIE] \"Sandalwood.\"",
            "source_text_hash": "35ede413d1217c8303c39a24eb817b1f",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "intoxicated",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "ethereal drone",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "soft",
                  "is_voiceover": true,
                  "text": "Citrus peel."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "head tilting slightly back, neck tendons visible",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "LEFT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow head tilt, neck exposed",
                "emotion_line": "intoxicated by memory",
                "environment_line": "apartment interior, warm ambient glow",
                "subject_line": "SADIE head tilted back, eyes closed"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 11,
            "shot_id": "EP005_SH11",
            "source_text": "[VO: SADIE] \"Citrus peel.\"",
            "source_text_hash": "561bb04e6d7a5ecdb9b4595ad91ab74e",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "vulnerable",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "ethereal drone",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "nostalgic",
                  "is_voiceover": true,
                  "text": "Something someone wore."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "shoulders dropping, tension releasing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "LEFT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "exhale, shoulder drop",
                "emotion_line": "vulnerable acceptance",
                "environment_line": "apartment interior, warm ambient glow",
                "subject_line": "SADIE relaxing posture, looking down"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 12,
            "shot_id": "EP005_SH12",
            "source_text": "[VO: SADIE] \"Something someone wore.\"",
            "source_text_hash": "b9d20f3bcab34959ca62e4bb9490d352",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "frustrated",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "distant traffic",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "matter-of-fact",
                  "is_voiceover": true,
                  "text": "I went through every cabinet."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "hands resting on open cabinet doors, static framing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "kitchen overhead light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static posture, looking into empty cabinet",
                "emotion_line": "frustrated search",
                "environment_line": "kitchen area, open cabinets, cold lighting",
                "subject_line": "SADIE standing in kitchen, hands on open cabinet doors"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 13,
            "shot_id": "EP005_SH13",
            "source_text": "[VO: SADIE] \"I went through every cabinet.\"",
            "source_text_hash": "5effd2b6d1d246a69172fcc929508868",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "defeated",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "distant traffic",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "flat",
                  "is_voiceover": true,
                  "text": "Nothing."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "head lowering, shadow falling over eyes",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "kitchen overhead light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "head drop, shadows shifting on face",
                "emotion_line": "defeat",
                "environment_line": "kitchen area, cold lighting",
                "subject_line": "SADIE looking down, face in shadow"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 14,
            "shot_id": "EP005_SH14",
            "source_text": "[VO: SADIE] \"Nothing.\"",
            "source_text_hash": "d4ae59a4926360354d17ad2bc51279a5",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "obsessive",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "sadie_phone",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "faint static",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "revelatory",
                  "is_voiceover": true,
                  "text": "It's only there when his voice is playing."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "thumb hovering over phone screen, screen light reflecting in eyes",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "BELOW",
                    "intensity": "dim",
                    "motivator": "phone screen",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "thumb hover, screen glare in eyes",
                "emotion_line": "obsessive focus",
                "environment_line": "dark apartment interior",
                "subject_line": "SADIE looking down at phone, screen illuminating face"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 15,
            "shot_id": "EP005_SH15",
            "source_text": "[VO: SADIE] \"It's only there when his voice is playing.\"",
            "source_text_hash": "9c943d292d272190fbffd44e0c082405",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "empty",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "sadie_phone",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "heavy rain returning",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "disappointed",
                  "is_voiceover": true,
                  "text": "When it stops \u2014 cold coffee."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "phone screen going dark, reflection fading from face",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "LEFT",
                    "intensity": "dim",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "light extinguishing, sudden shadow",
                "emotion_line": "abrupt emptiness",
                "environment_line": "dark apartment interior, cold cyan light returning",
                "subject_line": "SADIE hand holding phone, screen turning black"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 16,
            "shot_id": "EP005_SH16",
            "source_text": "[VO: SADIE] \"When it stops \u2014 cold coffee.\"",
            "source_text_hash": "74dfff5b1ccb4eb66b2a315cf2433789",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "stark",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "heavy rain",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "resigned",
                  "is_voiceover": true,
                  "text": "Old rain."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "silhouette against window, static posture",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, rain motion blur",
                "emotion_line": "stark reality",
                "environment_line": "dark apartment interior, rain on glass",
                "subject_line": "SADIE silhouette standing by window"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 17,
            "shot_id": "EP005_SH17",
            "source_text": "[VO: SADIE] \"Old rain.\"",
            "source_text_hash": "ad0b86b5d4264157c56164fc9c9079f3",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "anticipation",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "ethereal drone building",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "standing perfectly still, center-weighted composition",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "LEFT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "absolute stillness",
                "emotion_line": "anticipation",
                "environment_line": "apartment interior, warm amber light returning",
                "subject_line": "SADIE standing in center of room, arms at sides"
              },
              "shot_type": "FS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 18,
            "shot_id": "EP005_SH18",
            "source_text": "Sadie standing in her apartment,",
            "source_text_hash": "ca35f76ffcb39bfd7a7b47105aec6a07",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "concentrating",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "ethereal drone",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "eyelids shut tight, eyelashes catching light",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "LEFT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "eyelid flutter, static framing",
                "emotion_line": "deep concentration",
                "environment_line": "macro focus, warm light on skin",
                "subject_line": "SADIE eyes closed tightly"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 19,
            "shot_id": "EP005_SH19",
            "source_text": "eyes closed,",
            "source_text_hash": "baaf706a897d6fffa77b89436c56d9b7",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "absorbing",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "ethereal drone",
              "dialogue": [],
              "foley_action": "deep breath inhale"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "deep inhalation, chest rising, fabric stretching slightly",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "LEFT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "chest expansion, fabric movement",
                "emotion_line": "taking it in",
                "environment_line": "apartment interior, warm ambient glow",
                "subject_line": "SADIE chest and neck, deep inhale"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 20,
            "shot_id": "EP005_SH20",
            "source_text": "breathing in.",
            "source_text_hash": "fdf289ea9182b883fae8af98973818d8",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "connected",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "sadie_phone",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "muffled male voice from phone speaker",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "audio waveform moving on screen, thumb resting near speaker",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "BELOW",
                    "intensity": "dim",
                    "motivator": "phone screen",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "screen glow, static hand",
                "emotion_line": "connection",
                "environment_line": "dark apartment interior",
                "subject_line": "SADIE hand holding phone, screen displaying active voicemail"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 21,
            "shot_id": "EP005_SH21",
            "source_text": "The voicemail plays.",
            "source_text_hash": "3c49221031d661fdfcbce84b864fc81c",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "desperate",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "sadie_phone",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "muffled male voice continuing",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "white-knuckle grip on phone, jaw clenched, slow push in",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "LEFT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "muscle tension, slow camera creep",
                "emotion_line": "desperate clinging",
                "environment_line": "apartment interior, warm ambient glow",
                "subject_line": "SADIE gripping phone tightly, jaw set"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 22,
            "shot_id": "EP005_SH22",
            "source_text": "She doesn't want it to end \u2014",
            "source_text_hash": "75bf786b13d9923c2d8b187c4e74e85c",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "listening",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "sadie_phone",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "muffled male voice",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "head leaning toward phone speaker, ear angled to lens",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "LEFT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "leaning in, static framing",
                "emotion_line": "intense listening",
                "environment_line": "apartment interior, warm ambient glow",
                "subject_line": "SADIE head tilted, ear near phone speaker"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 23,
            "shot_id": "EP005_SH23",
            "source_text": "not for the voice,",
            "source_text_hash": "c5f89f2fda11c6361ff19211f580de0a",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "overwhelmed",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "ethereal drone peaking",
              "dialogue": [],
              "foley_action": "soft exhale"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "slow exhale, lips parting slightly, soft focus",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "LEFT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "breath escaping, soft focus",
                "emotion_line": "sensory overload",
                "environment_line": "macro focus, warm light on skin",
                "subject_line": "SADIE lips parting, slow exhale"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 24,
            "shot_id": "EP005_SH24",
            "source_text": "but for the smell.",
            "source_text_hash": "821461ac32170f8708d03fa0a112a0cd",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "suspended",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "ethereal drone holding steady",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "absolute stillness, frozen kinetic energy",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "LEFT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, suspended moment",
                "emotion_line": "suspended in time",
                "environment_line": "apartment interior, warm ambient glow",
                "subject_line": "SADIE frozen in place, eyes closed"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 25,
            "shot_id": "EP005_SH25",
            "source_text": "Hold.",
            "source_text_hash": "bcf4f99d900646d6d43c7ccdcf60baf4",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "heavy rain against glass",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "rain sliding down glass, focus on droplets",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "rain motion blur on glass",
                "emotion_line": "echo of the past",
                "environment_line": "dark apartment interior, rain-streaked window pane",
                "subject_line": "empty window frame, rain droplets"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": true,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 26,
            "shot_id": "EP005_SH26",
            "source_text": "RHYME with Ep 1's window \u2014",
            "source_text_hash": "93be23b2672e9cd428988af5b9bec47a",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "heavy rain against glass",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "static framing, continuous rain motion",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "rain motion blur on glass",
                "emotion_line": "static longing",
                "environment_line": "dark apartment interior, rain-streaked window pane",
                "subject_line": "empty window frame, rain droplets"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 27,
            "shot_id": "EP005_SH27",
            "source_text": "same frame,",
            "source_text_hash": "5a8353a440fa32dd08a772ab32901295",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "heavy rain against glass, ethereal drone returning",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "light blooming across wet glass, halation",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "FRONT",
                    "intensity": "bright",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "light halation, rain motion blur",
                "emotion_line": "sensory warmth",
                "environment_line": "dark apartment interior, rain-streaked window pane",
                "subject_line": "empty window frame, rain droplets catching intense warm light"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 28,
            "shot_id": "EP005_SH28",
            "source_text": "warmer light,",
            "source_text_hash": "3d6643fb8aa7fdc96389e4e1d6814dda",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "ethereal drone swelling",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "50mm",
              "kinetic_action": "slow push in on window, rain blurring out of focus",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "FRONT",
                    "intensity": "bright",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow camera push, focus shift to infinity",
                "emotion_line": "deep yearning",
                "environment_line": "dark apartment interior, rain-streaked window pane",
                "subject_line": "empty window frame, rain droplets blurring"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 29,
            "shot_id": "EP005_SH29",
            "source_text": "different longing.",
            "source_text_hash": "1df44c0cc1b6bd2eda595c206d7ac250",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "ethereal drone",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "atmospheric haze swirling in warm light",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "dust drifting, light volumetric scattering",
                "emotion_line": "invisible presence",
                "environment_line": "apartment interior, warm ambient glow",
                "subject_line": "empty air space, dust motes drifting"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 30,
            "shot_id": "EP005_SH30",
            "source_text": "**[DM_PROMPT]** Where the scent is strongest:",
            "source_text_hash": "85b73fd13976b9ee118a2bf6577566e8",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [
                {
                  "prop_id": "sadie_phone",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "muffled male voice continuing faintly",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "phone resting on counter, screen glowing in dark room",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "dim",
                    "motivator": "phone screen",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, screen glow",
                "emotion_line": "source of connection",
                "environment_line": "kitchen counter surface, dark background",
                "subject_line": "phone resting on kitchen counter, screen illuminated"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 31,
            "shot_id": "EP005_SH31",
            "source_text": "* [A] The phone itself",
            "source_text_hash": "313bca6317584b613972273dc8fa38f3",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "heavy rain against glass",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "condensation on glass, warm light refracting",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, light refraction",
                "emotion_line": "barrier to the outside",
                "environment_line": "window pane, warm ambient glow",
                "subject_line": "condensation on window glass, macro detail"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 32,
            "shot_id": "EP005_SH32",
            "source_text": "* [B] The window glass",
            "source_text_hash": "6c6e2e3c93003de1ccb1e835e2616ef4",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          }
        ],
        "source_hash": "4609fcfdedcd5dc372f76498ac37949f",
        "total_shots": 32
      },
      "path": "afterimage/state/visual/plans/ep_005_plan.json"
    },
    {
      "data": {
        "episode_id": "EP006",
        "generated_at": "2024-05-24T12:00:00Z",
        "project": "Starsend",
        "shots": [
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "bar ambience, subliminal coffee maker hum, phone buzz, radiator tick",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "static framing, deep depth of field, slow atmospheric drift",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "LEFT",
                    "intensity": "dim",
                    "motivator": "neon bar sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, slow push in, deep depth of field",
                "emotion_line": "eerie stillness, impending disruption, atmospheric tension",
                "environment_line": "dimly lit tavern, leather stools, glowing liquor bottles, deep shadows",
                "subject_line": "Empty bar counter, neon light reflecting on polished wood"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 6
            },
            "scene_index": 1,
            "shot_id": "EP006_SH01",
            "source_text": "## Metadata\n- Exposure: THE FRACTURE\n- Sequence: THE TOLL (Pushback)\n- Push/Pushback: Pushback\n- Rhythm: Drift\n- VO: Yes\n- Ending Type: DISSONANCE\n- Emotional Beat: none\n- Disruption: AUDIO BLEED \u2014 Sadie's apartment sounds (coffee maker hum, phone buzz, radiator tick) invade bar ambience beneath VO. Subliminal. Audio layer cracks before visual.",
            "source_text_hash": "d5ae77bf17694153942c63adfa207fb4",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low hum of neon, distant rain",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "smooth micro-dolly forward, shallow depth of field, focus locked on glass",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "overhead bar spot",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "smooth push in, macro focus on condensation, light catching water droplets",
                "emotion_line": "lingering presence, quiet mystery, physical evidence",
                "environment_line": "polished wooden bar counter, blurred background lights",
                "subject_line": "Heavy-bottomed rocks glass on wooden counter, condensation rings"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 2,
            "shot_id": "EP006_SH02",
            "source_text": "## FRAGMENT\n- Recontextualizes: Ep 2 \u2014 the empty glass\n- Original meaning: A regular who left, absence\n- New meaning: Someone drank from it. The condensation ring is warm. The lip print is wet. Presence is becoming physical.\n- Carrier: ENTRY IMAGE",
            "source_text_hash": "5da5b25dbce6da8f0d686c9908f10f57",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "scrutinizing",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "manipulated",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "neon buzz",
              "dialogue": [],
              "foley_action": "glass clinking softly against ring"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static framing, light refracting through glass, micro-tremor in holding hand",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "BEHIND",
                    "intensity": "bright",
                    "motivator": "neon sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "backlit silhouette, light catching glass edge, sharp focus on rim",
                "emotion_line": "intense scrutiny, revelation, disbelief",
                "environment_line": "dark bar interior, bright neon light source in background",
                "subject_line": "DUSTY holding glass up to light, inspecting rim"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 3,
            "shot_id": "EP006_SH03",
            "source_text": "## THE MOMENT\nThe lip print on the glass held up to neon.",
            "source_text_hash": "87c1bb837a9594b97c475b2ce5c754e3",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": "subtle heartbeat thump"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "macro focus, static framing, extreme detail on glass surface",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "LEFT",
                    "intensity": "bright",
                    "motivator": "neon sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "macro photography, razor thin focal plane, light highlighting texture",
                "emotion_line": "intimate, invasive, undeniable proof",
                "environment_line": "abstract blurred background lights",
                "subject_line": "Extreme close up of glass rim, faint smudge visible"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": true,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 4,
            "shot_id": "EP006_SH04",
            "source_text": "Contact.",
            "source_text_hash": "71df421026c1836fffffdb51acb34d47",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "focused",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "manipulated",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": "finger squeak on wet glass"
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "i2v",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "macro focus, slight heat shimmer effect, static framing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "bar pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "macro photography, water droplets smudging under thumb, tactile texture",
                "emotion_line": "sensory connection, lingering heat, visceral",
                "environment_line": "abstract dark background",
                "subject_line": "DUSTY's thumb pressing against condensation on glass"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": true,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 5,
            "shot_id": "EP006_SH05",
            "source_text": "Warmth.",
            "source_text_hash": "7034f858d2f6ef4a6d850499320a9f09",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "shocked",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "manipulated",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "bar ambience swelling slightly",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pull_back",
              "focal_length": "50mm",
              "kinetic_action": "slow pull back, focus shifting from glass to face, smooth motion",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE_LEFT",
                    "intensity": "moderate",
                    "motivator": "bar pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "rack focus from glass rim to DUSTY's eyes, slow camera drift backwards",
                "emotion_line": "haunted realization, quiet shock, undeniable truth",
                "environment_line": "dimly lit tavern, blurred liquor bottles in background",
                "subject_line": "DUSTY staring at the glass in hand, eyes wide"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "pull_back",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 6,
            "shot_id": "EP006_SH06",
            "source_text": "The absent one was here and left a mark.",
            "source_text_hash": "1c39aa21e60495b680cf0c2c0f8d68f8",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "apartment audio bleed intensifying, radiator ticking loudly",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pan",
              "focal_length": "35mm",
              "kinetic_action": "slow horizontal pan across empty bar stools, deep depth of field",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "streetlights through window",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow sweeping pan, static environment, dust motes in light beams",
                "emotion_line": "eerie emptiness, spatial dissonance, wrongness",
                "environment_line": "dark tavern interior, shadows stretching across floor, glass window with rain",
                "subject_line": "Empty leather bar stools, polished wooden counter"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "pan",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 7,
            "shot_id": "EP006_SH07",
            "source_text": "And underneath it all, an audio reality that shouldn't be there.",
            "source_text_hash": "03af15801022a0c600c146ac01b6bb60",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "muffled city traffic outside",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "24mm",
              "kinetic_action": "static framing, wide establishing composition",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "exterior streetlights",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static wide shot, deep shadows, still atmosphere",
                "emotion_line": "lonely, quiet, waiting",
                "environment_line": "dark tavern, wooden bar counter, liquor bottles catching faint light",
                "subject_line": "Wide view of the empty bar interior, stools lined up"
              },
              "shot_type": "LS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 8,
            "shot_id": "EP006_SH08",
            "source_text": "## NARRATIVE SCRIPT\n\n### [00:00-00:04] ENTRY IMAGE\n\nThe bar.",
            "source_text_hash": "4f9073ba438dd4398921ebf1c0d5d8d7",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "rain on pavement, distant siren",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "tilt",
              "focal_length": "35mm",
              "kinetic_action": "slow tilt down from window to street level, rain streaking glass",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "streetlights",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow tilt down, rain falling through light beams, reflections shimmering",
                "emotion_line": "cold, isolated, nocturnal",
                "environment_line": "city street at night, crosswalk signs glowing, rain slicked surfaces",
                "subject_line": "Dark bar exterior door, wet asphalt reflecting lights"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "tilt",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 9,
            "shot_id": "EP006_SH09",
            "source_text": "Night.",
            "source_text_hash": "c3046ea3ed80caac1280c4333caeb93c",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "faint hum of refrigerators",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static framing, over-the-counter perspective, shallow depth of field",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "BELOW",
                    "intensity": "dim",
                    "motivator": "under-bar strip lighting",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static composition, focus locked on glass, background softly blurred",
                "emotion_line": "abandoned, expectant, still",
                "environment_line": "view from behind the bar, polished wood, dark empty seating area",
                "subject_line": "Glass resting on wooden bar counter, empty leather stool in background"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 10,
            "shot_id": "EP006_SH10",
            "source_text": "Seat seven's glass, seen from behind the bar.",
            "source_text_hash": "0e3523c5566a820a91b8329527b8e860",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "100mm",
              "kinetic_action": "macro push in, water droplet sliding down glass, razor thin focus",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE_RIGHT",
                    "intensity": "moderate",
                    "motivator": "overhead spot",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow macro push in, single droplet breaking and sliding down, high contrast",
                "emotion_line": "immediate, fresh, undeniable presence",
                "environment_line": "dark background, polished wood surface reflecting light",
                "subject_line": "Macro view of condensation beads on heavy-bottomed glass"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 11,
            "shot_id": "EP006_SH11",
            "source_text": "Condensation fresh.",
            "source_text_hash": "ef8a5838045943a40d79b71598172285",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "electronic hum of monitor",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "rack focus from foreground glass to background security monitor, static camera",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "security monitor screen",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "rack focus shift, monitor scanlines visible, static framing",
                "emotion_line": "paranoid, contradictory evidence, unsettling",
                "environment_line": "dark back office or behind bar area, cluttered shelves",
                "subject_line": "Glowing security monitor displaying an empty bar stool, glass blurred in foreground"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 12,
            "shot_id": "EP006_SH12",
            "source_text": "The camera monitor in the background \u2014 showing an empty seat.",
            "source_text_hash": "7c504cfc66a1d855ced4f163e0e73556",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "focused",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "manipulated",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "reflective, voiceover",
                  "is_voiceover": true,
                  "text": "You pick up a glass and you know."
                }
              ],
              "foley_action": "glass sliding slightly on wood before lifting"
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "t2v",
            "prompt_data": {
              "camera_movement": "tracking",
              "focal_length": "50mm",
              "kinetic_action": "smooth lateral tracking, DUSTY reaching for glass, motion blur on arm",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE_LEFT",
                    "intensity": "moderate",
                    "motivator": "overhead bar pendant",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "smooth tracking shot following hand, shallow depth of field, focused movement",
                "emotion_line": "analytical, deliberate, experienced",
                "environment_line": "dimly lit tavern, liquor bottles in background, leather stools",
                "subject_line": "DUSTY reaching across polished wooden counter to pick up glass"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "tracking",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 13,
            "shot_id": "EP006_SH13",
            "source_text": "### [00:04-00:22] VOICE\n\n[VO: DUSTY]\n\"You pick up a glass and you know.",
            "source_text_hash": "0e4dc8a782df4595f633f9bea3f90cbe",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "evaluating",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "manipulated",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "Room temperature."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static framing, DUSTY holding glass, subtle weight shift",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "bar pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static composition, sharp focus on face and glass, subtle breathing",
                "emotion_line": "evaluating, calm, methodical",
                "environment_line": "dark tavern interior, blurred background",
                "subject_line": "DUSTY holding the glass at chest level, looking down at it"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 14,
            "shot_id": "EP006_SH14",
            "source_text": "Room temperature.",
            "source_text_hash": "e38bcec99d80c62087c6ec5febda63a8",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "analytical",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "manipulated",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "Dishwasher warm."
                }
              ],
              "foley_action": "fingers rubbing against wet glass"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "slow push in on DUSTY's hands turning the glass",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "BELOW",
                    "intensity": "dim",
                    "motivator": "under-bar strip lighting",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow push in, macro focus on fingers gripping glass, light catching condensation",
                "emotion_line": "tactile memory, sensory analysis",
                "environment_line": "dark tavern, polished wood counter edge visible",
                "subject_line": "DUSTY's hands rotating the glass, fingers feeling the surface"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 15,
            "shot_id": "EP006_SH15",
            "source_text": "Dishwasher warm.",
            "source_text_hash": "4370845bbdbab9f193d66541ae5ad14a",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "dread",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "manipulated",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "Left-out-overnight cold."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static framing, DUSTY's expression shifting, micro-tension in jaw",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "LEFT",
                    "intensity": "moderate",
                    "motivator": "neon sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static composition, sharp focus on eyes, jaw muscles tightening",
                "emotion_line": "dawning realization, cold dread, memory surfacing",
                "environment_line": "dark tavern, neon blue light casting shadows on face",
                "subject_line": "DUSTY looking off-screen, holding glass near chest"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 16,
            "shot_id": "EP006_SH16",
            "source_text": "Left-out-overnight cold.",
            "source_text_hash": "38b1cc8ba5d291ba03e786502c0e12ba",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "shocked",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low frequency rumble building",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover, intense",
                  "is_voiceover": true,
                  "text": "This glass was body warm."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "100mm",
              "kinetic_action": "slow push in on DUSTY's eyes, widening slightly, shallow breath",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "bar pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow macro push in, pupil dilation, micro-tremor in facial muscles",
                "emotion_line": "shock, visceral reaction, impossible truth",
                "environment_line": "pitch black background, isolated subject",
                "subject_line": "Extreme close up of DUSTY's eyes, reflecting warm light"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 17,
            "shot_id": "EP006_SH17",
            "source_text": "This glass was body warm.",
            "source_text_hash": "686b22e54bbf80b32cacf2e5cc5cad5c",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "And there's a mark on the rim."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "static framing, macro focus on glass rim, light catching the smudge",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "BEHIND",
                    "intensity": "bright",
                    "motivator": "neon sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "macro photography, razor thin focal plane, static composition",
                "emotion_line": "undeniable evidence, haunting presence",
                "environment_line": "abstract blurred neon background",
                "subject_line": "Macro view of glass rim, faint smudge visible against backlight"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 18,
            "shot_id": "EP006_SH18",
            "source_text": "And there's a mark on the rim.",
            "source_text_hash": "658ddb2cf945a30f6def6f1aff96bc21",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "fearful",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "apartment audio bleed swelling slightly",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "A ghost doesn't have a pulse."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pull_back",
              "focal_length": "50mm",
              "kinetic_action": "slow pull back, DUSTY looking toward the empty seat, rigid posture",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "bar pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow camera drift backwards, static character posture, tense atmosphere",
                "emotion_line": "defensive, rationalizing, fearful",
                "environment_line": "dark tavern, polished wood counter, shadows deepening",
                "subject_line": "DUSTY standing behind the bar, looking off-screen right toward empty stool"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "pull_back",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 19,
            "shot_id": "EP006_SH19",
            "source_text": "A ghost doesn't have a pulse.",
            "source_text_hash": "ebc021abcc1939bedce902b3089b644b",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "tense",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "manipulated",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "A ghost doesn't leave body heat."
                }
              ],
              "foley_action": "creak of glass under pressure"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static framing, DUSTY's hand gripping the glass tightly, knuckles white",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "BELOW",
                    "intensity": "dim",
                    "motivator": "under-bar strip lighting",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "tight focus on hand, static composition, visible tension in tendons",
                "emotion_line": "clinging to reality, desperate logic",
                "environment_line": "dark tavern, polished wood counter edge",
                "subject_line": "DUSTY's hand gripping the heavy-bottomed glass, knuckles turning white"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 20,
            "shot_id": "EP006_SH20",
            "source_text": "A ghost doesn't leave body heat.",
            "source_text_hash": "6cb17aa8ae6a43ca542ad1024927f2d1",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "resigned",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "manipulated",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover, finality",
                  "is_voiceover": true,
                  "text": "A ghost doesn't leave a piece of themselves behind on a Tuesday night."
                }
              ],
              "foley_action": "heavy thud of glass on wood"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "50mm",
              "kinetic_action": "slow push in, DUSTY setting the glass down on the counter, deliberate motion",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "bar pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow push in, deliberate placement of glass, heavy atmosphere",
                "emotion_line": "resignation, acceptance of the impossible, heavy burden",
                "environment_line": "dark tavern, empty leather stools in background",
                "subject_line": "DUSTY placing the glass back onto the wooden counter, looking at it"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 5
            },
            "scene_index": 21,
            "shot_id": "EP006_SH21",
            "source_text": "A ghost doesn't leave a piece of themselves behind on a Tuesday night.\"",
            "source_text_hash": "6b2dc70f0f6926256269dc8a4ca04abb",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "bar ambience mixing with apartment radiator tick and coffee maker hum",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "static framing, deep depth of field, dust motes drifting",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "LEFT",
                    "intensity": "dim",
                    "motivator": "neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static wide shot, still environment, atmospheric haze",
                "emotion_line": "spatial confusion, overlapping realities, eerie stillness",
                "environment_line": "dark tavern, leather stools, polished wood, neon glow",
                "subject_line": "Empty bar interior, shadows stretching across the floor"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 22,
            "shot_id": "EP006_SH22",
            "source_text": "[Audio Direction: Bar atmosphere AND apartment audio bleed beneath.",
            "source_text_hash": "55ad43aa542c2fec6e45274bfcca9ae2",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "sadie_phone",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "faint voicemail playback, muffled by distance and bar sounds",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "slow push in on phone screen, pulsing LED light, static environment",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "dim",
                    "motivator": "phone screen",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow macro push in, pulsing light from phone, sharp focus on screen",
                "emotion_line": "abandoned, lingering presence, cold isolation",
                "environment_line": "dark kitchen, linoleum floor visible in background, rain on window",
                "subject_line": "Smartphone resting on kitchen counter, glowing notification LED"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 5
            },
            "scene_index": 23,
            "shot_id": "EP006_SH23",
            "source_text": "Sadie's voicemail plays faintly under bar sounds.",
            "source_text_hash": "1c7ff7c67fefa9a2deb62ac21f1f2729",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "rain hitting glass, synchronized across both locations",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pan",
              "focal_length": "50mm",
              "kinetic_action": "slow pan across glass, rain droplets streaking, shifting reflections",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "streetlights",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow pan, macro focus on water droplets, shifting light patterns",
                "emotion_line": "bleeding realities, disorientation, melancholy",
                "environment_line": "abstract reflection merging neon bar signs with apartment streetlights",
                "subject_line": "Rain droplets streaking down a glass window, blurred city lights outside"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "pan",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 24,
            "shot_id": "EP006_SH24",
            "source_text": "Rain on TWO windows \u2014 two rooms, one audio space.",
            "source_text_hash": "7a027e27309e87399402a03865fdd5a3",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "dissonant audio bleed peaking, apartment sounds fully invading bar space",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "35mm",
              "kinetic_action": "extremely slow push in on empty stool, static environment, unbroken take",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "overhead bar spot",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "creeping slow push in, static framing, agonizingly slow movement",
                "emotion_line": "growing unease, wrongness, invisible presence",
                "environment_line": "dark tavern, polished wood counter, deep shadows",
                "subject_line": "Empty leather bar stool, seat seven, faint impression on the cushion"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 10
            },
            "scene_index": 25,
            "shot_id": "EP006_SH25",
            "source_text": "Audience needs 10 seconds to sense something wrong.]",
            "source_text_hash": "ff6f8b0971053c3d4521840d2ccde212",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "hypnotized",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "manipulated",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "neon buzz, audio bleed continuing",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static framing, DUSTY frozen in place, light refracting through glass",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "BEHIND",
                    "intensity": "bright",
                    "motivator": "neon sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static composition, sharp focus on glass and DUSTY's profile, frozen posture",
                "emotion_line": "hypnotized, trapped in the moment, obsessive",
                "environment_line": "dark bar interior, bright neon light source in background",
                "subject_line": "DUSTY holding glass up to light, backlit silhouette"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 26,
            "shot_id": "EP006_SH26",
            "source_text": "### [00:22-00:30] LINGER\n\nDusty holding the glass up to neon light.",
            "source_text_hash": "daa7680186b40f4efbbad4f707ced8a4",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "100mm",
              "kinetic_action": "macro push in, razor thin focus on the smudge, light highlighting texture",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "LEFT",
                    "intensity": "bright",
                    "motivator": "neon sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "macro photography, slow push in, high contrast on the smudge",
                "emotion_line": "intimate, undeniable proof, haunting",
                "environment_line": "abstract blurred neon background",
                "subject_line": "Extreme close up of glass rim, distinct lip print smudge visible"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 27,
            "shot_id": "EP006_SH27",
            "source_text": "The lip print visible.",
            "source_text_hash": "9477a7a7fd49ec261e33623460bfe040",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "disoriented",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "apartment audio bleed peaking, unresolved tension",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static framing, DUSTY frozen, eyes darting slightly, listening",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE_LEFT",
                    "intensity": "moderate",
                    "motivator": "bar pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static composition, sharp focus on face, micro-expressions of confusion",
                "emotion_line": "disoriented, trapped in sound, paralyzed",
                "environment_line": "dark tavern, blurred background",
                "subject_line": "DUSTY staring blankly, head tilted slightly as if listening to something unseen"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 28,
            "shot_id": "EP006_SH28",
            "source_text": "The audio bleed continues through the hold \u2014 it doesn't resolve.",
            "source_text_hash": "dcd5cf062fa66e24dd3227c4534d3423",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "isolated",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "cacophony of bar and apartment sounds clashing",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pull_back",
              "focal_length": "35mm",
              "kinetic_action": "slow pull back, expanding the empty space around DUSTY, deep depth of field",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "streetlights through window",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow camera drift backwards, static character, vast empty space",
                "emotion_line": "isolated, overwhelmed, reality fracturing",
                "environment_line": "dark tavern, empty leather stools, shadows dominating the room",
                "subject_line": "DUSTY standing isolated behind the bar, small in the frame"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "pull_back",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 5
            },
            "scene_index": 29,
            "shot_id": "EP006_SH29",
            "source_text": "DISSONANCE between bar visuals and apartment sounds.",
            "source_text_hash": "a9e32edbff8c767f2dcf61282f759b98",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "diminished",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low hum",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static framing, abstract focus on the glass rim",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "overhead spot",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static composition, waiting for resolution, high contrast",
                "emotion_line": "anticipation, choice, lingering question",
                "environment_line": "dark background, polished wood",
                "subject_line": "Heavy-bottomed glass resting on wooden counter, rim in sharp focus"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 30,
            "shot_id": "EP006_SH30",
            "source_text": "## WORLD VOTE\n**[DM_PROMPT]** What she left on the rim:",
            "source_text_hash": "55035b17260c634a6b2ffe83f1537245",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "100mm",
              "kinetic_action": "macro push in, focus on bare glass rim, subtle heat shimmer",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "LEFT",
                    "intensity": "bright",
                    "motivator": "neon sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "macro photography, razor thin focal plane, light passing through clean glass",
                "emotion_line": "invisible presence, subtle, ghostly",
                "environment_line": "abstract blurred neon background",
                "subject_line": "Extreme close up of bare glass rim, clean and transparent"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": true,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 31,
            "shot_id": "EP006_SH31",
            "source_text": "* [A] Bare \u2014 just warmth",
            "source_text_hash": "57f1fc9efed14b22cce78729ce4210e2",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "100mm",
              "kinetic_action": "macro push in, focus on dark smudge on glass rim, high contrast",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "LEFT",
                    "intensity": "bright",
                    "motivator": "neon sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "macro photography, razor thin focal plane, light catching the texture of the smudge",
                "emotion_line": "physical evidence, undeniable, visceral",
                "environment_line": "abstract blurred neon background",
                "subject_line": "Extreme close up of glass rim, dark lipstick smudge clearly visible"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": true,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 32,
            "shot_id": "EP006_SH32",
            "source_text": "* [B] A smudge of dark lipstick",
            "source_text_hash": "10765bf25f275d53393215048d677d55",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          }
        ],
        "source_hash": "11e9c48a742ca82f032300ceed7163fc",
        "total_shots": 32
      },
      "path": "afterimage/state/visual/plans/ep_006_plan.json"
    },
    {
      "data": {
        "episode_id": "EP007",
        "generated_at": "2024-05-24T12:00:00Z",
        "project": "Starsend",
        "shots": [
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low electronic hum",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm Macro",
              "kinetic_action": "static framing, sharp focus",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "phone screen",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, sharp focus",
                "emotion_line": "clinical, cold",
                "environment_line": "Pitch black void",
                "subject_line": "Macro view of digital pixels, sharp edges"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP007_SH01",
            "source_text": "[00:00-00:03] ENTRY IMAGE",
            "source_text_hash": "c9a13e7ff30a47f797ff4c726172acec",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low electronic hum",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm Macro",
              "kinetic_action": "static framing, high contrast",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "phone screen",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, high contrast",
                "emotion_line": "stark, unforgiving",
                "environment_line": "Pitch black void",
                "subject_line": "Harsh geometric lines of a digital interface"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 2,
            "shot_id": "EP007_SH02",
            "source_text": "Not atmosphere.",
            "source_text_hash": "0bc2c4f4c4cbbf5919b4b1f1b5d56de8",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "digital processing hum",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pan",
              "focal_length": "100mm Macro",
              "kinetic_action": "slow pan across waveform, kinetic energy in the peaks",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "phone screen",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow pan across waveform, kinetic energy in the peaks",
                "emotion_line": "analytical, tense",
                "environment_line": "Dark glass surface",
                "subject_line": "Jagged audio waveform peaks, glowing blue lines"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "pan",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 3,
            "shot_id": "EP007_SH03",
            "source_text": "A harsh clinical audio-waveform UI...",
            "source_text_hash": "94e7bb73cfdf4a8841d74ddc2e6f52b1",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "sadie_phone",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "faint room tone",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "handheld",
              "focal_length": "50mm",
              "kinetic_action": "slight hand tremor, micro-movements of the device",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "phone screen",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slight hand tremor, micro-movements of the device",
                "emotion_line": "focused, isolated",
                "environment_line": "Dark room, faint reflections on glass",
                "subject_line": "Smartphone screen displaying audio software, held in darkness"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "handheld",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 4,
            "shot_id": "EP007_SH04",
            "source_text": "...on a phone screen.",
            "source_text_hash": "d826e8fe0429659b077727a3003e6d83",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "digital processing hum",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm Macro",
              "kinetic_action": "static framing, vibrant color contrast against black",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "phone screen",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, vibrant color contrast against black",
                "emotion_line": "scientific, revealing",
                "environment_line": "Digital interface",
                "subject_line": "Dense heat-map style spectrogram, frequency bands"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 5,
            "shot_id": "EP007_SH05",
            "source_text": "Spectrogram.",
            "source_text_hash": "895b020b7e50fa3f782755e9aa4d2757",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "faint digital ticking",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm Macro",
              "kinetic_action": "rapid number changes, motion blur on digits",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "phone screen",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "rapid number changes, motion blur on digits",
                "emotion_line": "urgent, precise",
                "environment_line": "Digital interface",
                "subject_line": "Numeric timecodes ticking forward, glowing digits"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 6,
            "shot_id": "EP007_SH06",
            "source_text": "Time markers.",
            "source_text_hash": "bd5f5228d10ac49633a1118104cea358",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "sadie_phone",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "faint room tone",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "light fading out, smooth transition",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "amber light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "light fading out, smooth transition",
                "emotion_line": "nostalgic, slipping away",
                "environment_line": "Dark room",
                "subject_line": "Fading amber reflection on the phone's glass bezel"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 7,
            "shot_id": "EP007_SH07",
            "source_text": "The warm amber world of AFTERIMAGE...",
            "source_text_hash": "068af5727712971f8065c2c4b64f98d1",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "sadie_phone",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "sharp digital tone",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "sudden illumination, sharp contrast",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "phone screen",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "sudden illumination, sharp contrast",
                "emotion_line": "cold, clinical reality",
                "environment_line": "Dark room",
                "subject_line": "Harsh blue light illuminating the edge of the phone"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 8,
            "shot_id": "EP007_SH08",
            "source_text": "...replaced by cold blue software light.",
            "source_text_hash": "df384845e09de8001c719803ab30aafd",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "focused",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "faint rain outside",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static framing, subtle eye movement scanning screen",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "BELOW",
                    "intensity": "moderate",
                    "motivator": "phone screen",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, subtle eye movement scanning screen",
                "emotion_line": "intense focus, detached",
                "environment_line": "int_{char_SADIE}_apartment, dark kitchen counter in background",
                "subject_line": "{char_SADIE}'s face illuminated by the harsh blue light of the phone screen"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 5
            },
            "scene_index": 9,
            "shot_id": "EP007_SH09",
            "source_text": "[00:03-00:22] VOICE",
            "source_text_hash": "04f689dbdaf0ea881d910444850c813f",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "digital lock sound",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "found-document register, flat, clinical",
                  "is_voiceover": true,
                  "text": "Spectral match."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm Macro",
              "kinetic_action": "snap into alignment, visual lock",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "phone screen",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "snap into alignment, visual lock",
                "emotion_line": "confirmation, chilling",
                "environment_line": "Digital interface",
                "subject_line": "Two waveforms aligning perfectly on the screen"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 10,
            "shot_id": "EP007_SH10",
            "source_text": "[VO: SADIE \u2014 found-document register, flat, clinical] \"Spectral match.\"",
            "source_text_hash": "c88e8aeae2ac65e59404dbc882b56bc5",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low frequency hum",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "",
                  "is_voiceover": true,
                  "text": "Compressor hum..."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm Macro",
              "kinetic_action": "pulsing highlight, static framing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "phone screen",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "pulsing highlight, static framing",
                "emotion_line": "analytical",
                "environment_line": "Digital interface",
                "subject_line": "Low frequency band highlighted on the spectrogram"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 11,
            "shot_id": "EP007_SH11",
            "source_text": "\"Compressor hum...\"",
            "source_text_hash": "c072ec19002e251d4040167024b9562b",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "steady 63Hz hum",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "",
                  "is_voiceover": true,
                  "text": "...sixty-three hertz."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm Macro",
              "kinetic_action": "sharp focus, static framing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "phone screen",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "sharp focus, static framing",
                "emotion_line": "precise",
                "environment_line": "Digital interface",
                "subject_line": "Text readout displaying 63 Hz"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 12,
            "shot_id": "EP007_SH12",
            "source_text": "\"...sixty-three hertz.\"",
            "source_text_hash": "b0d4b34ed071bb63f8c8d87a02e0a064",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "obsessive",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "",
                  "is_voiceover": true,
                  "text": "Runs all night..."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "unblinking stare, micro-tremor in pupil, slow push in",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "BELOW",
                    "intensity": "moderate",
                    "motivator": "phone screen",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "unblinking stare, micro-tremor in pupil, slow push in",
                "emotion_line": "obsessive",
                "environment_line": "int_{char_SADIE}_apartment, dark",
                "subject_line": "{char_SADIE}'s eyes reflecting the blue waveform"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 13,
            "shot_id": "EP007_SH13",
            "source_text": "\"Runs all night...\"",
            "source_text_hash": "950beeb8cfa0027e1edfaab28c6d7d5b",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "muffled voice beneath hum",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "",
                  "is_voiceover": true,
                  "text": "...behind his voice."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "tracking",
              "focal_length": "100mm Macro",
              "kinetic_action": "slow tracking across the waveform",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "phone screen",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow tracking across the waveform",
                "emotion_line": "hidden truth",
                "environment_line": "Digital interface",
                "subject_line": "Complex waveform with a steady baseline hum beneath erratic peaks"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "tracking",
              "has_dialogue": true,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 14,
            "shot_id": "EP007_SH14",
            "source_text": "\"...behind his voice.\"",
            "source_text_hash": "028b073315502ac2217110c96eb9cae5",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "rapid data scrolling sound",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm Macro",
              "kinetic_action": "motion blur on scrolling text, rapid data processing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "phone screen",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "motion blur on scrolling text, rapid data processing",
                "emotion_line": "investigative",
                "environment_line": "Digital interface",
                "subject_line": "Database text scrolling rapidly over the spectrogram"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 15,
            "shot_id": "EP007_SH15",
            "source_text": "Cross-referenced with city licenses.",
            "source_text_hash": "53b6e807e903e2d5eb1c4820fab50ca4",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "digital ping",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "",
                  "is_voiceover": true,
                  "text": "Three bars in the district..."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm Macro",
              "kinetic_action": "pop-in animation, sharp focus",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "phone screen",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "pop-in animation, sharp focus",
                "emotion_line": "narrowing down",
                "environment_line": "Digital interface",
                "subject_line": "Three map pins appearing on a digital city grid"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 16,
            "shot_id": "EP007_SH16",
            "source_text": "\"Three bars in the district...\"",
            "source_text_hash": "46b077f0aa2df025280d7ed88a8d0007",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "",
                  "is_voiceover": true,
                  "text": "...use that model compressor."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm Macro",
              "kinetic_action": "static framing, layered visuals",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "phone screen",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, layered visuals",
                "emotion_line": "technical, cold",
                "environment_line": "Digital interface",
                "subject_line": "Technical schematic of a compressor overlaid on the map"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 17,
            "shot_id": "EP007_SH17",
            "source_text": "\"...use that model compressor.\"",
            "source_text_hash": "8b6d668de28612c2873f23b54d3678ab",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "dread",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "faint rain",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "",
                  "is_voiceover": true,
                  "text": "One of them is in my building."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "slow push in, shallow breath",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "BELOW",
                    "intensity": "moderate",
                    "motivator": "phone screen",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow push in, shallow breath",
                "emotion_line": "realization, dread",
                "environment_line": "int_{char_SADIE}_apartment, dark",
                "subject_line": "{char_SADIE}'s face, the blue light casting deep shadows, looking down"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 18,
            "shot_id": "EP007_SH18",
            "source_text": "\"One of them is in my building.\"",
            "source_text_hash": "412b2e1c6823d7d2cb1c422f1882e817",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "paranoia",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "sadie_phone",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "muffled compressor hum from floor",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "",
                  "is_voiceover": true,
                  "text": "Below me."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static framing, heavy stillness",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "BELOW",
                    "intensity": "moderate",
                    "motivator": "phone screen",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, heavy stillness",
                "emotion_line": "paranoia, proximity",
                "environment_line": "int_{char_SADIE}_apartment, linoleum floor, dark",
                "subject_line": "{char_SADIE} sitting on the linoleum floor, phone in hand, staring at the floorboards"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 19,
            "shot_id": "EP007_SH19",
            "source_text": "\"Below me.\"",
            "source_text_hash": "795e570c5aba76efd973674085f56464",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "100mm Macro",
              "kinetic_action": "extreme magnification, pixelated edges",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "phone screen",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "extreme magnification, pixelated edges",
                "emotion_line": "discovery",
                "environment_line": "Digital interface",
                "subject_line": "A tiny, almost imperceptible blip on the spectrogram"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 20,
            "shot_id": "EP007_SH20",
            "source_text": "And there...",
            "source_text_hash": "2a9b41ef6e742ee7b6eae8949743765e",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "hum fading out",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm Macro",
              "kinetic_action": "contrast shift, sharp focus on the anomaly",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "phone screen",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "contrast shift, sharp focus on the anomaly",
                "emotion_line": "focus",
                "environment_line": "Digital interface",
                "subject_line": "The blip isolated, the hum frequency muted visually"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 21,
            "shot_id": "EP007_SH21",
            "source_text": "...behind the hum.",
            "source_text_hash": "0121e94c6110a03b1fd73ee623a6abe9",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "digital rain sound",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "",
                  "is_voiceover": true,
                  "text": "Rain on a window."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm Macro",
              "kinetic_action": "static framing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "phone screen",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing",
                "emotion_line": "poetic, eerie",
                "environment_line": "Digital interface",
                "subject_line": "The waveform resembling scattered droplets"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 22,
            "shot_id": "EP007_SH22",
            "source_text": "\"Rain on a window.\"",
            "source_text_hash": "62861b5249493ecae4c24925be4af4ad",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "connected",
                  "screen_position": "left",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "real rain hitting glass",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "",
                  "is_voiceover": true,
                  "text": "The same rain I hear on mine."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "rack focus from Sadie to the rain on the window",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "street light through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "rack focus from Sadie to the rain on the window",
                "emotion_line": "connected, trapped",
                "environment_line": "int_{char_SADIE}_apartment, glass window, rain droplets",
                "subject_line": "{char_SADIE} looking toward the glass window, rain droplets visible on the glass"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 23,
            "shot_id": "EP007_SH23",
            "source_text": "\"The same rain I hear on mine.\"",
            "source_text_hash": "ff0a7a132c17117449faaa2789c5a974",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "lonely",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_domestic_isolation"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "sadie_phone",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "rain, distant city sounds",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pull_back",
              "focal_length": "24mm",
              "kinetic_action": "slow pull back, emphasizing isolation",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "BELOW",
                    "intensity": "dim",
                    "motivator": "phone screen",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow pull back, emphasizing isolation",
                "emotion_line": "lonely, atmospheric",
                "environment_line": "int_{char_SADIE}_apartment, kitchen counter, glass window",
                "subject_line": "{char_SADIE} sitting alone in the dark kitchen, illuminated only by the phone and window"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "pull_back",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 6
            },
            "scene_index": 24,
            "shot_id": "EP007_SH24",
            "source_text": "[00:22-00:30] LINGER",
            "source_text_hash": "53c2c65aee058e1e783a380b64146ff0",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "diminished",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "silence",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm Macro",
              "kinetic_action": "absolute stillness, frozen frame",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "phone screen",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "absolute stillness, frozen frame",
                "emotion_line": "suspended time",
                "environment_line": "Digital interface",
                "subject_line": "The spectrogram completely still, no scrolling"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 25,
            "shot_id": "EP007_SH25",
            "source_text": "The spectrogram frozen...",
            "source_text_hash": "09cc9cd681ad562a5a73ceef3279ab5a",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm Macro",
              "kinetic_action": "static framing, sharp focus",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "phone screen",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, sharp focus",
                "emotion_line": "haunting",
                "environment_line": "Digital interface",
                "subject_line": "A distinct, complex waveform shape labeled 'almost'"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 26,
            "shot_id": "EP007_SH26",
            "source_text": "...on the waveform of the word \"almost.\"",
            "source_text_hash": "864d7d73c33beb7c0b691757c544d5c2",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "subtle flicker of the screen light",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "phone screen reflection",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "subtle flicker of the screen light",
                "emotion_line": "ghostly",
                "environment_line": "int_{char_SADIE}_apartment, glass window",
                "subject_line": "The blue light of the waveform reflecting on the dark glass window"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 27,
            "shot_id": "EP007_SH27",
            "source_text": "The shape of the word hangs in the air.",
            "source_text_hash": "28cf88fa251642fff9246899f920fda2",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pan",
              "focal_length": "100mm Macro",
              "kinetic_action": "slow pan across the abstract shape",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "phone screen",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow pan across the abstract shape",
                "emotion_line": "melancholic beauty",
                "environment_line": "Digital interface",
                "subject_line": "Abstract, glowing blue peaks and valleys of the waveform, resembling a mountain range"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "pan",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 28,
            "shot_id": "EP007_SH28",
            "source_text": "Beautiful despite the clinical context.",
            "source_text_hash": "dc6a7fae70cf822588042369008aaf2a",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm Macro",
              "kinetic_action": "static framing, lingering",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "phone screen",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, lingering",
                "emotion_line": "anticipation",
                "environment_line": "Digital interface",
                "subject_line": "The waveform of 'almost', glowing steadily"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 29,
            "shot_id": "EP007_SH29",
            "source_text": "Hold.",
            "source_text_hash": "bcf4f99d900646d6d43c7ccdcf60baf4",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "cursor blink sound",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm Macro",
              "kinetic_action": "rhythmic blinking, static framing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "phone screen",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "rhythmic blinking, static framing",
                "emotion_line": "decision point",
                "environment_line": "Digital interface",
                "subject_line": "A blinking cursor at the end of the waveform analysis"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 30,
            "shot_id": "EP007_SH30",
            "source_text": "WORLD VOTE",
            "source_text_hash": "a8486f6db129fb88c243413bcadcec0e",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "digital resolving sound",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm Macro",
              "kinetic_action": "pixels shifting, resolving into a new pattern",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "phone screen",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "pixels shifting, resolving into a new pattern",
                "emotion_line": "mystery",
                "environment_line": "Digital interface",
                "subject_line": "A hidden layer of the spectrogram beginning to resolve"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 31,
            "shot_id": "EP007_SH31",
            "source_text": "**[DM_PROMPT]** What the spectrogram reveals behind \"almost\":",
            "source_text_hash": "ceb4840c7e04c5a58f8e32d774c2b93a",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "faint whisper",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm Macro",
              "kinetic_action": "static framing, subtle glow on the secondary wave",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "phone screen",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, subtle glow on the secondary wave",
                "emotion_line": "eerie, intimate",
                "environment_line": "Digital interface",
                "subject_line": "A faint, wispy secondary waveform intertwined with the main one"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 32,
            "shot_id": "EP007_SH32",
            "source_text": "* [A] A second voice, whispering",
            "source_text_hash": "717080c9abd19489bc780b287a426c39",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "rhythmic heartbeat",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm Macro",
              "kinetic_action": "static framing, sharp rhythmic peaks",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "phone screen",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, sharp rhythmic peaks",
                "emotion_line": "vital, tense",
                "environment_line": "Digital interface",
                "subject_line": "A rhythmic, evenly spaced spike pattern beneath the word"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 33,
            "shot_id": "EP007_SH33",
            "source_text": "* [B] A heartbeat at 72 BPM",
            "source_text_hash": "2d25fd2e19d602f28a3d5c55f2cd4060",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          }
        ],
        "source_hash": "c1e115dd6b0f466dec0816875dad6cf2",
        "total_shots": 33
      },
      "path": "afterimage/state/visual/plans/ep_007_plan.json"
    },
    {
      "data": {
        "episode_id": "EP008",
        "generated_at": "2023-10-24T10:00:00Z",
        "project": "Starsend",
        "shots": [
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "observant",
                  "screen_position": "left",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low hum of a refrigerator, distant street noise",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "reflective, quiet",
                  "is_voiceover": true,
                  "text": "You spend months watching a man who isn't there."
                }
              ],
              "foley_action": "cloth sliding over wood"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "50mm",
              "kinetic_action": "slow deliberate wiping motion, subtle eye dart, rhythmic breathing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "overhead bar pendant",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow push in on subject, shallow depth of field, dust motes in air",
                "emotion_line": "melancholic, observant, patient",
                "environment_line": "dimly lit bar interior, liquor bottles in background out of focus",
                "subject_line": "DUSTY wiping the wooden bar counter, looking off-screen right"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP008_SH01",
            "source_text": "[VO: DUSTY] \"You spend months watching a man who isn't there.\"",
            "source_text_hash": "15463d18917b68764f8875f77be9f07d",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "faint rain against glass",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "intimate",
                  "is_voiceover": true,
                  "text": "You learn his shoulders."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static frame, dust settling in light beam",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "BEHIND",
                    "intensity": "moderate",
                    "motivator": "street lamp through window",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, high contrast shadows, macro focus on leather grain",
                "emotion_line": "empty, haunting, suggestive of absence",
                "environment_line": "shadowy bar seating area, worn leather textures",
                "subject_line": "empty leather stool with a visible seat impression"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP008_SH02",
            "source_text": "[VO: DUSTY] \"You learn his shoulders.\"",
            "source_text_hash": "04d5dd84282b91af04dcbd3cf0d64248",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "ice shifting slightly",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "measured",
                  "is_voiceover": true,
                  "text": "The way he holds a glass."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pan",
              "focal_length": "100mm",
              "kinetic_action": "smooth lateral pan, condensation dripping down glass",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "BEHIND",
                    "intensity": "dim",
                    "motivator": "bar backlighting",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow pan right across the glass, catching rim highlights",
                "emotion_line": "anticipatory, isolated",
                "environment_line": "polished wood surface reflecting amber light",
                "subject_line": "heavy-bottomed rocks glass sitting alone on the wooden bar"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "pan",
              "has_dialogue": true,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP008_SH03",
            "source_text": "[VO: DUSTY] \"The way he holds a glass.\"",
            "source_text_hash": "26bb78cb07be79e72edc6dfb64d043f5",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "focused",
                  "screen_position": "right",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "resigned",
                  "is_voiceover": true,
                  "text": "You pour for him and you wait."
                }
              ],
              "foley_action": "liquid pouring into glass"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "steady pouring motion, liquid stream frozen in mid-air, slight wrist rotation",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "BELOW",
                    "intensity": "dim",
                    "motivator": "under-bar strip light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, focus on the steady hand and liquid flow",
                "emotion_line": "ritualistic, focused",
                "environment_line": "dark bar interior, out of focus bottles",
                "subject_line": "DUSTY pouring amber liquid from a bottle into a glass off-screen"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP008_SH04",
            "source_text": "[VO: DUSTY] \"You pour for him and you wait.\"",
            "source_text_hash": "41f7186d50cceac37c1bead93395765a",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "obsessive",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "bar_matchbook",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "analytical",
                  "is_voiceover": true,
                  "text": "Three months of notes in a bartender's ledger \u2014"
                }
              ],
              "foley_action": "paper rustling"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "tilt",
              "focal_length": "85mm",
              "kinetic_action": "fingers tracing paper edge, subtle downward head tilt",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE_LEFT",
                    "intensity": "moderate",
                    "motivator": "small desk lamp",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow tilt down from face to hands, shallow depth of field",
                "emotion_line": "obsessive, meticulous",
                "environment_line": "shadowy bar surface, tight framing",
                "subject_line": "DUSTY looking down at a matchbook on the counter"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "tilt",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP008_SH05",
            "source_text": "[VO: DUSTY] \"Three months of notes in a bartender's ledger \u2014\"",
            "source_text_hash": "f3e1a606aebdfa5732abea17ad6c0109",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "rhythmic",
                  "is_voiceover": true,
                  "text": "temperature of the stool,"
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "static frame, extreme macro detail",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "ambient room light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, hyper-detailed texture",
                "emotion_line": "clinical, detached",
                "environment_line": "macro texture of worn leather, dark background",
                "subject_line": "cracked leather surface of a bar stool"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP008_SH06",
            "source_text": "[VO: DUSTY] \"temperature of the stool,\"",
            "source_text_hash": "016bcddbd594c80ca6b371eb53256d4c",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "rhythmic",
                  "is_voiceover": true,
                  "text": "the way the napkin folds."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static frame, crisp edges",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE_RIGHT",
                    "intensity": "moderate",
                    "motivator": "bar pendant",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, geometric composition",
                "emotion_line": "precise, obsessive",
                "environment_line": "dark polished wood, sharp contrast",
                "subject_line": "perfectly creased white paper napkin resting on the wooden bar"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP008_SH07",
            "source_text": "[VO: DUSTY] \"the way the napkin folds.\"",
            "source_text_hash": "efe1983ce5b7094a8489f98e3b13e4ab",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "haunted",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low drone building",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "finality",
                  "is_voiceover": true,
                  "text": "You know this ghost."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "unblinking stare, micro-tension in jaw, slow breath",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "bar pendant",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow push in on face, isolating the character",
                "emotion_line": "haunted, certain",
                "environment_line": "dark bar background, blurred out",
                "subject_line": "DUSTY staring directly ahead, hands resting out of frame"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP008_SH08",
            "source_text": "[VO: DUSTY] \"You know this ghost.\"",
            "source_text_hash": "3e097848b8c7558e9f811da2b1b228db",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "distant traffic, hum of neon sign",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "tracking",
              "focal_length": "35mm",
              "kinetic_action": "slow lateral drift, dust motes floating, shadows stretching",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "LEFT",
                    "intensity": "moderate",
                    "motivator": "streetlights through window",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "smooth tracking shot moving parallel to the bar",
                "emotion_line": "lonely, atmospheric, still",
                "environment_line": "wide view of the dark, empty bar, neon signs reflecting on polished wood",
                "subject_line": "empty bar stools lined up along the wooden counter"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "tracking",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 5
            },
            "scene_index": 1,
            "shot_id": "EP008_SH09",
            "source_text": "Atmospheric shots of the bar.",
            "source_text_hash": "03bda7d66d052da2edfb025c4260fabf",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "exhausted",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "clock ticking faintly",
              "dialogue": [],
              "foley_action": "heavy sigh"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "slumped shoulders, heavy exhale, still posture",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "overhead bar pendant",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, center-weighted composition",
                "emotion_line": "exhausted, burdened",
                "environment_line": "shadowy bar interior, rows of bottles behind",
                "subject_line": "DUSTY leaning heavily on the wooden bar counter, looking down"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP008_SH10",
            "source_text": "Dusty behind the bar, the weight of months.",
            "source_text_hash": "9ea5c169dac8087dc0ff035b541cd109",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "contemplative",
                  "screen_position": "left",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low ambient drone",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "eyes tracking something unseen, minimal movement",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "street lamp reflection",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow push in, tightening on the eyes",
                "emotion_line": "lost in thought, melancholic",
                "environment_line": "darkness surrounding the face",
                "subject_line": "DUSTY staring off-screen right, face half in shadow"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP008_SH11",
            "source_text": "Contemplative.",
            "source_text_hash": "3b67ef0c8634dd4b411f39f80bcf2983",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "muffled jazz music playing faintly",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pan",
              "focal_length": "50mm",
              "kinetic_action": "smooth, slow pan across static objects",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "BEHIND",
                    "intensity": "moderate",
                    "motivator": "backbar display lights",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow pan left across the bottles, establishing normalcy",
                "emotion_line": "calm, ordinary, deceptive",
                "environment_line": "classic bar setup, orderly and mundane",
                "subject_line": "rows of liquor bottles catching the light"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "pan",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 5
            },
            "scene_index": 1,
            "shot_id": "EP008_SH12",
            "source_text": "The audience thinks this is a standard episode.",
            "source_text_hash": "9442759dad74567dced3531d277aaccd",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "manipulated",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "music cuts out abruptly",
              "dialogue": [],
              "foley_action": "LOUD sharp crack of heavy glass hitting solid wood"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "motion blur on impact, liquid splashing violently, sharp kinetic transfer",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE",
                    "intensity": "bright",
                    "motivator": "overhead spot",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "frozen moment of impact, droplets suspended in air",
                "emotion_line": "violent, sudden, shocking",
                "environment_line": "tight macro on the wood surface, stark shadows",
                "subject_line": "heavy-bottomed rocks glass slamming onto the wooden bar"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": true,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP008_SH13",
            "source_text": "The glass is PUT DOWN.",
            "source_text_hash": "576399a6f614da9825224a6347889823",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "ringing resonance of the glass",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "vibration ripples in liquid, micro-tremors in the wood",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE",
                    "intensity": "bright",
                    "motivator": "overhead spot",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, capturing the immediate aftermath of the slam",
                "emotion_line": "aggressive, jarring",
                "environment_line": "extreme macro, wood grain visible",
                "subject_line": "base of the rocks glass pressed hard against the wood"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": true,
              "num_characters": 0,
              "target_editorial_duration_s": 1
            },
            "scene_index": 1,
            "shot_id": "EP008_SH14",
            "source_text": "Hard.",
            "source_text_hash": "6705eae23aa87731034c9c2df6a7fc7e",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "dead silence",
              "dialogue": [],
              "foley_action": "ice clinking as liquid settles"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pull_back",
              "focal_length": "50mm",
              "kinetic_action": "liquid sloshing back and forth, settling slowly",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE",
                    "intensity": "bright",
                    "motivator": "overhead spot",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow pull back revealing the emptiness around the object",
                "emotion_line": "eerie, impossible",
                "environment_line": "empty space around the glass, stark lighting",
                "subject_line": "rocks glass sitting alone on the bar, no one holding it"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "pull_back",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP008_SH15",
            "source_text": "By an invisible hand.",
            "source_text_hash": "19fd6b67b722b9ed15440db2da864810",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "startled",
                  "screen_position": "left",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low frequency rumble",
              "dialogue": [],
              "foley_action": "fabric rustling sharply"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "sudden neck snap, motion blur on head turn, rigid shoulders",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE_LEFT",
                    "intensity": "moderate",
                    "motivator": "bar pendant",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "fast kinetic reaction, tense posture",
                "emotion_line": "startled, alert",
                "environment_line": "dark bar background",
                "subject_line": "DUSTY snapping his head up, looking off-screen right"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP008_SH16",
            "source_text": "The sound of glass on wood with intent \u2014",
            "source_text_hash": "b7143d95ccc7f727f87cca4d4d4b680a",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "faint sound of breathing not belonging to Dusty",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "50mm",
              "kinetic_action": "slow creeping push in, dust motes suspended",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "BEHIND",
                    "intensity": "moderate",
                    "motivator": "street lamp through window",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow push in on the empty space, building tension",
                "emotion_line": "expectant, unseen presence",
                "environment_line": "shadowy seating area, heavy atmosphere",
                "subject_line": "empty bar stool facing the counter"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP008_SH17",
            "source_text": "someone ordering.",
            "source_text_hash": "ec50a919d7430eed92319a049f88ecf6",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "shocked",
                  "screen_position": "left",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "vacuum of sound, all background noise drops out",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "eyes widening, pupil dilation, shallow breath",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "bar pendant",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, capturing micro-expressions of shock",
                "emotion_line": "shocked, paralyzed",
                "environment_line": "darkness behind him",
                "subject_line": "DUSTY staring off-screen right, eyes wide"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP008_SH18",
            "source_text": "Then a voice.",
            "source_text_hash": "5e639a094b77d2205030af59e6ca0cfc",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "terrified",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "high pitched tinnitus ring starting",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "100mm",
              "kinetic_action": "sweat catching light, rigid jaw muscle, imperceptible tremble",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "RIGHT",
                    "intensity": "dim",
                    "motivator": "unseen source",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow push in on his ear and jawline",
                "emotion_line": "terrified, invaded",
                "environment_line": "pure black background",
                "subject_line": "DUSTY in extreme close-up profile, facing right"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP008_SH19",
            "source_text": "Close, intimate, directly beside him:",
            "source_text_hash": "9d5d57e0b423020e167d3051be28e856",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "dread",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "A woman's voice whispering intimately: 'Can you see me?'",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "frozen posture, eyes darting slightly as if trying to see without turning",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "bar pendant",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, absolute stillness",
                "emotion_line": "mind-bending realization, dread",
                "environment_line": "shadows deepening around him",
                "subject_line": "DUSTY frozen in place, staring straight ahead"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP008_SH20",
            "source_text": "\"Can you see me?\" A woman's voice.",
            "source_text_hash": "0aaa786dfd26b78247bb125a9fae136d",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "confusion",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "subtle low frequency sweep",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pan",
              "focal_length": "50mm",
              "kinetic_action": "slow, hesitant head turn, stiff neck",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "LEFT",
                    "intensity": "dim",
                    "motivator": "street lamp",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow pan following his gaze",
                "emotion_line": "confusion, reality breaking",
                "environment_line": "bar interior, shadows shifting unnaturally",
                "subject_line": "DUSTY slowly turning his head to look at the empty stool"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "pan",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP008_SH21",
            "source_text": "Not the man he's been seeing.",
            "source_text_hash": "d8bd2f8ca1d8e3ccb87dcbaa41f787a8",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "heavy bass drop, electrical hum surging",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "tilt",
              "focal_length": "24mm",
              "kinetic_action": "shadows stretching rapidly, light sources flickering",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "BELOW",
                    "intensity": "bright",
                    "motivator": "neon sign outside",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "dutch angle tilt, disorienting shift in lighting",
                "emotion_line": "surreal, inverted reality",
                "environment_line": "harsh blue light replacing the warm amber, shadows casting upward",
                "subject_line": "the empty bar room"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "tilt",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP008_SH22",
            "source_text": "Everything inverts.",
            "source_text_hash": "b0f0d8b96628ab8ad3279464b0643d0b",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "sharp static burst",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "strobe flash, high contrast freeze frame",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "FRONT",
                    "intensity": "blinding",
                    "motivator": "strobe light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "subliminal cut, hyper-sharp focus",
                "emotion_line": "aggressive, glitching",
                "environment_line": "stark white flash illuminating the glass",
                "subject_line": "rocks glass on the bar"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": true,
              "num_characters": 0,
              "target_editorial_duration_s": 1
            },
            "scene_index": 1,
            "shot_id": "EP008_SH23",
            "source_text": "No LINGER.",
            "source_text_hash": "4b3c3808ea0fbddfb1cd848f954f1c84",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "void",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "profound silence",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "absolute stillness, oppressive void",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "failing emergency light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static hold on darkness",
                "emotion_line": "empty, terrifying, broken",
                "environment_line": "near total darkness, void-like",
                "subject_line": "pitch black space where the bar used to be, faint outline of the counter"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": true,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP008_SH24",
            "source_text": "The BREAK IS the linger.",
            "source_text_hash": "4fbc62abc4f501aee9124614dda5a6e1",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "shattered",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "echo of the woman's voice fading out",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "eyes locked to lens, slight tremor in lower lip",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "single spotlight",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow push in, breaking the fourth wall",
                "emotion_line": "shattered, exposed",
                "environment_line": "black void background",
                "subject_line": "DUSTY staring directly into the camera lens"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP008_SH25",
            "source_text": "The woman's voice is the last sound.",
            "source_text_hash": "c5a0d0b7a35afd90336450655015f741",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "leather creaking softly",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "leather slowly expanding, impression vanishing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "ambient bar light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "the impression in the seat slowly fading away as if no one was ever there",
                "emotion_line": "uncanny, erasing history",
                "environment_line": "macro shot of the leather grain",
                "subject_line": "leather bar stool seat"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP008_SH26",
            "source_text": "**[DM_PROMPT]** The invisible man was never a man.",
            "source_text_hash": "7e96142e030ff4508ff663aae91392f4",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "bar_matchbook",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "wind howling faintly",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "ink bleeding, paper curling slightly",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "bar pendant",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, focus pulling slightly",
                "emotion_line": "lost, discarded",
                "environment_line": "tight macro focus on the matchbook cover",
                "subject_line": "cardboard matchbook on the wooden counter"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP008_SH27",
            "source_text": "* [A] Forgotten",
            "source_text_hash": "945c9563e83f38b1bfd27d215107b34b",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "faint hiss of evaporation",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "water evaporating rapidly, wood grain drying",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "bar pendant",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "the water ring shrinking and vanishing into the wood",
                "emotion_line": "erasure, finality",
                "environment_line": "macro shot of the polished wood",
                "subject_line": "wet condensation ring on the wooden bar"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP008_SH28",
            "source_text": "* [B] Erased",
            "source_text_hash": "893a6dc6cccb570cd1f5399ba20182d7",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "simulation"
            },
            "audio_data": {
              "ambient_sfx": "digital tearing, loud electrical buzz",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "handheld",
              "focal_length": "35mm",
              "kinetic_action": "shaky camera, aggressive light strobing, visual tearing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "blinding",
                    "motivator": "malfunctioning neon sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "chaotic handheld framing, jarring light shifts",
                "emotion_line": "visceral, aggressive, broken reality",
                "environment_line": "bar interior violently illuminated by flashing neon",
                "subject_line": "the empty bar stool and counter"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "handheld",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP008_SH29",
            "source_text": "[Oracle overlays the BREAK \u2014 visceral, not contemplative.]",
            "source_text_hash": "46dfa19b91514ad0d9396cfbe433dacd",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "alienated",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low hum fading into silence",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pull_back",
              "focal_length": "24mm",
              "kinetic_action": "slow retreat, character shrinking in frame, absolute stillness from subject",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "single overhead pendant",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow pull back, isolating the character in the vast empty space",
                "emotion_line": "alienated, unresolved, haunting",
                "environment_line": "wide view of the empty bar, shadows swallowing the edges of the room",
                "subject_line": "DUSTY standing alone behind the long wooden bar"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "pull_back",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 6
            },
            "scene_index": 1,
            "shot_id": "EP008_SH30",
            "source_text": "[The audience is asked to interpret while still reeling.]",
            "source_text_hash": "d833991d8d16b91b597a7968350f7cba",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "diminished",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          }
        ],
        "source_hash": "463a2400881b9f93690ae31640d56dc9",
        "total_shots": 30
      },
      "path": "afterimage/state/visual/plans/ep_008_plan.json"
    },
    {
      "data": {
        "episode_id": "EP009",
        "generated_at": "2023-10-25T12:00:00Z",
        "project": "Starsend",
        "shots": [
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "focused",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "muffled rain against glass",
              "dialogue": [],
              "foley_action": "heavy fabric rustling, zipper clinking"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "motion blur on fingers pulling fabric, kinetic tension in cloth",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "RIGHT",
                    "intensity": "moderate",
                    "motivator": "neon sign through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "motion blur on fingers, fabric tension, shallow depth of field",
                "emotion_line": "tactile discovery, hesitation",
                "environment_line": "dim apartment interior, shadows on fabric",
                "subject_line": "SADIE, hand gripping dark trench coat fabric, pulling pocket open"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP009_SH01",
            "source_text": "Sadie's hand opening a jacket pocket.",
            "source_text_hash": "dd074cfb280e13617f3eed8a49a9f435",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "manipulated",
              "props": [
                {
                  "prop_id": "bar_matchbook",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "muffled rain",
              "dialogue": [],
              "foley_action": "light cardboard fluttering, soft impact on floor"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "motion blur on falling object, kinetic descent frozen mid-air",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE_RIGHT",
                    "intensity": "moderate",
                    "motivator": "neon sign through window",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "motion blur on falling matchbook, high shutter speed freeze",
                "emotion_line": "sudden revelation, gravity taking hold",
                "environment_line": "dark linoleum floor background, out of focus",
                "subject_line": "cardboard matchbook tumbling through the air"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": true,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 2,
            "shot_id": "EP009_SH02",
            "source_text": "A matchbook falls out.",
            "source_text_hash": "7938e28ab136649fa34d2a4d0a7b732f",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "mesmerized",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "bar_matchbook",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low neon hum bleeding through glass",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "100mm",
              "kinetic_action": "static framing, micro-tremor in holding hand",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "bright",
                    "motivator": "neon sign through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "micro-tremor in fingers, slow optical push-in, shallow depth of field on logo",
                "emotion_line": "dawning realization, hypnotic fixation",
                "environment_line": "rain-streaked glass window in deep background",
                "subject_line": "SADIE, holding matchbook near face, neon light reflecting in eyes"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 3,
            "shot_id": "EP009_SH03",
            "source_text": "Close-up \u2014 the logo matches the neon glow she sees through her window every night.",
            "source_text_hash": "a96c1e3941ff598d602fb4ba0d440f58",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "heavy rain on pavement, distant traffic",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "tilt",
              "focal_length": "35mm",
              "kinetic_action": "motion blur on falling rain, static architecture",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "bar exterior neon sign",
                    "quality": "hard"
                  },
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "streetlights",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "motion blur on rain streaks, high contrast lighting",
                "emotion_line": "ominous presence, isolation",
                "environment_line": "wet asphalt reflecting neon, heavy rain falling",
                "subject_line": "dark bar exterior door, glowing neon sign above"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "tilt",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 4,
            "shot_id": "EP009_SH04",
            "source_text": "The bar is downstairs.",
            "source_text_hash": "04e0e6702834034a8c3490d87f702fe1",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "reflective",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "rain against glass",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "voiceover, detached",
                  "is_voiceover": true,
                  "text": "I've lived here two years."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static framing, minimal movement, steady gaze",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "RIGHT",
                    "intensity": "moderate",
                    "motivator": "neon sign through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static composition, center-weighted",
                "emotion_line": "reflective, detached",
                "environment_line": "dim apartment interior, radiator visible",
                "subject_line": "SADIE, standing near window, looking out"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 5,
            "shot_id": "EP009_SH05",
            "source_text": "[VO: SADIE] \"I've lived here two years.",
            "source_text_hash": "eb57b2a43a1de74942e09c776b522e76",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "haunted",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "neon hum",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "The sign downstairs \u2014 I look at it every night."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "slow optical push-in, unblinking stare",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "bright",
                    "motivator": "neon sign through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow push-in, sharp focus on eyes, neon reflection in pupils",
                "emotion_line": "haunted routine",
                "environment_line": "rain droplets on glass in foreground, out of focus",
                "subject_line": "SADIE, face illuminated by neon, staring downward through glass"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 6,
            "shot_id": "EP009_SH06",
            "source_text": "The sign downstairs \u2014 I look at it every night.",
            "source_text_hash": "91174b47474e2af5ae0a22ed6b5e1821",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "avoidant",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "rain against glass",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "I never went in."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "slight head turn, breaking gaze from window",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "apartment overhead",
                    "quality": "soft"
                  },
                  {
                    "color_temp": "warm",
                    "direction": "BEHIND",
                    "intensity": "moderate",
                    "motivator": "neon sign through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "head turning, shifting focus, rim light on hair",
                "emotion_line": "avoidance, denial",
                "environment_line": "shadowy apartment interior, kitchen counter visible",
                "subject_line": "SADIE, turning away from window, looking into room"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 7,
            "shot_id": "EP009_SH07",
            "source_text": "I never went in.",
            "source_text_hash": "209a6fdfded7128a23fa9420ec59a18e",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "confused",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "bar_matchbook",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "But the matchbook was in my coat."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "tilt",
              "focal_length": "85mm",
              "kinetic_action": "looking down at hand, slow tilt down to matchbook",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "apartment overhead",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "tilt down from face to hand, shallow depth of field",
                "emotion_line": "confusion, confronting physical evidence",
                "environment_line": "dim apartment interior",
                "subject_line": "SADIE, looking down at matchbook in hand"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "tilt",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 8,
            "shot_id": "EP009_SH08",
            "source_text": "But the matchbook was in my coat.",
            "source_text_hash": "dad230049df3e2c5d24609705e9f9949",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "dread",
                  "screen_position": "center",
                  "visibility": "off_screen",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "manipulated",
              "props": [
                {
                  "prop_id": "bar_matchbook",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "voiceover, escalating tension",
                  "is_voiceover": true,
                  "text": "My coat, my pocket, my handwriting on the inside cover."
                }
              ],
              "foley_action": "cardboard creaking open"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "100mm",
              "kinetic_action": "thumb opening matchbook cover, micro-tremor in fingers",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "apartment overhead",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "macro focus on cardboard texture and ink, slow push-in",
                "emotion_line": "intimate dread",
                "environment_line": "dark background, out of focus",
                "subject_line": "SADIE's thumb flipping open cardboard matchbook cover"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 9,
            "shot_id": "EP009_SH09",
            "source_text": "My coat, my pocket, my handwriting on the inside cover.",
            "source_text_hash": "8c579e104a4e68f83ac9f72a6187cb24",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "shocked",
                  "screen_position": "background",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "bar_matchbook",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "A phone number."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static framing, sharp focus on ink",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "apartment overhead",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "over-the-shoulder perspective, static hold on handwritten ink",
                "emotion_line": "undeniable proof",
                "environment_line": "dim apartment interior",
                "subject_line": "SADIE, out of focus in background, holding open matchbook in sharp foreground focus"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 10,
            "shot_id": "EP009_SH10",
            "source_text": "A phone number.",
            "source_text_hash": "18956fcbb9eef4cd38a8071386bd7731",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "chilled",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "His number."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "eyes widening slightly, slow push-in",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "RIGHT",
                    "intensity": "moderate",
                    "motivator": "neon sign through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow push-in on face, shifting light on features",
                "emotion_line": "chilling realization",
                "environment_line": "dim apartment interior",
                "subject_line": "SADIE, looking down, eyes widening"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 11,
            "shot_id": "EP009_SH11",
            "source_text": "His number.",
            "source_text_hash": "748027dbd89d8b3513f9df545700d211",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "rigid",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "bar_matchbook",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "The disconnected one."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "swallowing hard, rigid posture",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "RIGHT",
                    "intensity": "moderate",
                    "motivator": "neon sign through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, visible tension in neck",
                "emotion_line": "impossibility, cognitive dissonance",
                "environment_line": "dim apartment interior",
                "subject_line": "SADIE, standing rigid, staring at matchbook"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 12,
            "shot_id": "EP009_SH12",
            "source_text": "The disconnected one.",
            "source_text_hash": "ee0bc646dcf56fa5087d15583003f7b1",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "fearful",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "I wrote it down."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "slow push-in, shallow breath",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "RIGHT",
                    "intensity": "moderate",
                    "motivator": "neon sign through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow push-in, shallow breathing visible in chest",
                "emotion_line": "self-doubt, fear",
                "environment_line": "dim apartment interior",
                "subject_line": "SADIE, face tight with confusion"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 13,
            "shot_id": "EP009_SH13",
            "source_text": "I wrote it down.",
            "source_text_hash": "bc4e0234524512f91f61281b5cf457e5",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "panicked",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "voiceover, sharp",
                  "is_voiceover": true,
                  "text": "When?"
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "eyes darting slightly, static frame",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "RIGHT",
                    "intensity": "bright",
                    "motivator": "neon sign through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "eyes darting, searching memory, sharp focus on iris",
                "emotion_line": "panic, memory fracture",
                "environment_line": "darkness",
                "subject_line": "SADIE, extreme close up on eyes"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 14,
            "shot_id": "EP009_SH14",
            "source_text": "When?\"",
            "source_text_hash": "8d79e75cba6fd7e286d879ee864ed280",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "Escalating neon hum, vibrating frequency",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "vibrating glass, slow push-in on neon tube",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "blinding",
                    "motivator": "bar exterior neon sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "macro focus on glowing gas, slight camera vibration",
                "emotion_line": "overwhelming sensory input",
                "environment_line": "wet glass window pane, dark street background",
                "subject_line": "glowing neon bar logo tube"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 15,
            "shot_id": "EP009_SH15",
            "source_text": "[Sound design escalates through the VO: neon hum louder,",
            "source_text_hash": "cd38d897f475b1f404a4473003d34248",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "hyperventilating",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "Compressor hum throbbing",
              "dialogue": [],
              "foley_action": "Heavy, rhythmic breathing matching hum"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "rapid chest rise and fall, motion blur on fabric",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "RIGHT",
                    "intensity": "moderate",
                    "motivator": "neon sign through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "rapid breathing, fabric moving, static framing",
                "emotion_line": "panic attack, hyperventilation",
                "environment_line": "dark apartment interior",
                "subject_line": "SADIE, extreme close up on chest and lower face"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 16,
            "shot_id": "EP009_SH16",
            "source_text": "compressor hum matching her breathing,",
            "source_text_hash": "f265c497054788c61d787c550fb1d105",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "Intensifying heavy rain hammering on pavement, roaring crescendo",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "tilt",
              "focal_length": "35mm",
              "kinetic_action": "heavy motion blur on driving rain, splashing on asphalt",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE",
                    "intensity": "bright",
                    "motivator": "streetlights",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "tilt down to puddles, aggressive rain impact, high contrast",
                "emotion_line": "crescendo, breaking point",
                "environment_line": "city street, crosswalk signs in background",
                "subject_line": "wet asphalt street, heavy rain splashing"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "tilt",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 17,
            "shot_id": "EP009_SH17",
            "source_text": "rain intensifying. Building toward eruption.]",
            "source_text_hash": "5c03ee22a96e70ed68de150dfb85d8b1",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "compelled",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "rain muffled",
              "dialogue": [],
              "foley_action": "heavy wet boots thudding on linoleum"
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "t2v",
            "prompt_data": {
              "camera_movement": "tracking",
              "focal_length": "35mm",
              "kinetic_action": "motion blur on trailing limbs, purposeful stride",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "apartment overhead",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "lateral tracking shot, motion blur on coat tails",
                "emotion_line": "compelled, trance-like",
                "environment_line": "shadowy apartment interior, kitchen counter passed by",
                "subject_line": "SADIE, walking across linoleum floor toward heavy door"
              },
              "shot_type": "FS"
            },
            "routing_data": {
              "camera_complexity": "tracking",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 18,
            "shot_id": "EP009_SH18",
            "source_text": "GHOST FRACTURE: She walks to her apartment door.",
            "source_text_hash": "cdaa45a5b3b4b1806e33fd14ddb246b0",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_stairwell",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "hollow echo of stairwell",
              "dialogue": [],
              "foley_action": "echoing footsteps descending rapidly"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "tilt",
              "focal_length": "24mm",
              "kinetic_action": "static architecture, deep perspective lines",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "stairwell fluorescent",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "tilt down following the stairs, deep focus",
                "emotion_line": "descent into the underworld",
                "environment_line": "painted brick walls, harsh shadows, descending spiral",
                "subject_line": "empty linoleum steps descending, metal handrail"
              },
              "shot_type": "LS"
            },
            "routing_data": {
              "camera_complexity": "tilt",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 19,
            "shot_id": "EP009_SH19",
            "source_text": "Down the stairwell.",
            "source_text_hash": "33cc26b3d863e1908d7338bff33ac1f7",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "Flickering neon buzz, electrical snapping",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "strobe effect on lighting, static framing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "bar exterior neon sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "strobe lighting effect, sharp focus on glass tube",
                "emotion_line": "instability, warning",
                "environment_line": "dark wet brick wall exterior",
                "subject_line": "neon bar logo sign"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 20,
            "shot_id": "EP009_SH20",
            "source_text": "The neon flickers.",
            "source_text_hash": "d07405fc54fa376aac52e2a3c6466e45",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "Rain hammering loudly on pavement",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "heavy motion blur on water droplets, violent splashing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE",
                    "intensity": "bright",
                    "motivator": "streetlights",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "macro focus on rain impacts, violent splashing, high shutter speed",
                "emotion_line": "chaos, sensory overload",
                "environment_line": "street level, reflecting neon colors",
                "subject_line": "puddle on wet asphalt"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 21,
            "shot_id": "EP009_SH21",
            "source_text": "Rain hammers.",
            "source_text_hash": "6dcfb826186a4bdb10213c3fd9094b21",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "determined",
                  "screen_position": "right",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "roaring rain, neon buzz",
              "dialogue": [],
              "foley_action": "wet fabric stretching"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "50mm",
              "kinetic_action": "motion blur on reaching hand, forward lean",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE_LEFT",
                    "intensity": "bright",
                    "motivator": "bar exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow push-in, hand entering frame, tense fingers",
                "emotion_line": "anticipation, threshold crossing",
                "environment_line": "wet street exterior, neon reflections on wet skin",
                "subject_line": "SADIE, hand extended toward dark bar exterior door handle"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 22,
            "shot_id": "EP009_SH22",
            "source_text": "She reaches for the bar's door handle \u2014 the audience expects the crossing.",
            "source_text_hash": "4c79dc10584443a1e9a5368d72796848",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "paralyzed",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "sound design abruptly cuts to near silence",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "i2v",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "kinetic energy frozen mid-transfer, sudden rigid stillness",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE_LEFT",
                    "intensity": "bright",
                    "motivator": "bar exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "absolute stillness against moving rain, static framing",
                "emotion_line": "paralysis, failure of nerve",
                "environment_line": "wet street exterior, rain pouring around her",
                "subject_line": "SADIE, frozen in place, hand hovering inches from door handle"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": true,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 23,
            "shot_id": "EP009_SH23",
            "source_text": "She stops.",
            "source_text_hash": "af3c37443baedae10459d43c2c531590",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "Neon buzz slowing down, pitching lower",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "pulsing light frequency slowing down",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "dim",
                    "motivator": "bar exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "light intensity fading and pulsing slowly",
                "emotion_line": "winding down, loss of momentum",
                "environment_line": "dark wet brick wall",
                "subject_line": "neon bar logo sign"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 24,
            "shot_id": "EP009_SH24",
            "source_text": "The neon slows.",
            "source_text_hash": "0c6a11f61df65d31fb0297dfcee19330",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "Rain softening to a gentle patter",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pull_back",
              "focal_length": "35mm",
              "kinetic_action": "gentle motion blur on light rain, slow pull back",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "streetlights",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow pull back, gentle rain falling, soft focus",
                "emotion_line": "melancholy, aftermath",
                "environment_line": "city street exterior, crosswalk signs",
                "subject_line": "empty wet street, puddles reflecting dim light"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "pull_back",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 25,
            "shot_id": "EP009_SH25",
            "source_text": "The rain softens.",
            "source_text_hash": "90dedf88a8e8a179293a153781673634",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "defeated",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "soft rain against glass",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static framing, motionless posture",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "neon sign through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static composition, silhouette against window glow",
                "emotion_line": "defeat, cyclical trap",
                "environment_line": "dim apartment interior, rain droplets on glass",
                "subject_line": "SADIE, standing at glass window, looking down"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 26,
            "shot_id": "EP009_SH26",
            "source_text": "Sadie at her window, looking at the neon sign below.",
            "source_text_hash": "ad0bde85c629c2682cef2009a502c960",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "resigned",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "distant neon hum",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "slow push-in, heavy sigh visible in shoulders",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "neon sign through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow push-in, shoulders dropping slightly",
                "emotion_line": "resignation, invisible barrier",
                "environment_line": "dim apartment interior, glass reflections",
                "subject_line": "SADIE, face illuminated by neon, looking down through window"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 27,
            "shot_id": "EP009_SH27",
            "source_text": "The bar she's lived above for two years without entering.",
            "source_text_hash": "b969b09967f939118b174c7952be6c58",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "frozen",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "soft rain",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "absolute stillness, unblinking gaze",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "neon sign through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static hold, reflection of neon sign over her features",
                "emotion_line": "stuck, unable to cross the threshold",
                "environment_line": "darkness surrounding her face, neon glow on skin",
                "subject_line": "SADIE, staring blankly through window glass"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 5
            },
            "scene_index": 28,
            "shot_id": "EP009_SH28",
            "source_text": "RHYME with Ep 3's threshold \u2014 there she crossed (called the number); here she freezes.",
            "source_text_hash": "21c241d3602663dde11e71b9693fe6be",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "gentle rain fading out",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pull_back",
              "focal_length": "35mm",
              "kinetic_action": "slow pull back, lingering static environment",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "dim",
                    "motivator": "bar exterior neon sign",
                    "quality": "soft"
                  },
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "streetlights",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow pull back, wide establishing hold",
                "emotion_line": "lingering mystery, unresolved",
                "environment_line": "wet asphalt, gentle rain falling, empty street",
                "subject_line": "dark bar exterior door, glowing neon sign above"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "pull_back",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 5
            },
            "scene_index": 29,
            "shot_id": "EP009_SH29",
            "source_text": "Hold.",
            "source_text_hash": "bcf4f99d900646d6d43c7ccdcf60baf4",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          }
        ],
        "source_hash": "e65c3f3e62d4c7b389d141d8f8631304",
        "total_shots": 29
      },
      "path": "afterimage/state/visual/plans/ep_009_plan.json"
    },
    {
      "data": {
        "episode_id": "EP010",
        "generated_at": "2023-10-25T12:00:00Z",
        "project": "Starsend",
        "shots": [
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low hum of distant city traffic, faint buzz of neon sign",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "24mm",
              "kinetic_action": "static framing, deep depth of field, atmospheric dust motes catching light",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "overhead pendant lights",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "still atmosphere, heavy silence, dust suspended in warm light",
                "emotion_line": "lonely, abandoned, quiet anticipation",
                "environment_line": "dimly lit tavern interior, polished wood, glass window in background, shadows pooling",
                "subject_line": "empty wooden bar counter, leather stools lined up, seat seven in foreground"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 5
            },
            "scene_index": 1,
            "shot_id": "EP010_SH01",
            "source_text": "The bar, empty, lights low.",
            "source_text_hash": "f82ca756da453d61849522868a46b931",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "focused",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low hum of distant city traffic",
              "dialogue": [],
              "foley_action": "soft skin contact against polished wood"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "shallow depth of field, sharp focus on skin texture against wood, static composition",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "overhead pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static hand, weight settling onto wood, subtle skin tension",
                "emotion_line": "tactile focus, grounding, quiet observation",
                "environment_line": "polished wood surface, dark tavern interior",
                "subject_line": "Dusty's hand resting flat on polished wooden bar counter, rolled sleeve visible"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP010_SH02",
            "source_text": "Dusty's hand resting on the bar surface",
            "source_text_hash": "719a8bc4f74cbb321aac19af6e9e2471",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low hum of distant city traffic",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "tilt",
              "focal_length": "50mm",
              "kinetic_action": "slow downward tilt, rack focus from bar edge to leather stool",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "BELOW_LEFT",
                    "intensity": "dim",
                    "motivator": "bar under-lighting",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "camera tilting down to reveal seat, shifting focal plane",
                "emotion_line": "absence, specific memory, lingering ghost",
                "environment_line": "dark tavern floor, brass footrail, shadows",
                "subject_line": "empty leather bar stool, worn texture, positioned at wooden counter"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "tilt",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP010_SH03",
            "source_text": "at seat seven.",
            "source_text_hash": "f16f9df79c7159353e86e4c93609ca1f",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "searching",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": "faint friction of skin sliding on polished wood"
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "i2v",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "100mm",
              "kinetic_action": "macro lens push-in, subtle motion blur on spreading fingertips, extreme shallow depth of field",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "overhead pendant light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "fingers extending outward, skin pressing into wood, tendons shifting",
                "emotion_line": "seeking, tactile sensitivity, reaching out",
                "environment_line": "polished wood grain, dark background",
                "subject_line": "Dusty's fingers spreading apart on wooden bar surface"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": true,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP010_SH04",
            "source_text": "His fingers spread.",
            "source_text_hash": "e0e4b3520e8ce56c9720ae69134bd369",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "focused",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": "subtle pressure creak of wood"
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "i2v",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "micro-tremor in fingertips, static framing, intense macro focus",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "overhead pendant light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "fingertips compressing against hard surface, blood blanching under nails",
                "emotion_line": "intense concentration, sensory overload",
                "environment_line": "polished wood grain, dark background",
                "subject_line": "Dusty's fingertips pressing firmly into wooden bar grain"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": true,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP010_SH05",
            "source_text": "Feeling.",
            "source_text_hash": "00c3863f88575c66a2f161435cbc63ce",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "detached",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "manipulated",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover, reflective, quiet",
                  "is_voiceover": true,
                  "text": "You wipe down a bar every night."
                }
              ],
              "foley_action": "rhythmic swish of cloth on wood"
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "t2v",
            "prompt_data": {
              "camera_movement": "tracking",
              "focal_length": "35mm",
              "kinetic_action": "smooth lateral tracking matching arm movement, motion blur on wiping hand",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE_RIGHT",
                    "intensity": "moderate",
                    "motivator": "overhead pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "rhythmic sweeping motion of arm, torso shifting weight",
                "emotion_line": "routine, mechanical repetition, muscle memory",
                "environment_line": "tavern interior, liquor bottles in background out of focus",
                "subject_line": "Dusty standing behind bar, wiping wooden surface with cloth in hand"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "tracking",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP010_SH06",
            "source_text": "[VO: DUSTY] \"You wipe down a bar every night.",
            "source_text_hash": "98d4191288380b96443709ff2d06663e",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "detached",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "manipulated",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "Same motion,"
                }
              ],
              "foley_action": "swish of cloth on wood"
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "i2v",
            "prompt_data": {
              "camera_movement": "tracking",
              "focal_length": "50mm",
              "kinetic_action": "camera tracking with hand, motion blur on cloth, rhythmic sweep",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "overhead pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "hand moving in tight circular motion, cloth gliding over wood",
                "emotion_line": "hypnotic repetition",
                "environment_line": "polished wood surface reflecting warm light",
                "subject_line": "Dusty's hand holding polishing cloth, sweeping across wooden bar"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "tracking",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": true,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP010_SH07",
            "source_text": "Same motion,",
            "source_text_hash": "6aa36eabdf390ddd59da309ff108a442",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "detached",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "manipulated",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "same surfaces."
                }
              ],
              "foley_action": "close-up friction sound of cloth"
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "i2v",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "macro focus on cloth fibers, shallow depth of field, cloth sliding through frame",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "BELOW",
                    "intensity": "dim",
                    "motivator": "bar surface reflection",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "cloth fibers dragging across microscopic grooves in wood",
                "emotion_line": "intimate familiarity",
                "environment_line": "micro-texture of varnished wood",
                "subject_line": "polishing cloth pressed against wood grain by Dusty's fingers"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": true,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP010_SH08",
            "source_text": "same surfaces.",
            "source_text_hash": "e97fc54b7672f4d9984c6eeb44eafe27",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "realization",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover, shifting tone",
                  "is_voiceover": true,
                  "text": "But you've never touched it like this \u2014"
                }
              ],
              "foley_action": "wiping sound stops abruptly"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "50mm",
              "kinetic_action": "slow push-in, motion stops abruptly, rigid posture",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE_LEFT",
                    "intensity": "moderate",
                    "motivator": "overhead pendant light",
                    "quality": "mixed"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "sudden stillness, body tension increasing, gaze locked downward",
                "emotion_line": "realization, breaking routine, sudden hyper-awareness",
                "environment_line": "tavern interior, blurred background",
                "subject_line": "Dusty standing behind bar, wiping motion halted, looking down at counter"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP010_SH09",
            "source_text": "But you've never touched it like this \u2014",
            "source_text_hash": "fca2725de49e9a4032cd42a0c03483d4",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "searching",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "looking for something."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "tight push-in on eyes, catchlight shifting, micro-saccades",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "BELOW",
                    "intensity": "dim",
                    "motivator": "bar reflection",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "eyes scanning a fixed point, pupils dilating slightly",
                "emotion_line": "intense searching, vulnerability, obsession",
                "environment_line": "dark background, out of focus",
                "subject_line": "Dusty's face, eyes angled downward toward the bar surface"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP010_SH10",
            "source_text": "looking for something.",
            "source_text_hash": "c36ab9722efff38d4c5bbcc23f0faacf",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "disbelief",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "Seat seven is warm."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static framing, hand hovering just above wood, subtle heat haze effect",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "overhead pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "hand suspended, feeling radiant heat, fingers slightly curled",
                "emotion_line": "disbelief, sensory anomaly",
                "environment_line": "polished wood, edge of leather stool visible in background blur",
                "subject_line": "Dusty's hand hovering millimeters above the wooden bar surface in front of seat seven"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP010_SH11",
            "source_text": "Seat seven is warm.",
            "source_text_hash": "d68e7e85be1fc1c7120002c0d9a9b05e",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "focused",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "Not glass-warm."
                }
              ],
              "foley_action": "soft thud of palm on wood"
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "i2v",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "hand makes contact with wood, sudden stop in motion, sharp focus",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "overhead pendant light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "skin flattening against hard surface, absorbing temperature",
                "emotion_line": "evaluating, comparing sensations",
                "environment_line": "macro wood grain",
                "subject_line": "Dusty's palm pressing flat against the wooden bar"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": true,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP010_SH12",
            "source_text": "Not glass-warm.",
            "source_text_hash": "13624e9f8488fe0ba272733c607ad050",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "focused",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "Skin-warm."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "i2v",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "100mm",
              "kinetic_action": "macro push-in on fingertips, skin blanching, micro-tremor",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "overhead pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "fingertips digging in slightly, seeking a pulse in inanimate material",
                "emotion_line": "intimate connection, impossible reality",
                "environment_line": "macro wood grain",
                "subject_line": "Dusty's fingertips pressing deeply into the wood"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": true,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP010_SH13",
            "source_text": "Skin-warm.",
            "source_text_hash": "97b1ea1db12db32290dbf1068010491f",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "concentrating",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "ambient room tone drops slightly, becoming more intimate",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "And if I close my eyes,"
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "eyelids fluttering shut, facial muscles relaxing into focus, static framing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "BELOW",
                    "intensity": "dim",
                    "motivator": "bar reflection",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "eyes shutting, shutting out the visual world to enhance touch",
                "emotion_line": "surrender to sensation, deep concentration",
                "environment_line": "dark tavern background, out of focus",
                "subject_line": "Dusty's face, eyes closing slowly, head tilting slightly down"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP010_SH14",
            "source_text": "And if I close my eyes,",
            "source_text_hash": "e833ff39ca05410a34036389f2701eaa",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "concentrating",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "I can feel the outline."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "100mm",
              "kinetic_action": "slow push-in on closed eyes, micro-tremor in jaw, shallow breathing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "BELOW",
                    "intensity": "dim",
                    "motivator": "bar reflection",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "eyelids twitching slightly, head mapping an invisible shape",
                "emotion_line": "hallucinatory clarity, tactile mapping",
                "environment_line": "pure darkness in background",
                "subject_line": "Dusty's closed eyes and brow, tension in facial muscles"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP010_SH15",
            "source_text": "I can feel the outline.",
            "source_text_hash": "df03a4d36cb6f2a4c090d8f672ce843b",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "delicate",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "A forearm."
                }
              ],
              "foley_action": "faint rustle of Dusty's sleeve"
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "t2v",
            "prompt_data": {
              "camera_movement": "tracking",
              "focal_length": "85mm",
              "kinetic_action": "camera tracking hand as it moves through empty air just above the bar, smooth motion",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "overhead pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "fingers curving around an invisible forearm, moving laterally",
                "emotion_line": "ghostly interaction, delicate touch",
                "environment_line": "wooden bar surface below, out of focus",
                "subject_line": "Dusty's hand tracing a cylindrical shape in the empty air above the bar"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "tracking",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP010_SH16",
            "source_text": "A forearm.",
            "source_text_hash": "4912a5f9231b6f078d5ac573b7fb37a4",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "delicate",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "An elbow."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "i2v",
            "prompt_data": {
              "camera_movement": "tracking",
              "focal_length": "85mm",
              "kinetic_action": "hand stops tracking, fingers cup an invisible joint, slight downward pressure",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "overhead pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "fingers curling around an invisible elbow resting on the wood",
                "emotion_line": "precise memory, physical phantom",
                "environment_line": "wooden bar edge, dark background",
                "subject_line": "Dusty's hand cupping empty space near the edge of the bar"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "tracking",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": true,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP010_SH17",
            "source_text": "An elbow.",
            "source_text_hash": "0c1dbb5569eafc54544842124591b6f1",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "intimate",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "The weight of someone leaning in."
                }
              ],
              "foley_action": "creak of floorboards under shifting weight"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static framing, body leaning forward, subtle shift in center of gravity",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE_LEFT",
                    "intensity": "moderate",
                    "motivator": "overhead pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "torso angled forward, reacting to an invisible presence leaning toward him",
                "emotion_line": "intimate proximity, phantom weight, shared space",
                "environment_line": "tavern interior, empty seat seven in foreground",
                "subject_line": "Dusty leaning over the bar counter, eyes closed, hands resting on wood"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP010_SH18",
            "source_text": "The weight of someone leaning in.",
            "source_text_hash": "93a711e729e746c47b12d8dbe63218f0",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "conviction",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "complete silence, ambient tone drops out",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover, absolute certainty",
                  "is_voiceover": true,
                  "text": "She's here right now."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "slow push-in, rigid stillness, breath held",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "BELOW",
                    "intensity": "dim",
                    "motivator": "bar reflection",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "absolute stillness, chest frozen mid-breath",
                "emotion_line": "absolute conviction, haunting presence",
                "environment_line": "dark tavern background",
                "subject_line": "Dusty's face, eyes closed, head tilted slightly as if listening"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP010_SH19",
            "source_text": "She's here right now.\"",
            "source_text_hash": "19c18d2d44ea7895ccced428210481d3",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "connected",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "silence continues",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static framing, hand resting heavily",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "overhead pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "fingers relaxed, absorbing the phantom warmth",
                "emotion_line": "connection, grounding",
                "environment_line": "polished wood surface",
                "subject_line": "Dusty's hand resting flat and heavy on the wooden bar"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP010_SH20",
            "source_text": "Dusty's hand on the bar,",
            "source_text_hash": "c02dfd37a834c7c7a865c76c462040aa",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "desperate",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "i2v",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "static framing, absolute stillness in facial muscles",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "BELOW",
                    "intensity": "dim",
                    "motivator": "bar reflection",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "eyelids sealed shut, holding onto the internal image",
                "emotion_line": "desperation to maintain the illusion",
                "environment_line": "dark background",
                "subject_line": "Dusty's face, eyes tightly closed"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": true,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP010_SH21",
            "source_text": "eyes closed.",
            "source_text_hash": "c35eb62ba78de46e2175778b2963e708",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "shocked",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "ambient room tone rushes back in",
              "dialogue": [],
              "foley_action": "sharp intake of breath"
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "i2v",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "sudden motion blur on eyelids opening, sharp focus on iris, catchlight snapping into view",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "BELOW",
                    "intensity": "dim",
                    "motivator": "bar reflection",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "eyelids flying open, pupils adjusting to light",
                "emotion_line": "shock, breaking the spell, sudden return to reality",
                "environment_line": "dark background",
                "subject_line": "Dusty's eyes snapping open"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": true,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP010_SH22",
            "source_text": "Then:",
            "source_text_hash": "92a9cc4bce236eb99a7e3e8a12d9c736",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "loss",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover, defeated",
                  "is_voiceover": true,
                  "text": "I opened them."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "i2v",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "static framing, eyes wide, staring at empty space",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "BELOW",
                    "intensity": "dim",
                    "motivator": "bar reflection",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "unblinking stare, processing the visual emptiness",
                "emotion_line": "loss, harsh reality",
                "environment_line": "dark background",
                "subject_line": "Dusty's eyes, wide open and staring forward"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": true,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP010_SH23",
            "source_text": "\"I opened them.",
            "source_text_hash": "c36aa13f9e27c68728253008bf2b00c4",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "withdrawn",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "The warmth was gone."
                }
              ],
              "foley_action": "faint scrape of skin leaving wood"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pull_back",
              "focal_length": "85mm",
              "kinetic_action": "slow pull-back, hand recoiling slightly, motion blur on fingers retracting",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "overhead pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "fingers curling inward, palm lifting off the wood",
                "emotion_line": "cold realization, withdrawal",
                "environment_line": "polished wood surface",
                "subject_line": "Dusty's hand pulling back slightly from the wooden bar"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "pull_back",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP010_SH24",
            "source_text": "The warmth was gone.\"",
            "source_text_hash": "8338fd23770953bfc6096522c9b1b371",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "empty",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low hum of distant city traffic",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static framing, sharp focus on empty space around hand",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "overhead pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "hand completely still, isolated in frame",
                "emotion_line": "emptiness, stark reality",
                "environment_line": "empty expanse of polished wood, no objects nearby",
                "subject_line": "Dusty's hand resting limply on the bare wooden bar"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP010_SH25",
            "source_text": "His hand on empty wood.",
            "source_text_hash": "d6c3656de79fe8f70f1b2dc4b2e3e81d",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pan",
              "focal_length": "50mm",
              "kinetic_action": "slow pan from wood down to the leather stool, rack focus",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "BELOW_LEFT",
                    "intensity": "dim",
                    "motivator": "bar under-lighting",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "camera panning down to reveal the seat cushion",
                "emotion_line": "shifting attention, lingering evidence",
                "environment_line": "dark tavern floor, brass footrail",
                "subject_line": "leather bar stool at seat seven"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "pan",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP010_SH26",
            "source_text": "But the impression",
            "source_text_hash": "d23af9d75c57ce1ab0bdd75c8c2d670d",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "slow push-in on the leather texture, shadows shifting to reveal depth",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "LEFT",
                    "intensity": "dim",
                    "motivator": "bar under-lighting",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "camera pushing into the depression in the seat",
                "emotion_line": "physical proof, undeniable trace",
                "environment_line": "macro texture of cracked leather",
                "subject_line": "worn leather cushion of bar stool, visible indentation in the center"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": true,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP010_SH27",
            "source_text": "in the leather seat",
            "source_text_hash": "1f75e3d095a05222f4c941cbc3b0ad97",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low, ominous bass rumble building",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "static framing, high contrast lighting emphasizing the depth of the crease",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "LEFT",
                    "intensity": "moderate",
                    "motivator": "bar under-lighting",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static hold on the physical deformation of the leather",
                "emotion_line": "impossible weight, lingering ghost",
                "environment_line": "macro texture, deep shadows pooling in the indentation",
                "subject_line": "deep, heavy impression in the leather bar stool cushion"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": true,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP010_SH28",
            "source_text": "is deeper than before.",
            "source_text_hash": "2d808542b546d5a2a70b170de1385199",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "dissonance",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "bass rumble peaks, discordant tone",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "static framing, slight Dutch angle, rigid posture",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE_RIGHT",
                    "intensity": "moderate",
                    "motivator": "overhead pendant light",
                    "quality": "mixed"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "frozen in place, staring at the empty stool",
                "emotion_line": "cognitive dissonance, reality breaking",
                "environment_line": "tavern interior, slightly skewed perspective",
                "subject_line": "Dusty standing behind the bar, staring down at seat seven"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP010_SH29",
            "source_text": "DISSONANCE \u2014",
            "source_text_hash": "5eb5b68f37ac4e01fd9c07ae7ada3d85",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "disturbed",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "discordant tone sustains",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "slow push-in on face, micro-expressions of confusion and fear",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "BELOW",
                    "intensity": "dim",
                    "motivator": "bar reflection",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "eyes darting slightly as mind tries to process conflicting information",
                "emotion_line": "disturbed, questioning sanity",
                "environment_line": "dark background",
                "subject_line": "Dusty's face, looking down, brow furrowed"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP010_SH30",
            "source_text": "the voice says gone,",
            "source_text_hash": "e4f20bf8bfa9e281f00f8e8169ff3719",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "discordant tone slowly fades into silence",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static framing, hyper-sharp focus on the leather impression",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "LEFT",
                    "intensity": "moderate",
                    "motivator": "bar under-lighting",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static hold on the physical evidence of weight",
                "emotion_line": "undeniable presence, haunting proof",
                "environment_line": "macro texture of leather, deep shadows",
                "subject_line": "deep impression in the leather bar stool"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP010_SH31",
            "source_text": "the image says more present than ever.",
            "source_text_hash": "b13e69f890b53f91c467bbc09fd725d3",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "isolated",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_controlled_bartender"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low hum of distant city traffic returns, heavy silence",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pull_back",
              "focal_length": "24mm",
              "kinetic_action": "slow, creeping pull-back, expanding the empty space around the character",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "overhead pendant lights",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "absolute stillness, figure dwarfed by the empty room",
                "emotion_line": "profound isolation, lingering ghost, unresolved tension",
                "environment_line": "dimly lit tavern interior, empty stools, shadows pooling in corners",
                "subject_line": "Dusty standing alone behind the long wooden bar, staring at empty seat seven"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "pull_back",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 5
            },
            "scene_index": 1,
            "shot_id": "EP010_SH32",
            "source_text": "Hold.",
            "source_text_hash": "bcf4f99d900646d6d43c7ccdcf60baf4",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "diminished",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          }
        ],
        "source_hash": "21524a000402849021f476d074218998",
        "total_shots": 32
      },
      "path": "afterimage/state/visual/plans/ep_010_plan.json"
    },
    {
      "data": {
        "episode_id": "EP011",
        "generated_at": "2023-10-25T12:00:00Z",
        "project": "Starsend",
        "shots": [
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "desperate",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "heavy rain, distant thunder, wet footsteps slapping asphalt",
              "dialogue": [],
              "foley_action": "heavy breathing, fabric swishing, boots hitting puddles"
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "t2v",
            "prompt_data": {
              "camera_movement": "tracking",
              "focal_length": "35mm",
              "kinetic_action": "motion blur on trailing limbs, forward lean, kinetic diagonal composition, heavy footfalls",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "ABOVE_RIGHT",
                    "intensity": "bright",
                    "motivator": "neon street signs",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "motion blur on limbs, kinetic energy frozen mid-stride, water kicking up from boots",
                "emotion_line": "desperate urgency, physical exertion",
                "environment_line": "wet asphalt reflecting neon, dark city street, rain-slicked surfaces",
                "subject_line": "SADIE sprinting aggressively, arms pumping, head down"
              },
              "shot_type": "FS"
            },
            "routing_data": {
              "camera_complexity": "tracking",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP011_SH01",
            "source_text": "Sadie sprints down neon-lit streets toward the bar.",
            "source_text_hash": "09b45c4b255463d825b534564efecf2f",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "straining",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "howling wind, aggressive rain impacts",
              "dialogue": [],
              "foley_action": "coat snapping in wind"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "handheld",
              "focal_length": "50mm",
              "kinetic_action": "camera shake, wind resistance pushing fabric back, rain lashing across lens",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE_LEFT",
                    "intensity": "moderate",
                    "motivator": "flickering streetlight",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "fabric whipping in wind, rain streaking horizontally across frame, unstable framing",
                "emotion_line": "struggling against overwhelming environmental force",
                "environment_line": "hostile urban street, debris blowing through frame",
                "subject_line": "SADIE leaning forward against invisible wind, coat billowing violently behind her"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "handheld",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 2,
            "shot_id": "EP011_SH02",
            "source_text": "The city fights her \u2014",
            "source_text_hash": "3848679646f5320aba29b4ab3b6b3202",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "heavy electrical clunks, sequential power down whines",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "24mm",
              "kinetic_action": "rapid sequential light extinction, encroaching darkness",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "dying streetlights",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "pools of light vanishing sequentially, shadows swallowing the street",
                "emotion_line": "ominous, systematic failure",
                "environment_line": "wet asphalt reflecting diminishing light pools, deep urban canyon",
                "subject_line": "Row of streetlights receding into distance"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 3,
            "shot_id": "EP011_SH03",
            "source_text": "streetlights shut off in sequence,",
            "source_text_hash": "4f260aae51729a53b61ced31f3a43508",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "hunted",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "darkness rushing sound, rain intensifying",
              "dialogue": [],
              "foley_action": "rapid splashing footsteps fading"
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "t2v",
            "prompt_data": {
              "camera_movement": "tracking",
              "focal_length": "85mm",
              "kinetic_action": "shadow line advancing rapidly across ground, motion blur on running figure",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "last remaining streetlight ahead",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "hard shadow line moving forward to swallow her, frantic running motion",
                "emotion_line": "hunted, outpaced by the environment",
                "environment_line": "long stretch of wet pavement, darkness consuming the background",
                "subject_line": "SADIE running away from camera, small in frame"
              },
              "shot_type": "LS"
            },
            "routing_data": {
              "camera_complexity": "tracking",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 4,
            "shot_id": "EP011_SH04",
            "source_text": "chasing her down the block.",
            "source_text_hash": "593a68cd572a8114e068dd193156f3c8",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "diminished",
                "shared_lighting": false
              },
              "screen_direction": "away-from-camera"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "high-pitched wind shriek, violent water impacts",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "extreme motion blur on water droplets, high velocity lateral movement",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "BEHIND",
                    "intensity": "dim",
                    "motivator": "ambient city glow",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "water droplets stretched into horizontal white streaks by velocity",
                "emotion_line": "unnatural, violent weather",
                "environment_line": "abstract dark background, out of focus street elements",
                "subject_line": "Thick sheets of rain cutting sideways across the frame"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 5,
            "shot_id": "EP011_SH05",
            "source_text": "Rain goes horizontal.",
            "source_text_hash": "47ddd06396c7952ce1bcdbc7ce847575",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "electronic buzzing, harsh digital static",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "harsh strobing, digital artifacting, rapid LED cycling",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "blinding",
                    "motivator": "crosswalk sign LEDs",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "red LEDs glitching into unreadable hostile patterns, lens flare from intense red light",
                "emotion_line": "technological hostility, warning",
                "environment_line": "black metal casing, rain dripping off the visor",
                "subject_line": "Close up of a digital crosswalk sign"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 6,
            "shot_id": "EP011_SH06",
            "source_text": "Crosswalk signs flash hostile red data.",
            "source_text_hash": "4ed731c650b4de70e645b633367bfd6b",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "loud electrical pop, dying hum",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "sudden loss of illumination, dying electrical sputter",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "dim",
                    "motivator": "dying neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "neon gas sputtering out, plunging the frame into deep shadow",
                "emotion_line": "loss of hope, finality",
                "environment_line": "dark exterior facade, rain hitting the glass tubes",
                "subject_line": "Neon bar sign mounted on brick wall"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 7,
            "shot_id": "EP011_SH07",
            "source_text": "The bar's neon sign flickers OFF for the first time in the series.",
            "source_text_hash": "fc3667bb763b4f9919263d1c48aa4c85",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "stuttering audio, harsh industrial noise",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "handheld",
              "focal_length": "24mm",
              "kinetic_action": "chaotic camera shake, rapid visual rhythm, disorienting blur",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE",
                    "intensity": "bright",
                    "motivator": "distant lightning or electrical sparks",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "jarring visual cuts, unstable framing, aggressive motion blur",
                "emotion_line": "panic, sensory overload",
                "environment_line": "fragmented urban details, wet concrete, dark alleys",
                "subject_line": "Abstracted city geometry"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "handheld",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 8,
            "shot_id": "EP011_SH08",
            "source_text": "5-8 fast cuts.",
            "source_text_hash": "3b4cbc7a7d672d4734d43e1af0911a5c",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "flashback"
            },
            "audio_data": {
              "ambient_sfx": "sub-bass thud, ringing tone",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "flash frame, sudden visual snap",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "FRONT",
                    "intensity": "bright",
                    "motivator": "memory flash",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, frozen moment in time",
                "emotion_line": "deja vu, psychological fracturing",
                "environment_line": "starkly lit urban detail, high contrast",
                "subject_line": "Visual echo of a street corner"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": true,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 9,
            "shot_id": "EP011_SH09",
            "source_text": "Each connects to a prior image \u2014",
            "source_text_hash": "d6677165d7ec79aadd5e36eb4aa6e334",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "flashback"
            },
            "audio_data": {
              "ambient_sfx": "loud 60Hz hum",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "high frequency flicker, micro-vibrations",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "neon tube",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "intense buzzing light, harsh glare bleeding into lens",
                "emotion_line": "artificial, burning",
                "environment_line": "isolated against pure black",
                "subject_line": "Close up of glowing neon glass tubing"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 10,
            "shot_id": "EP011_SH10",
            "source_text": "the same neon,",
            "source_text_hash": "7bf2fc6e8525155155793142a45f4ee8",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "flashback"
            },
            "audio_data": {
              "ambient_sfx": "isolated sharp water drops",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "frozen droplets, macro detail of impact",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "BELOW",
                    "intensity": "moderate",
                    "motivator": "street reflection",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "water exploding into crowns upon impact, high shutter speed freeze",
                "emotion_line": "relentless, cold",
                "environment_line": "macro texture of the street surface",
                "subject_line": "Raindrops shattering against wet asphalt"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 11,
            "shot_id": "EP011_SH11",
            "source_text": "the same rain,",
            "source_text_hash": "3ad72ce413045231b5417bd427ab59a0",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "flashback"
            },
            "audio_data": {
              "ambient_sfx": "hollow wind, distant rumble",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "24mm",
              "kinetic_action": "static framing, deep focus",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "distant streetlights",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "perfectly still composition, no movement",
                "emotion_line": "isolation, emptiness",
                "environment_line": "desolate urban landscape, wet surfaces",
                "subject_line": "Empty city street stretching into the distance"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 12,
            "shot_id": "EP011_SH12",
            "source_text": "the same street,",
            "source_text_hash": "742c9368d6e285456e3a23c2dcd6e3ce",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low frequency drone building in intensity",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "tilt",
              "focal_length": "14mm",
              "kinetic_action": "dutch angle shift, aggressive perspective distortion",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "BELOW",
                    "intensity": "blinding",
                    "motivator": "harsh security lights",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "camera tilting to create a claustrophobic, threatening geometry",
                "emotion_line": "hostile, trapping",
                "environment_line": "sharp architectural angles, oppressive shadows",
                "subject_line": "Buildings looming inward over the street"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "tilt",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 13,
            "shot_id": "EP011_SH13",
            "source_text": "now weaponized.",
            "source_text_hash": "dfd3a6ab2e3bca52690868d6d7da3b44",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "numb",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "muffled city sounds through glass, quiet radiator hiss",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "flat, detached",
                  "is_voiceover": true,
                  "text": "The apartment smells like cold coffee again."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "absolute stillness, stark contrast to previous motion",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "LEFT",
                    "intensity": "dim",
                    "motivator": "street light through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "frozen posture, no movement, dust motes hanging in the air",
                "emotion_line": "numb, domestic isolation",
                "environment_line": "dark apartment kitchen, linoleum floor, shadows from the window",
                "subject_line": "SADIE sitting perfectly still on the kitchen floor, knees pulled up"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 14,
            "shot_id": "EP011_SH14",
            "source_text": "[VO: SADIE \u2014 perfectly still and domestic, over the sprint] \"The apartment smells like cold coffee again.",
            "source_text_hash": "93c21d6e04ec370ac3ef4270bc23bea6",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "disconnected",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "quiet radiator hiss",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "quiet",
                  "is_voiceover": true,
                  "text": "Just cold coffee."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "slow, imperceptible camera creep forward",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "LEFT",
                    "intensity": "dim",
                    "motivator": "street light through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "unblinking stare, shallow breathing barely visible",
                "emotion_line": "hollow, disconnected",
                "environment_line": "dark apartment kitchen background",
                "subject_line": "SADIE staring blankly ahead, face half in shadow"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 15,
            "shot_id": "EP011_SH15",
            "source_text": "Just cold coffee.",
            "source_text_hash": "03b73d925dc67087a077b68738fec6e2",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "defeated",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "distant siren",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "searching, tired",
                  "is_voiceover": true,
                  "text": "I sat on the kitchen floor last night because \u2014 I don't know."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "static framing, heavy stillness",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "LEFT",
                    "intensity": "dim",
                    "motivator": "street light through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "head resting against knees, completely motionless",
                "emotion_line": "small, defeated",
                "environment_line": "kitchen counter above her, dark empty space",
                "subject_line": "SADIE small in the frame, sitting on the linoleum floor against the cabinets"
              },
              "shot_type": "FS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 5
            },
            "scene_index": 16,
            "shot_id": "EP011_SH16",
            "source_text": "I sat on the kitchen floor last night because \u2014 I don't know.",
            "source_text_hash": "f698a83225f88bec640c22228878158f",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "diminished",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "depressed",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "heavy",
                  "is_voiceover": true,
                  "text": "I wanted to be lower."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "tilt",
              "focal_length": "50mm",
              "kinetic_action": "slow tilt down to emphasize her low position",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE_LEFT",
                    "intensity": "dim",
                    "motivator": "street light through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "shoulders slumping further, sinking into the ground",
                "emotion_line": "gravity, depression",
                "environment_line": "linoleum floor taking up most of the frame",
                "subject_line": "SADIE hunched over on the floor, head down"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "tilt",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 17,
            "shot_id": "EP011_SH17",
            "source_text": "I wanted to be lower.",
            "source_text_hash": "abbdcd7dccdaf44cc2ecae3ffa7f685d",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "grounding",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "whispered",
                  "is_voiceover": true,
                  "text": "Closer to something."
                }
              ],
              "foley_action": "faint skin rubbing on linoleum"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "slow, deliberate finger movement",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "ambient room shadow",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "fingertips pressing into the hard surface, seeking grounding",
                "emotion_line": "seeking connection, tactile desperation",
                "environment_line": "scuffed kitchen floor texture",
                "subject_line": "SADIE's hand resting flat against the cold linoleum"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 18,
            "shot_id": "EP011_SH18",
            "source_text": "Closer to something.",
            "source_text_hash": "5b60836354bd31af71c60476d055d815",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "confused",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "realization",
                  "is_voiceover": true,
                  "text": "I keep reaching for my left ear."
                }
              ],
              "foley_action": "fabric rustle of arm moving"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "hand rising slowly into frame, hesitant touch",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "LEFT",
                    "intensity": "dim",
                    "motivator": "street light through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "fingers brushing the empty space where an earring should be, phantom habit",
                "emotion_line": "confusion, phantom limb sensation",
                "environment_line": "dark apartment background",
                "subject_line": "SADIE lifting her hand to her bare left earlobe"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 19,
            "shot_id": "EP011_SH19",
            "source_text": "I keep reaching for my left ear.",
            "source_text_hash": "b2e0eba2c9fdf2ab4725181596b357c4",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "loss",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "factual but sad",
                  "is_voiceover": true,
                  "text": "The earring's been gone for months."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "100mm",
              "kinetic_action": "micro-tremor in fingers, slow push in on the empty earlobe",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "LEFT",
                    "intensity": "dim",
                    "motivator": "street light through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "thumb and forefinger pressing together over empty skin, searching for metal",
                "emotion_line": "loss, missing pieces",
                "environment_line": "out of focus dark background",
                "subject_line": "SADIE's fingers rubbing her bare left earlobe"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 20,
            "shot_id": "EP011_SH20",
            "source_text": "The earring's been gone for months.",
            "source_text_hash": "4a3227a7a22d6db561af73552112492d",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "dread",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "haunted",
                  "is_voiceover": true,
                  "text": "I don't remember losing it."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "eyes dropping, slow blink",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "LEFT",
                    "intensity": "dim",
                    "motivator": "street light through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "gaze dropping downward, heavy eyelids, complete stillness",
                "emotion_line": "memory loss, existential dread",
                "environment_line": "pure shadow",
                "subject_line": "SADIE's eyes, staring into the middle distance"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 21,
            "shot_id": "EP011_SH21",
            "source_text": "I don't remember losing it.\"",
            "source_text_hash": "01bd47e14f7005495575f1f58e87aa5e",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "exhausted",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "heavy rain returning to foreground audio",
              "dialogue": [],
              "foley_action": "panting breath, wet boots stopping"
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "i2v",
            "prompt_data": {
              "camera_movement": "handheld",
              "focal_length": "50mm",
              "kinetic_action": "sudden halt, chest heaving, rain dripping from hair",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "BEHIND",
                    "intensity": "dim",
                    "motivator": "ambient street light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "heavy breathing, water cascading off her coat, sudden stop of forward momentum",
                "emotion_line": "exhaustion, arrival",
                "environment_line": "wet city street, unlit bar facade",
                "subject_line": "SADIE standing abruptly in front of a dark exterior door"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "handheld",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": true,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 22,
            "shot_id": "EP011_SH22",
            "source_text": "Sadie at the bar's door.",
            "source_text_hash": "046ffcc90040b88ca12348ca680c5687",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "desperate",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": "wet leather gripping metal, handle rattling slightly"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "tight grip, knuckles turning white, rigid tension",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "ambient street light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "fingers clenching tight around the metal, rain running over her hand",
                "emotion_line": "desperation, seeking entry",
                "environment_line": "weathered wood and metal door texture",
                "subject_line": "SADIE's wet hand gripping a dark metal door handle"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 23,
            "shot_id": "EP011_SH23",
            "source_text": "She grabs the handle.",
            "source_text_hash": "e17ae303c7b8726284fb73bab50a2aec",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "wind whistling past glass",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static frame, dead tubes",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "ambient street light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "no light emitting, cold and lifeless",
                "emotion_line": "dead, unresponsive",
                "environment_line": "dark brick wall, rain hitting the unlit glass",
                "subject_line": "Dead neon glass tubes"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 24,
            "shot_id": "EP011_SH24",
            "source_text": "The neon is off.",
            "source_text_hash": "7b0f27259ccb4d29166a390135f58220",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "steady rain",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "static framing, heavy shadows",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE_RIGHT",
                    "intensity": "dim",
                    "motivator": "distant street light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "completely dark storefront, blending into the shadows of the street",
                "emotion_line": "abandoned, closed off",
                "environment_line": "dark exterior, rain pouring down the brickwork",
                "subject_line": "Wide view of the unlit bar facade"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 25,
            "shot_id": "EP011_SH25",
            "source_text": "The sign is dark.",
            "source_text_hash": "cbf8e200975871e71eb68682378dbb68",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "empty",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "rain noise isolating and hollowing out",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pull_back",
              "focal_length": "50mm",
              "kinetic_action": "shoulders dropping, slow pull back to reveal her isolation",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "BEHIND",
                    "intensity": "dim",
                    "motivator": "ambient street light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "posture collapsing slightly, staring at the dark facade",
                "emotion_line": "crushing disappointment, emptiness",
                "environment_line": "unlit bar entrance, rain falling around her",
                "subject_line": "SADIE silhouetted against the ambient street light, facing the dark door"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "pull_back",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 26,
            "shot_id": "EP011_SH26",
            "source_text": "ABSENCE \u2014 the thing she ran toward has gone dark.",
            "source_text_hash": "056686ba74a131cbbfdd47c1164f65df",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "stranded",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "steady, oppressive rain",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "motionless figure, rain pouring continuously",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE_RIGHT",
                    "intensity": "dim",
                    "motivator": "distant street light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "perfectly still amidst the downpour, water pooling at her feet",
                "emotion_line": "lost, stranded",
                "environment_line": "wide shot of the dark street corner, heavy rain",
                "subject_line": "SADIE standing small and motionless before the dark bar door"
              },
              "shot_type": "LS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 27,
            "shot_id": "EP011_SH27",
            "source_text": "She stands in the rain at a dark door.",
            "source_text_hash": "175a052306228993fb5f8ce9eb4bc0d6",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "diminished",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "rain fading slightly, low drone entering",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "lingering static frame, unbroken time",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE_RIGHT",
                    "intensity": "dim",
                    "motivator": "distant street light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "rain falling steadily, no other movement",
                "emotion_line": "anticipation, void",
                "environment_line": "wet street, unlit facade",
                "subject_line": "The dark entrance of the bar"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 5
            },
            "scene_index": 28,
            "shot_id": "EP011_SH28",
            "source_text": "Hold.",
            "source_text_hash": "bcf4f99d900646d6d43c7ccdcf60baf4",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low drone holding",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "atmospheric pause, graphic overlay space",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE_RIGHT",
                    "intensity": "dim",
                    "motivator": "distant street light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "steady rain, static composition",
                "emotion_line": "suspense, choice",
                "environment_line": "rainy urban void, negative space for text",
                "subject_line": "The dark street corner"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 29,
            "shot_id": "EP011_SH29",
            "source_text": "WORLD VOTE",
            "source_text_hash": "a8486f6db129fb88c243413bcadcec0e",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "searching",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": "hand wiping wet glass"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "slow push in on face pressing near glass",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "faint interior reflection",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "face close to the glass, eyes straining to see into the darkness",
                "emotion_line": "searching, desperate curiosity",
                "environment_line": "dark glass pane, rain droplets on the surface",
                "subject_line": "SADIE peering through the wet glass of the bar window"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 30,
            "shot_id": "EP011_SH30",
            "source_text": "**[DM_PROMPT]** What she sees through the dark bar window:",
            "source_text_hash": "ddd4fabbfcfec813cbb07651baa941de",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "muffled rain outside",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static POV through glass",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "BEHIND",
                    "intensity": "dim",
                    "motivator": "street light filtering through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "perfectly still, angled as if someone just left",
                "emotion_line": "recent absence, ghost-like",
                "environment_line": "dark interior of the bar, shadows obscuring details",
                "subject_line": "An empty leather bar stool pulled away from the wooden counter"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 31,
            "shot_id": "EP011_SH31",
            "source_text": "* [A] An empty stool, pulled out",
            "source_text_hash": "43457c9ba5bbe04560ca958169c84b39",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "high pitched ringing tone, very faint",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "anomalous glint of light on glass, static framing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "unexplained light source",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "a sharp, impossible glint of warm light catching the rim of the glass",
                "emotion_line": "eerie, out of place",
                "environment_line": "dark bar interior, condensation rings on the wood",
                "subject_line": "A heavy-bottomed rocks glass sitting on the wooden bar counter"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 32,
            "shot_id": "EP011_SH32",
            "source_text": "* [B] A single glass, catching light that shouldn't be there",
            "source_text_hash": "29ffed6a5772ed6dc855ed6904826ae1",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          }
        ],
        "source_hash": "b149a83d0049afd04d35188ba81cfade",
        "total_shots": 32
      },
      "path": "afterimage/state/visual/plans/ep_011_plan.json"
    },
    {
      "data": {
        "episode_id": "EP012",
        "generated_at": "2024-05-24T12:00:00Z",
        "project": "Starsend",
        "shots": [
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "photograph",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low hum of neon signs, distant street noise",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "static frame, sharp focus on surface texture",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "overhead bar light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, sharp focus on film grain",
                "emotion_line": "nostalgic, mysterious, documentarian",
                "environment_line": "wooden bar counter surface, out of focus background",
                "subject_line": "printed photograph, full frame, flat lay, vibrant colors"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP012_SH01",
            "source_text": "The photograph. Full screen. Full color.",
            "source_text_hash": "f4ce70e88848f6673e36a9be141cc94c",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "photograph",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low hum of neon signs",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static frame, edge-to-edge clarity",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "overhead bar light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, document presentation",
                "emotion_line": "objective, evidential, stark",
                "environment_line": "dark wooden background, isolated subject",
                "subject_line": "printed photograph, curled edges, visible film grain"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP012_SH02",
            "source_text": "Found document \u2014 shown directly to the audience.",
            "source_text_hash": "8297b9b1cd75a689804f0e94dade0466",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "neutral",
                  "screen_position": "left",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "muffled city traffic, neon buzz",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "still posture, ambient light flicker",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "neon bar sign",
                    "quality": "mixed"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, deep depth of field",
                "emotion_line": "distant, atmospheric, lonely",
                "environment_line": "wooden bar counter, liquor bottles in background, neon reflections",
                "subject_line": "two silhouetted figures, seated on leather stools, facing away"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 2,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP012_SH03",
            "source_text": "Two people at a bar.",
            "source_text_hash": "da13e7966d8af836608d3d2f0f7385f4",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "group",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "contemplative",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "neon buzz",
              "dialogue": [],
              "foley_action": "leather creak"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "50mm",
              "kinetic_action": "slow forward camera drift, subtle breathing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "LEFT",
                    "intensity": "moderate",
                    "motivator": "neon bar sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow push in, shallow depth of field",
                "emotion_line": "contemplative, heavy, grounded",
                "environment_line": "wooden bar counter, leather stool, dim background",
                "subject_line": "Dusty, seated at bar, looking down, profile angle"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP012_SH04",
            "source_text": "The man is Dusty.",
            "source_text_hash": "e294414e1ede7855090d7395c4df88a9",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "electric hum swelling",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "lens flare, blown out highlights, static frame",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "blinding",
                    "motivator": "neon bar sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "overexposed highlights, static framing",
                "emotion_line": "anonymous, lost, blinding",
                "environment_line": "dark bar background, high contrast",
                "subject_line": "unidentified female face, completely washed out by bright neon glare, unresolvable features"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP012_SH05",
            "source_text": "The woman's face catches neon and washes out \u2014 unresolvable.",
            "source_text_hash": "9ac26cd612591f7178d59d7b1c54f6a1",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "silver_earring",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "high pitched ringing tone",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "micro-shimmer on metal surface, static frame",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "LEFT",
                    "intensity": "bright",
                    "motivator": "neon bar sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "macro photography, extreme detail",
                "emotion_line": "piercing, clear, undeniable",
                "environment_line": "blown out white background, high contrast",
                "subject_line": "silver metal earring, highly reflective surface, sharp focus"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP012_SH06",
            "source_text": "But the earring is sharp. Silver.",
            "source_text_hash": "1b27653a72b812273146e439c113015b",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "photograph",
                  "visibility": "in_frame"
                },
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low hum",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static frame, deep focus",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "overhead bar light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "rack focus from photo to background glass",
                "emotion_line": "realization, uncanny, connected",
                "environment_line": "wooden bar counter, layered depth",
                "subject_line": "heavy-bottomed rocks glass visible inside printed photograph, matching real glass in background"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP012_SH07",
            "source_text": "The glass is in the photo \u2014 the same glass.",
            "source_text_hash": "cd059204270737d04904ed4620dc3b5c",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "photograph",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "silence",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "static frame, extreme texture detail",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE_LEFT",
                    "intensity": "moderate",
                    "motivator": "overhead bar light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, microscopic detail",
                "emotion_line": "decaying, tangible, fragile",
                "environment_line": "dark background, isolated subject",
                "subject_line": "extreme macro of photograph surface, heavy film grain, curled edges, tactile texture"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP012_SH08",
            "source_text": "Grain of a printed photo. Edges curled.",
            "source_text_hash": "5974f8610dfdcddc6f2466b2a33114cd",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low frequency drone descending",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pull_back",
              "focal_length": "24mm",
              "kinetic_action": "slow pull back, color draining from frame",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "neon bar sign",
                    "quality": "mixed"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "wide establishing shot, high contrast",
                "emotion_line": "desolate, drained, surreal",
                "environment_line": "empty bar interior, deep shadows, colorless",
                "subject_line": "wooden bar counter, leather stools, entirely monochrome, stark black and white contrast"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "pull_back",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": true,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP012_SH09",
            "source_text": "The bar goes black-and-white.",
            "source_text_hash": "0e83280c684182cced5f4be6ab5755ff",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "harsh electrical buzz",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static frame, intense light emission",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "blinding",
                    "motivator": "neon bar sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, glowing halation",
                "emotion_line": "sterile, harsh, unnatural",
                "environment_line": "high contrast monochrome environment, deep black background",
                "subject_line": "neon bar signs glowing stark white, emitting colorless light"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP012_SH10",
            "source_text": "All neon signs glow white instead of magenta.",
            "source_text_hash": "7529465a9c9b0ba6da543174bd413d65",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "hollow",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "electrical buzz",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "still posture, shallow breath",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "LEFT",
                    "intensity": "bright",
                    "motivator": "neon bar sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, chiaroscuro lighting",
                "emotion_line": "hollow, trapped, stark",
                "environment_line": "monochrome bar interior, deep blacks",
                "subject_line": "Dusty sitting at the bar, stark black and white, high contrast shadows"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP012_SH11",
            "source_text": "Dusty in monochrome.",
            "source_text_hash": "3dab0b01ace5b0a2b8203b31c470f141",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "photograph",
                  "visibility": "in_frame"
                },
                {
                  "prop_id": "silver_earring",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "high pitched ringing tone",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "100mm",
              "kinetic_action": "slow micro-push, shimmering reflection on metal",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "ABOVE",
                    "intensity": "bright",
                    "motivator": "overhead bar light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "macro photography, selective color isolation",
                "emotion_line": "impossible, focal, piercing",
                "environment_line": "black and white film grain background",
                "subject_line": "monochrome photograph, single element in color: highly reflective silver earring gleaming"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP012_SH12",
            "source_text": "The only color: the earring in the photograph, retaining its impossible silver-refracting quality.",
            "source_text_hash": "f99600d7fc209cc448f90ed60aba1feb",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "introspective",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "electrical buzz",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "hollow, reflective",
                  "is_voiceover": true,
                  "text": "You look at a photo of yourself and you should know."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static frame, deep shadows over eyes",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "LEFT",
                    "intensity": "bright",
                    "motivator": "neon bar sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, intimate portrait",
                "emotion_line": "introspective, lost, questioning",
                "environment_line": "black and white bar interior, stark contrast",
                "subject_line": "Dusty staring down at the bar, monochrome, deep shadows over his eyes"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP012_SH13",
            "source_text": "[VO: DUSTY] \"You look at a photo of yourself and you should know.\"",
            "source_text_hash": "64f7de956d2403aea80dfd5da050626e",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "hollow room tone",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "distant",
                  "is_voiceover": true,
                  "text": "You should recognize the bar you've owned for six years."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pan",
              "focal_length": "35mm",
              "kinetic_action": "slow lateral pan across empty space",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "overhead bar light",
                    "quality": "mixed"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow pan, deep depth of field",
                "emotion_line": "empty, alienating, unfamiliar",
                "environment_line": "desolate bar interior, stark black and white, deep shadows",
                "subject_line": "wide view of empty wooden bar counter and leather stools, monochrome"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "pan",
              "has_dialogue": true,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP012_SH14",
            "source_text": "\"You should recognize the bar you've owned for six years.\"",
            "source_text_hash": "31db51d767b515669c4f912a3710b22e",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "hollow room tone",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "listing facts",
                  "is_voiceover": true,
                  "text": "The stool. The glass."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static frame, stark shadows",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "overhead bar light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, still life",
                "emotion_line": "abandoned, specific, detached",
                "environment_line": "black and white bar counter, high contrast",
                "subject_line": "empty leather stool next to a heavy-bottomed rocks glass on the wooden bar, monochrome"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP012_SH15",
            "source_text": "\"The stool. The glass.\"",
            "source_text_hash": "91a65b7bf050060e6a80f4747b78021f",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low hum",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "painful realization",
                  "is_voiceover": true,
                  "text": "The woman beside you. You should know her name."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static frame, deep shadow obscuring details",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "BEHIND",
                    "intensity": "bright",
                    "motivator": "neon bar sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, high contrast silhouette",
                "emotion_line": "anonymous, haunting, lost",
                "environment_line": "stark white backlight, deep black foreground",
                "subject_line": "silhouette of an unidentified female figure sitting at the bar, monochrome, features completely hidden in shadow"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP012_SH16",
            "source_text": "\"The woman beside you. You should know her name.\"",
            "source_text_hash": "81e3e922c80e7718fc75d2f793522f0b",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "searching",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "manipulated",
              "props": [
                {
                  "prop_id": "photograph",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "neon buzz intensifying",
              "dialogue": [],
              "foley_action": "paper rustle"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "tilt",
              "focal_length": "50mm",
              "kinetic_action": "arm raising, slight motion blur on hand, upward tilt",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "FRONT",
                    "intensity": "bright",
                    "motivator": "neon bar sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "upward tilt following hand, high contrast",
                "emotion_line": "searching, desperate, scrutinizing",
                "environment_line": "stark black and white bar interior, bright light source",
                "subject_line": "Dusty holding a curled photograph up toward a glowing white neon sign, monochrome"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "tilt",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP012_SH17",
            "source_text": "He holds the photo up to the neon.",
            "source_text_hash": "cf73173b254cc5d34e4021517d5f330c",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "photograph",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "harsh electrical hum",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "overexposure blooming, static frame",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "BEHIND",
                    "intensity": "blinding",
                    "motivator": "neon bar sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "macro photography, overexposed highlights",
                "emotion_line": "erased, blinding, lost",
                "environment_line": "stark white glare, deep black edges",
                "subject_line": "close up of the photograph, female face completely blown out by harsh white backlight, monochrome"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP012_SH18",
            "source_text": "Her face disappears in the light.",
            "source_text_hash": "1a5eef8dec591f4785a049ba4b0f7153",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "photograph",
                  "visibility": "in_frame"
                },
                {
                  "prop_id": "silver_earring",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "high pitched ringing tone",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "static frame, sharp focus against bloom",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "BEHIND",
                    "intensity": "blinding",
                    "motivator": "neon bar sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "macro photography, sharp focus",
                "emotion_line": "persistent, undeniable, piercing",
                "environment_line": "overexposed white glare, selective color",
                "subject_line": "extreme close up of the photograph, silver earring remaining perfectly sharp and retaining metallic color against blown-out white background"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP012_SH19",
            "source_text": "The earring stays sharp.",
            "source_text_hash": "5b6534b0b066d5339f8b16e0455009da",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "tense",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "silence",
              "dialogue": [],
              "foley_action": "wood creak under pressure"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "fingers curling tight, muscle tension visible, static frame",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "overhead bar light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "close up on hand, high contrast",
                "emotion_line": "tense, frustrated, building anger",
                "environment_line": "black and white wooden texture, deep shadows",
                "subject_line": "Dusty's hand gripping the edge of the wooden bar counter, monochrome"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP012_SH20",
            "source_text": "His hand closes on the bar surface.",
            "source_text_hash": "5879728cce945152947893883c17e4e8",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "furious",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low rumble building",
              "dialogue": [],
              "foley_action": "leather and wood strain"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "100mm",
              "kinetic_action": "micro-tremor in hand, skin stretching over bone",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "ABOVE",
                    "intensity": "bright",
                    "motivator": "overhead bar light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "macro photography, slow push in",
                "emotion_line": "furious, breaking point, strained",
                "environment_line": "high contrast black and white, dark background",
                "subject_line": "extreme close up of Dusty's hand, knuckles turning stark white from a tight grip, monochrome"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP012_SH21",
            "source_text": "Knuckles white.",
            "source_text_hash": "89f263fce1456be0eaeeaa56ffdd5203",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "violent",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "manipulated",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "sudden silence cut",
              "dialogue": [],
              "foley_action": "heavy arm sweep, glass sliding fast"
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "i2v",
            "prompt_data": {
              "camera_movement": "pan",
              "focal_length": "50mm",
              "kinetic_action": "motion blur on arm and glass, kinetic energy frozen mid-transfer, fast lateral pan",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "overhead bar light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "fast action, motion blur, dynamic framing",
                "emotion_line": "violent, rejecting, explosive",
                "environment_line": "black and white bar interior, stark shadows",
                "subject_line": "Dusty violently sweeping his arm across the wooden bar, striking the heavy-bottomed rocks glass, monochrome"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "pan",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": true,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP012_SH22",
            "source_text": "He sweeps the glass off the bar \u2014 the connective object \u2014",
            "source_text_hash": "82d4be4109f38d0e9c4e58a2277f9775",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "manipulated",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": "loud sharp glass shatter"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "exploding glass shards, motion blur on flying fragments, high speed capture",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "ABOVE",
                    "intensity": "bright",
                    "motivator": "overhead bar light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "freeze frame explosion, sharp fragments",
                "emotion_line": "broken, final, destructive",
                "environment_line": "stark black background, high contrast highlights on glass",
                "subject_line": "heavy-bottomed rocks glass shattering into pieces mid-air, monochrome"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": true,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP012_SH23",
            "source_text": "and it SHATTERS.",
            "source_text_hash": "948e49024afda1ca7251fe4d5e0eb6ce",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "absolute dead silence",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "dust motes floating slowly, static frame",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "neon bar sign",
                    "quality": "mixed"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static wide shot, deep depth of field",
                "emotion_line": "dead, silent, aftermath",
                "environment_line": "black and white bar interior, still, deep shadows",
                "subject_line": "empty bar area, dust motes floating in stark white neon light, monochrome"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP012_SH24",
            "source_text": "Silence.",
            "source_text_hash": "bb0fbabfe94802379503a63d6b29acaa",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "silence",
              "dialogue": [],
              "foley_action": "faint glass settling tinkle"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static frame, sharp highlights on glass edges",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "overhead bar light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, sharp focus on debris",
                "emotion_line": "ruined, sharp, scattered",
                "environment_line": "dark floorboards, high contrast black and white",
                "subject_line": "shattered glass fragments scattered across the floor, catching stark white highlights, monochrome"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP012_SH25",
            "source_text": "Glass on the floor.",
            "source_text_hash": "1cc8838d3604551af15b51cf6c25a6fb",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "defeated",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "silence",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "still posture, limp arms, slow exhale",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "LEFT",
                    "intensity": "dim",
                    "motivator": "neon bar sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, defeated posture",
                "emotion_line": "defeated, numb, exhausted",
                "environment_line": "black and white bar interior, heavy shadows",
                "subject_line": "Dusty staring blankly downward, arms resting limply at his sides, monochrome"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP012_SH26",
            "source_text": "He doesn't clean it up.",
            "source_text_hash": "56f8ca4e7bf670186768cf8028d1d87e",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "electrical buzzing and popping",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "tilt",
              "focal_length": "35mm",
              "kinetic_action": "erratic strobing light, upward tilt to ceiling",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "ABOVE",
                    "intensity": "bright",
                    "motivator": "overhead bar light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "upward tilt, strobing exposure",
                "emotion_line": "unstable, failing, erratic",
                "environment_line": "stark black and white, high contrast flashing",
                "subject_line": "ceiling of the bar, overhead lights casting erratic strobing illumination across the wooden counter, monochrome"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "tilt",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP012_SH27",
            "source_text": "Overhead lights flicker.",
            "source_text_hash": "ceba6022fbc619ab58e71f2728468de8",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "loud pop, then silence",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "sudden drop in exposure, deep shadow engulfing frame",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "overhead bar light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, light extinguishing",
                "emotion_line": "final, dark, ending",
                "environment_line": "black and white, sudden darkness",
                "subject_line": "single overhead light bulb flashing brightly then going completely dark, plunging a section of the bar into heavy shadow, monochrome"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP012_SH28",
            "source_text": "One burns out.",
            "source_text_hash": "dcb08d604382a02bee41c8d0a3f21eb2",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "silence",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static frame, deep shadows",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "LEFT",
                    "intensity": "dim",
                    "motivator": "distant neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, high contrast",
                "emotion_line": "forgotten, broken, cold",
                "environment_line": "dark floorboards, low key lighting",
                "subject_line": "shattered glass fragments on the floor, deep shadows, monochrome"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP012_SH29",
            "source_text": "The shattered glass on the bar floor. Monochrome.",
            "source_text_hash": "2879355c99c29b918ff7ea20ad882209",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "photograph",
                  "visibility": "in_frame"
                },
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "silence",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pan",
              "focal_length": "85mm",
              "kinetic_action": "slow lateral pan from glass to photo",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "LEFT",
                    "intensity": "dim",
                    "motivator": "distant neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow pan, shallow depth of field",
                "emotion_line": "discarded, linked, tragic",
                "environment_line": "dark floorboards, stark black and white",
                "subject_line": "curled printed photograph lying on the floor next to shattered glass fragments, monochrome"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "pan",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP012_SH30",
            "source_text": "The photo beside it.",
            "source_text_hash": "51e0d3723c1fde96ffedc4a7fa6d8ece",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "photograph",
                  "visibility": "in_frame"
                },
                {
                  "prop_id": "silver_earring",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "faint high pitched ringing tone returning",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "100mm",
              "kinetic_action": "slow push in, holding on sharp detail, static subject",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "LEFT",
                    "intensity": "moderate",
                    "motivator": "distant neon sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "macro photography, slow push in",
                "emotion_line": "hypnotic, undeniable, lingering",
                "environment_line": "monochrome film grain, selective color isolation",
                "subject_line": "extreme close up of the photograph on the floor, silver earring gleaming with impossible metallic color against stark black and white surroundings"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 5
            },
            "scene_index": 1,
            "shot_id": "EP012_SH31",
            "source_text": "The earring \u2014 the only color in the frame. Hold.",
            "source_text_hash": "e4d8c1bb832c269943dcd5052d2a828d",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "photograph",
                  "visibility": "in_frame"
                },
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low drone",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static frame, stark division of light and shadow",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "LEFT",
                    "intensity": "dim",
                    "motivator": "distant neon sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, symbolic composition",
                "emotion_line": "divided, broken, final",
                "environment_line": "black and white floorboards, high contrast split lighting",
                "subject_line": "photograph and shattered glass resting on the floor, separated by a dark shadow, monochrome"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP012_SH32",
            "source_text": "**[DM_PROMPT]** The photo proves they were together. Now they're apart.",
            "source_text_hash": "83ae891929161291d8d8038193651f0f",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "photograph",
                  "visibility": "in_frame"
                },
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "digital hum",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static frame, glowing text overlay",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "glowing UI text",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, UI overlay",
                "emotion_line": "choice, interactive, stark",
                "environment_line": "dark floorboards, stark black and white",
                "subject_line": "glowing white text reading '[A] Find [B] Release' hovering over the shattered glass and photograph, monochrome"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP012_SH33",
            "source_text": "* [A] Find * [B] Release",
            "source_text_hash": "01f58b900222633cf6de2155be637096",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "digital hum",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "static frame, crisp text rendering",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "glowing UI text",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, UI presentation",
                "emotion_line": "objective, stark, interactive",
                "environment_line": "black and white bar interior, deep shadows",
                "subject_line": "wide view of the bar floor, monochrome, stark white voting text overlaid on the scene"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP012_SH34",
            "source_text": "[Oracle in monochrome. White text on B&W image.]",
            "source_text_hash": "38666185e2d85c5d4d4594582455e35e",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "photograph",
                  "visibility": "in_frame"
                },
                {
                  "prop_id": "silver_earring",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "high pitched ringing tone fading out",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "static frame, sharp focus on color element",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "neutral",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "bright",
                    "motivator": "glowing UI text",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "macro photography, static framing",
                "emotion_line": "focal, impossible, lingering",
                "environment_line": "black and white film grain, selective color",
                "subject_line": "extreme close up of the photograph on the floor, silver earring shining in full color, stark white voting text floating nearby, monochrome background"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 5
            },
            "scene_index": 1,
            "shot_id": "EP012_SH35",
            "source_text": "[The earring's color is the only non-monochrome element beside the vote text.]",
            "source_text_hash": "b7f64a94dd07d4f8ac9d31c74a77c2c8",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          }
        ],
        "source_hash": "1455ecb2660876c641886b76e851bd55",
        "total_shots": 35
      },
      "path": "afterimage/state/visual/plans/ep_012_plan.json"
    },
    {
      "data": {
        "episode_id": "EP013",
        "generated_at": "2023-10-25T00:00:00Z",
        "project": "Starsend",
        "shots": [
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "determined",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "faint apartment building hum",
              "dialogue": [],
              "foley_action": "heavy wooden door creaking open, latch clicking"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "kinetic energy transfer on door frame, motion blur on swinging wood, sharp focus on hand",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE_RIGHT",
                    "intensity": "moderate",
                    "motivator": "hallway overhead light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "macro detail on skin texture, kinetic push, shallow depth of field",
                "emotion_line": "determined, physical exertion, threshold crossing",
                "environment_line": "dim apartment entryway, peeling paint on door frame",
                "subject_line": "Sadie's hand pressing against wooden door, fingers splayed, pushing forward"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 1,
            "shot_id": "EP013_SH01",
            "source_text": "Camera starts on Sadie's hand pushing open her apartment door.",
            "source_text_hash": "ada87d74113f6ea4304e669c2b4c5c8a",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "away-from-camera"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "focused",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_stairwell",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "interior",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "stairwell natural reverb",
              "dialogue": [],
              "foley_action": "heavy boots descending concrete stairs"
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "t2v",
            "prompt_data": {
              "camera_movement": "tracking",
              "focal_length": "50mm",
              "kinetic_action": "motion blur on trailing limbs, forward lean, dynamic tracking movement",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "stairwell fluorescent tube",
                    "quality": "mixed"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "smooth tracking shot, rhythmic descent, leading lines pulling downward",
                "emotion_line": "driven, descending into darkness, isolated",
                "environment_line": "painted brick walls, metal handrail, descending concrete steps",
                "subject_line": "Sadie walking away down concrete stairs, back to camera, heavy trench coat shifting"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "tracking",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 2,
            "shot_id": "EP013_SH02",
            "source_text": "Tracks her from behind down the stairwell \u2014",
            "source_text_hash": "94a3a31a45053348060b02733257750c",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "away-from-camera"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "drawn",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_stairwell",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "interior",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low frequency compressor hum steadily increasing in volume",
              "dialogue": [],
              "foley_action": "rhythmic echoing footsteps"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "tilt",
              "focal_length": "35mm",
              "kinetic_action": "rhythmic vertical displacement, fabric swaying with momentum, steady downward progression",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "BELOW_RIGHT",
                    "intensity": "dim",
                    "motivator": "landing emergency light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "camera tilting down to follow, deep depth of field, geometric framing",
                "emotion_line": "inexorable pull, descent into the underworld, heavy atmosphere",
                "environment_line": "deep vertical shaft of stairs, shadows stretching upward, linoleum steps",
                "subject_line": "Sadie descending stairwell, viewed from above, hand grazing metal rail"
              },
              "shot_type": "FS"
            },
            "routing_data": {
              "camera_complexity": "tilt",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 5
            },
            "scene_index": 2,
            "shot_id": "EP013_SH03",
            "source_text": "her footsteps echo, the compressor hum growing louder with each floor.",
            "source_text_hash": "942d63b22e3764c815c558f848f16b2d",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "diminished",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "focused",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_stairwell",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "heavy rain hitting pavement, muffled traffic",
              "dialogue": [],
              "foley_action": "footsteps continuing on flat ground"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pan",
              "focal_length": "24mm",
              "kinetic_action": "lateral motion blur on character crossing frame, rain visible through glass",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "FRONT",
                    "intensity": "bright",
                    "motivator": "streetlamp through glass door",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "smooth lateral pan, high contrast silhouette, rain streaking glass",
                "emotion_line": "ignoring the outside world, single-minded focus",
                "environment_line": "ground floor lobby, wet asphalt visible outside, heavy metal door frame",
                "subject_line": "Sadie walking past heavy glass front door, silhouetted against street light"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "pan",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 2,
            "shot_id": "EP013_SH04",
            "source_text": "Rain-sound floods through the building's front door as she passes it.",
            "source_text_hash": "6f74d8b0c84a26bfbea59c6ff4997726",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "anticipatory",
                  "screen_position": "right",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "rain fading slightly, compressor hum dominant",
              "dialogue": [],
              "foley_action": "fabric rustle as she stops"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "abrupt halt in momentum, fabric settling, weight shifting to back foot",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "ABOVE_LEFT",
                    "intensity": "dim",
                    "motivator": "dim streetlamp",
                    "quality": "mixed"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, character entering frame and stopping, tension in arm",
                "emotion_line": "anticipation, confronting the threshold",
                "environment_line": "grimy exterior wall, dark bar exterior door, wet asphalt reflections",
                "subject_line": "Sadie standing before a dark heavy door, reaching one hand out"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 2,
            "shot_id": "EP013_SH05",
            "source_text": "She reaches the bar door.",
            "source_text_hash": "a9eda704c9a4b69b82353857286a815c",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_stairwell",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "interior",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "overwhelming mechanical compressor hum, vibrating low frequencies",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "35mm",
              "kinetic_action": "slow creeping camera movement, dust motes vibrating in air",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "BELOW",
                    "intensity": "dim",
                    "motivator": "flickering basement bulb",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow push in, vibrating atmosphere, deep focus",
                "emotion_line": "ominous, unseen presence, sonic pressure",
                "environment_line": "painted brick walls, deep shadows, industrial decay, oppressive architecture",
                "subject_line": "empty dark corridor leading to a heavy metal door"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 2,
            "shot_id": "EP013_SH06",
            "source_text": "The compressor hum \u2014 the sound from the voicemails \u2014 fills the stairwell.",
            "source_text_hash": "2f58087235c34eeb99f0fec5fd86819c",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "realization",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "compressor hum peaking",
              "dialogue": [],
              "foley_action": "sharp intake of breath"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "micro-tremor in jaw, eyes widening slightly, static framing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "streetlamp reflection",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "tight framing on face, catchlight in eyes, absolute stillness",
                "emotion_line": "dawning realization, chilling recognition",
                "environment_line": "dark blurred background, indistinct shapes",
                "subject_line": "Sadie staring forward, eyes locked, lips slightly parted"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 2,
            "shot_id": "EP013_SH07",
            "source_text": "She recognizes it.",
            "source_text_hash": "9b3dc9b0b87ed96628936c0926c52ce8",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "resigned",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "compressor hum steady",
              "dialogue": [],
              "foley_action": "fabric shifting as shoulders drop"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "shoulders dropping visibly, tension releasing, shallow breath exhaled",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "BEHIND",
                    "intensity": "moderate",
                    "motivator": "streetlamp reflection",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "focus on upper back and neck, subtle downward kinetic shift",
                "emotion_line": "resignation, heavy burden, acceptance",
                "environment_line": "dark door frame ahead, wet brick wall",
                "subject_line": "Sadie from behind, shoulders slumping slightly, head bowing"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 2,
            "shot_id": "EP013_SH08",
            "source_text": "We see it in her shoulders.",
            "source_text_hash": "cfd91a1cf4b684dcc11e21157c341251",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "away-from-camera"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "determined",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "compressor hum",
              "dialogue": [],
              "foley_action": "heavy door groaning on hinges, forceful shove"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "35mm",
              "kinetic_action": "leaning weight forward, kinetic push, door swinging inward with motion blur",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "interior bar light spilling out",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "dynamic push in, door swinging open, dust kicked into lens",
                "emotion_line": "crossing the point of no return, forceful action",
                "environment_line": "threshold between wet street and dark interior, light spilling onto her face",
                "subject_line": "Sadie shoving a heavy dark door open, leaning her body weight into it"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 2,
            "shot_id": "EP013_SH09",
            "source_text": "She pushes the bar door open.",
            "source_text_hash": "66472e70e0b36d17a265c91d743f9094",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "away-from-camera"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "resolute",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "interior",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "compressor hum abruptly cutting out",
              "dialogue": [],
              "foley_action": "footstep echoing in new space"
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "i2v",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "stepping forward into darkness, motion blur on trailing leg, silhouette swallowing character",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "BEHIND",
                    "intensity": "bright",
                    "motivator": "streetlamp behind character",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "character crossing threshold, high contrast lighting, static frame",
                "emotion_line": "entering the unknown, swallowed by shadows",
                "environment_line": "door frame framing the shot, dark void ahead",
                "subject_line": "Sadie stepping through doorway into pitch black, silhouetted from behind"
              },
              "shot_type": "FS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": true,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 2,
            "shot_id": "EP013_SH10",
            "source_text": "Steps through.",
            "source_text_hash": "f10e19b8b0eeda468bb0362a447f8ee2",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "away-from-camera"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "shocked",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "dead silence",
              "dialogue": [],
              "foley_action": "squeak of wet rubber sole on linoleum"
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "i2v",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "boot making contact with floor, weight settling, kinetic energy transfer",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "kitchen overhead light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "macro focus on boot hitting floor, static framing",
                "emotion_line": "jarring transition, grounded reality",
                "environment_line": "clean linoleum floor, baseboards of a kitchen",
                "subject_line": "Sadie's wet boot stepping firmly onto patterned linoleum floor"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": true,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 3,
            "shot_id": "EP013_SH11",
            "source_text": "Her foot lands on linoleum.",
            "source_text_hash": "8308a1d5e141e18bada8d1e30d192b23",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "away-from-camera"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "disoriented",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "apartment quiet, faint rain on window",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "24mm",
              "kinetic_action": "standing still, center-weighted composition, absolute lack of motion",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "kitchen overhead light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "wide static shot, deep depth of field, geometric framing",
                "emotion_line": "disorientation, impossible reality, spatial loop",
                "environment_line": "kitchen counter, glass window with rain droplets, coffee maker, linoleum floor",
                "subject_line": "Sadie standing frozen in the middle of her kitchen, facing away"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 3,
            "shot_id": "EP013_SH12",
            "source_text": "Her kitchen.",
            "source_text_hash": "12c0b5fec0ee2c40362deff0913ac311",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "frozen",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "apartment quiet",
              "dialogue": [],
              "foley_action": "faint rustle of damp clothing"
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "t2v",
            "prompt_data": {
              "camera_movement": "tracking",
              "focal_length": "35mm",
              "kinetic_action": "static posture, camera drifting slowly behind her, parallax on background elements",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "kitchen overhead light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow tracking movement behind character, maintaining spatial continuity",
                "emotion_line": "uncanny valley, broken reality",
                "environment_line": "familiar apartment kitchen, domestic setting",
                "subject_line": "Sadie viewed from behind, standing rigidly in her kitchen"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "tracking",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 3,
            "shot_id": "EP013_SH13",
            "source_text": "The camera is still behind her \u2014 it never cut.",
            "source_text_hash": "a61ddb90c9bf52253e966024d3cbc8c2",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "away-from-camera"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "shocked",
                  "screen_position": "right",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "apartment quiet",
              "dialogue": [],
              "foley_action": "creak of hand tightening on metal handle"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pan",
              "focal_length": "50mm",
              "kinetic_action": "hand gripping handle, knuckles white, frozen motion, slow pan to reveal door",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "LEFT",
                    "intensity": "dim",
                    "motivator": "hallway light through crack",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "pan from hand to door surface, tight framing, tense stillness",
                "emotion_line": "imprisoned by geometry, shock",
                "environment_line": "interior of apartment door, deadbolts visible",
                "subject_line": "Sadie's hand locked onto the inside handle of her apartment door, arm rigid"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "pan",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 3,
            "shot_id": "EP013_SH14",
            "source_text": "The door she just opened is her apartment door.",
            "source_text_hash": "47cf696aed588f1e68282bdb97458043",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "apartment quiet",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "24mm",
              "kinetic_action": "empty space, static framing, zero motion",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "kitchen overhead light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static wide shot, deep focus, mundane reality",
                "emotion_line": "eerie normalcy, absence of the expected",
                "environment_line": "domestic walls, no sign of concrete stairs, ordinary apartment interior",
                "subject_line": "empty apartment hallway outside the kitchen"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 3,
            "shot_id": "EP013_SH15",
            "source_text": "The stairwell is gone.",
            "source_text_hash": "6b112a4334cacaca8e96e9ee36e2f7aa",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "apartment quiet",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "empty space, static framing, zero motion",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "RIGHT",
                    "intensity": "dim",
                    "motivator": "street lamp through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, mundane domestic objects, stark reality",
                "emotion_line": "erasure of the journey, maddening stillness",
                "environment_line": "kitchen counter, glass window with rain droplets, radiator",
                "subject_line": "empty kitchen corner where a bar should be"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 3,
            "shot_id": "EP013_SH16",
            "source_text": "The bar is gone.",
            "source_text_hash": "8da49edacdafc6e19007d70bce878737",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "paralyzed",
                  "screen_position": "left",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "apartment quiet",
              "dialogue": [],
              "foley_action": "shallow breathing"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "rigid posture, hand locked on handle, shallow breathing visible in chest",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "kitchen overhead light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static profile shot, character frozen in disbelief",
                "emotion_line": "paralysis, mind struggling to process",
                "environment_line": "kitchen background, domestic setting",
                "subject_line": "Sadie standing in profile, one hand gripping the apartment door handle, staring blankly"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 3,
            "shot_id": "EP013_SH17",
            "source_text": "She is standing in her own kitchen, hand still on the handle.",
            "source_text_hash": "3c0f579898ee9716a2318835a993c8cf",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "listening",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "compressor hum fading out completely, replaced by rhythmic metallic radiator ticking",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "head tilting slightly, listening posture, slow push in on face",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "RIGHT",
                    "intensity": "dim",
                    "motivator": "street lamp through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow push in, tight focus on eyes, subtle facial micro-movements",
                "emotion_line": "auditory hyper-awareness, replacing terror with mundane reality",
                "environment_line": "blurred kitchen background",
                "subject_line": "Sadie's face, eyes shifting focus as she listens, head tilted"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 3,
            "shot_id": "EP013_SH18",
            "source_text": "The compressor hum fades to the radiator tick she hears every night.",
            "source_text_hash": "11f3688724c886a84a8f2153efd6c668",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "radiator ticking",
              "dialogue": [],
              "foley_action": "sharp plastic click of appliance"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "static object, indicator light flashing on",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "dim",
                    "motivator": "appliance LED",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "macro shot, static framing, sharp focus on light",
                "emotion_line": "punctuating the silence, mundane anchor",
                "environment_line": "dark kitchen counter, linoleum backdrop",
                "subject_line": "coffee maker on kitchen counter, small indicator light glowing"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 3,
            "shot_id": "EP013_SH19",
            "source_text": "The coffee maker clicks.",
            "source_text_hash": "4a78b2061df030bc0c7c66b145bc9a23",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "rain on window, radiator ticking",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pull_back",
              "focal_length": "24mm",
              "kinetic_action": "slow pull back on empty room, atmospheric stillness, dust motes drifting",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "RIGHT",
                    "intensity": "dim",
                    "motivator": "street lamp through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow creeping pull back, establishing the inescapable room",
                "emotion_line": "claustrophobia in a familiar space, the trap is sprung",
                "environment_line": "shadowy apartment interior, domestic quiet",
                "subject_line": "empty kitchen space, rain streaked window"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "pull_back",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 6
            },
            "scene_index": 3,
            "shot_id": "EP013_SH20",
            "source_text": "No VO for the first 18 seconds. Just the journey: apartment quiet, stairwell echo, rain, the compressor growing, the bar door \u2014 then the spatial loop.",
            "source_text_hash": "fb5ec01e0206a2157699f799708b3e17",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "defeated",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "heavy room tone, absolute silence",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "isolated figure, static framing, heavy stillness, no movement",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "kitchen overhead light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "long shot, static camera, character dwarfed by environment",
                "emotion_line": "profound isolation, defeat, silence",
                "environment_line": "wide view of the apartment kitchen, linoleum floor, counters",
                "subject_line": "Sadie standing small in the center of her kitchen, arms hanging limp"
              },
              "shot_type": "LS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 5
            },
            "scene_index": 3,
            "shot_id": "EP013_SH21",
            "source_text": "Silence as she stands in her own kitchen.",
            "source_text_hash": "3f5fa2c57536d7a5a55ee4659b7d8457",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "diminished",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "detached",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "quiet, almost to herself",
                  "is_voiceover": true,
                  "text": "I went down."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "lips barely moving, vacant stare, minimal kinetic action",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "LEFT",
                    "intensity": "dim",
                    "motivator": "street lamp through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "medium close up, static framing, subtle eye movement",
                "emotion_line": "hollow, recounting a dream, detached",
                "environment_line": "dark kitchen background",
                "subject_line": "Sadie staring into the middle distance, face half in shadow"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 3,
            "shot_id": "EP013_SH22",
            "source_text": "[VO: SADIE \u2014 quiet, almost to herself] \"I went down.\"",
            "source_text_hash": "7330dfab58985345e32edc2763f59cba",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "conviction",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "firm but quiet",
                  "is_voiceover": true,
                  "text": "I know I went down."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "slight head shake, micro-tremor in chin, slow push in",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "RIGHT",
                    "intensity": "dim",
                    "motivator": "street lamp through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "tight framing, slow push in, focus on micro-expressions",
                "emotion_line": "insisting on her own sanity, desperate conviction",
                "environment_line": "blurred dark background",
                "subject_line": "Sadie's face, brow furrowing slightly, eyes searching"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 3,
            "shot_id": "EP013_SH23",
            "source_text": "\"I know I went down.\"",
            "source_text_hash": "b536a156bdab4e637257b3f5e272070b",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "recalling",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "faint echo of footsteps in VO",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "listing",
                  "is_voiceover": true,
                  "text": "The stairs."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "eyes darting slightly, memory recall, static framing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "LEFT",
                    "intensity": "dim",
                    "motivator": "street lamp through window",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "extreme close up on eyes, sharp focus on iris, static shot",
                "emotion_line": "flashing back, mental replay",
                "environment_line": "pure shadow",
                "subject_line": "Sadie's eyes, catchlight reflecting in pupils, rapid micro-movements"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 3,
            "shot_id": "EP013_SH24",
            "source_text": "\"The stairs.\"",
            "source_text_hash": "bb0c89638f6a8dadfa0be5864daff483",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "reflective",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "faint echo of rain in VO",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "listing",
                  "is_voiceover": true,
                  "text": "The rain."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "blinking slowly, wet hair catching light, static framing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "RIGHT",
                    "intensity": "dim",
                    "motivator": "street lamp through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "close up, static, focus on wet textures",
                "emotion_line": "sensory memory, tactile recall",
                "environment_line": "dark kitchen, rain visible on window behind her",
                "subject_line": "Sadie's face, damp hair clinging to her cheek, slow blink"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 3,
            "shot_id": "EP013_SH25",
            "source_text": "\"The rain.\"",
            "source_text_hash": "b9d7d93285528f214af7cb98fb378cdb",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "examining",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "faint echo of heavy door creak in VO",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "listing",
                  "is_voiceover": true,
                  "text": "The door."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "tilt",
              "focal_length": "50mm",
              "kinetic_action": "looking down at hand, slow tilt down following gaze",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "kitchen overhead light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "tilt down from face to hand, smooth motion",
                "emotion_line": "examining the evidence, physical proof",
                "environment_line": "kitchen interior",
                "subject_line": "Sadie looking down toward her hand, neck bending slightly"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "tilt",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 3,
            "shot_id": "EP013_SH26",
            "source_text": "\"The door.\"",
            "source_text_hash": "b489b857f22c0824962d16bf954b9ccd",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "defensive",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "disbelief",
                  "is_voiceover": true,
                  "text": "But the door opened here."
                }
              ],
              "foley_action": "soft footstep backward"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pull_back",
              "focal_length": "35mm",
              "kinetic_action": "releasing handle, stepping back, weight shift, camera pulling back to widen frame",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "kitchen overhead light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "pull back camera, character retreating, widening the space",
                "emotion_line": "retreating from the impossible, defensive",
                "environment_line": "apartment entryway leading into kitchen",
                "subject_line": "Sadie letting go of the door handle and taking a slow step backward"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "pull_back",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 3,
            "shot_id": "EP013_SH27",
            "source_text": "\"But the door opened here.\"",
            "source_text_hash": "0c66b557f1f5bf274b8e915d8ae36264",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "surveying",
                  "screen_position": "left",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "listing",
                  "is_voiceover": true,
                  "text": "The same counter."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pan",
              "focal_length": "50mm",
              "kinetic_action": "panning gaze across room, slow head turn, camera panning with her look",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "kitchen overhead light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "smooth pan following character's gaze, revealing environment",
                "emotion_line": "taking inventory of the trap",
                "environment_line": "kitchen counter with mundane objects",
                "subject_line": "Sadie turning her head slowly to look at the kitchen counter"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "pan",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 3,
            "shot_id": "EP013_SH28",
            "source_text": "\"The same counter.\"",
            "source_text_hash": "befac09e60aae423f67260f1881d6bd4",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "trapped",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "rain on glass",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "listing",
                  "is_voiceover": true,
                  "text": "The same window."
                }
              ],
              "foley_action": "footsteps approaching window"
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "t2v",
            "prompt_data": {
              "camera_movement": "tracking",
              "focal_length": "50mm",
              "kinetic_action": "stepping toward window, silhouette forming as she blocks the light",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "FRONT",
                    "intensity": "bright",
                    "motivator": "street lamp through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "tracking forward with character, high contrast lighting, focus on rain",
                "emotion_line": "seeking an exit, trapped",
                "environment_line": "glass window, rain droplets, glowing street light outside",
                "subject_line": "Sadie walking toward the rain-streaked window, becoming a silhouette"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "tracking",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 3,
            "shot_id": "EP013_SH29",
            "source_text": "\"The same window.\"",
            "source_text_hash": "3ed60782d0002bdff6eddc8739e4f425",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "away-from-camera"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "sadie_phone",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "listing",
                  "is_voiceover": true,
                  "text": "The same phone."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "static phone on counter, glowing LED pulsing slightly",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "dim",
                    "motivator": "phone notification LED",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "macro insert, static framing, shallow depth of field",
                "emotion_line": "the source of the madness, technological anchor",
                "environment_line": "dark linoleum counter surface",
                "subject_line": "rectangular smartphone resting on kitchen counter, notification LED glowing"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 3,
            "shot_id": "EP013_SH30",
            "source_text": "\"The same phone.\"",
            "source_text_hash": "59a8d4b3884a6dd73dec1d7e0fe17e5f",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "obsessive",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "faintest sub-bass rumble of a compressor",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "haunted",
                  "is_voiceover": true,
                  "text": "I can still hear the compressor through the floor."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "tilt",
              "focal_length": "85mm",
              "kinetic_action": "looking down, ear angled toward floor, rigid neck, slow tilt down",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "kitchen overhead light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "tight framing, tilt down following head movement, intense focus",
                "emotion_line": "obsessive listening, paranoia, connection to the unseen",
                "environment_line": "blurred kitchen background",
                "subject_line": "Sadie tilting her head down, angling her ear toward the ground"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "tilt",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 3,
            "shot_id": "EP013_SH31",
            "source_text": "\"I can still hear the compressor through the floor.\"",
            "source_text_hash": "6ed640a9b8b2bcccdb4f3581d4ed0eb9",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "trapped",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "sub-bass rumble continuing",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "24mm",
              "kinetic_action": "standing alone, center-weighted, absolute stillness, frozen in place",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "kitchen overhead light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "wide static shot, deep focus, geometric composition",
                "emotion_line": "finality, trapped in the loop, unresolved tension",
                "environment_line": "full view of the kitchen, shadows in the corners, linoleum floor",
                "subject_line": "Sadie standing motionless in the center of her apartment kitchen"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 5
            },
            "scene_index": 3,
            "shot_id": "EP013_SH32",
            "source_text": "The episode ends on Sadie in her kitchen.",
            "source_text_hash": "846a899384db01b52629f45b3965afcf",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "tense",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "sub-bass rumble",
              "dialogue": [],
              "foley_action": "creak of metal handle under pressure"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "hand resting on metal, white knuckles, rigid tension",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "LEFT",
                    "intensity": "dim",
                    "motivator": "hallway light through crack",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "macro insert, static framing, sharp focus on knuckles",
                "emotion_line": "refusal to let go, physical anchor",
                "environment_line": "wooden door surface, metal hardware",
                "subject_line": "Sadie's hand gripping the metal apartment door handle tightly"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 3,
            "shot_id": "EP013_SH33",
            "source_text": "Her hand on the door handle.",
            "source_text_hash": "4619a2853e641a81260dd6a75704b6c3",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "grounded",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "compressor hum vibrating through the floorboards",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "boots on linoleum, slight vibration implied by framing, slow push in on floor",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "kitchen overhead light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "close up on boots, slow push in, low angle",
                "emotion_line": "grounded but unstable, the threat from below",
                "environment_line": "kitchen floor, baseboards",
                "subject_line": "Sadie's wet boots standing firmly on the linoleum floor"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 3,
            "shot_id": "EP013_SH34",
            "source_text": "Through the floor beneath her feet \u2014 the faintest compressor hum.",
            "source_text_hash": "73e6b87e4f647741a9564a6e250697f0",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "terrified",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "compressor hum vibrating",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "intense downward gaze, jaw clenched, micro-tremor in facial muscles",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "RIGHT",
                    "intensity": "dim",
                    "motivator": "street lamp through window",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "extreme close up, static framing, high contrast lighting on face",
                "emotion_line": "knowing the enemy is close, terrifying proximity",
                "environment_line": "pure shadow background",
                "subject_line": "Sadie staring intensely downward, eyes wide, jaw set"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 3,
            "shot_id": "EP013_SH35",
            "source_text": "He is down there.",
            "source_text_hash": "4533784ed1713595179ea4d3525f258e",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "helpless",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "compressor hum fading into a low ominous drone, cutting to black",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pull_back",
              "focal_length": "24mm",
              "kinetic_action": "slow pull back, isolating character in vast empty space, static posture",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "kitchen overhead light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow continuous pull back, widening the void around her",
                "emotion_line": "absolute helplessness, separated by impossible geometry, tragic ending",
                "environment_line": "darkening apartment interior, shadows creeping in from edges",
                "subject_line": "Sadie standing alone in the center of her kitchen, looking down at the floor"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "pull_back",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 6
            },
            "scene_index": 3,
            "shot_id": "EP013_SH36",
            "source_text": "She cannot get to him.",
            "source_text_hash": "9860dc6c1fd36a5383c290b8b162c74d",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "diminished",
                "shared_lighting": false
              },
              "screen_direction": "away-from-camera"
            }
          }
        ],
        "source_hash": "e7c8ecd4729143d235c87cf8ced4b47e",
        "total_shots": 36
      },
      "path": "afterimage/state/visual/plans/ep_013_plan.json"
    },
    {
      "data": {
        "episode_id": "EP014",
        "generated_at": "2024-05-24T12:00:00Z",
        "project": "Starsend",
        "shots": [
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low frequency rumble",
              "dialogue": [],
              "foley_action": "sharp glass cracking sound, high pitched stress fracture"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "sharp jagged fracture line propagating across the lens plane, high contrast edge distortion",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "BEHIND",
                    "intensity": "bright",
                    "motivator": "ambient room light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Fracture expanding downward, glass-like distortion",
                "emotion_line": "Sudden rupture, tension, broken reality",
                "environment_line": "Indistinct dark background, out of focus textures",
                "subject_line": "Abstract vertical crack splitting the visual field, sharp edges"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 1,
            "shot_id": "EP014_SH01",
            "source_text": "The frame cracks vertically.",
            "source_text_hash": "bbd8556f7b5d5dd0bd4364f39d0b086f",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "melancholy",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "muffled rain against glass, distant city hum",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "static composition, dust motes drifting slowly through light beam",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "RIGHT",
                    "intensity": "moderate",
                    "motivator": "streetlamp through window",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Still posture, silhouette against window light",
                "emotion_line": "Isolated, quiet contemplation, heavy atmosphere",
                "environment_line": "Dimly lit apartment, rain droplets on glass window, linoleum floor",
                "subject_line": "SADIE standing in center of apartment, facing window, arms at sides"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 2,
            "shot_id": "EP014_SH02",
            "source_text": "Top half: Sadie's apartment.",
            "source_text_hash": "8baf15b2e92d882054cdb83416c7f441",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "resigned",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "faint jazz music playing from jukebox, refrigerator hum",
              "dialogue": [],
              "foley_action": "soft cloth rubbing against wood"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "static composition, faint smoke drifting near ceiling",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "bar pendant lights",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Slow rhythmic wiping motion, head bowed slightly",
                "emotion_line": "Routine isolation, quiet endurance",
                "environment_line": "Empty bar, leather stools, liquor bottles catching dim light",
                "subject_line": "DUSTY standing behind wooden bar counter, wiping surface with cloth"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 3,
            "shot_id": "EP014_SH03",
            "source_text": "Bottom half: Dusty's bar.",
            "source_text_hash": "705744145829cd9d2af3608d889c9eff",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "creaking wood, structural settling sounds",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pan",
              "focal_length": "50mm",
              "kinetic_action": "slow lateral pan across textured surface, shallow depth of field",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "LEFT",
                    "intensity": "dim",
                    "motivator": "floor level draft light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Camera tracking along the seam of the floor",
                "emotion_line": "Separation, physical barrier, stark division",
                "environment_line": "Scuffed floorboards, dust in crevices, architectural boundary",
                "subject_line": "Close up of worn linoleum floor meeting baseboard"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "pan",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": true,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 4,
            "shot_id": "EP014_SH04",
            "source_text": "The ceiling/floor between them is the dividing line.",
            "source_text_hash": "602b53f432455b4f839b5eb2ef443105",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "heavy rain on pavement, distant traffic",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "tilt",
              "focal_length": "24mm",
              "kinetic_action": "slow vertical tilt down the exterior brick facade, rain streaking past lens",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "BELOW",
                    "intensity": "moderate",
                    "motivator": "streetlights",
                    "quality": "mixed"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Rain falling through frame, vertical camera descent",
                "emotion_line": "Proximity yet distance, urban isolation",
                "environment_line": "Wet asphalt below, dark bar exterior door, glowing windows in the rain",
                "subject_line": "Exterior of brick building, two illuminated windows stacked vertically"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "tilt",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 5,
            "shot_id": "EP014_SH05",
            "source_text": "Same building. Different floors.",
            "source_text_hash": "d15e47a9b1ac8815b2d99d1c8ffff6a6",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "tired",
                  "screen_position": "right",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "hum of refrigerator",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static framing, slight shifting of weight",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "kitchen overhead light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Subtle breathing, motionless posture",
                "emotion_line": "Fatigue, waiting for something",
                "environment_line": "Coffee maker in background, worn linoleum counter",
                "subject_line": "SADIE leaning against kitchen counter, looking down at surface"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 6,
            "shot_id": "EP014_SH06",
            "source_text": "Top: Sadie at her kitchen counter.",
            "source_text_hash": "b1ed76b4912c1d80c74dac10cdaa23ab",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "sadie_phone",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": "faint electronic buzz"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "micro push-in on object, shallow depth of field",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "SELF_ILLUMINATED",
                    "intensity": "dim",
                    "motivator": "notification LED",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Pulsing light from screen edge",
                "emotion_line": "Unanswered connection, digital silence",
                "environment_line": "Scratched counter surface, dark background",
                "subject_line": "Smartphone resting flat on kitchen counter, glowing notification LED"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 7,
            "shot_id": "EP014_SH07",
            "source_text": "Phone on the surface.",
            "source_text_hash": "b3cb361df4e0f53b6b6c68b4c9ba485f",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "neutral",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "manipulated",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": "ceramic scraping slightly against counter, liquid shifting"
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "i2v",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "smooth upward motion of hand entering frame, lifting object",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "kitchen overhead light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Hand gripping handle, lifting vertically out of frame",
                "emotion_line": "Mundane routine, passing time",
                "environment_line": "Out of focus kitchen background",
                "subject_line": "SADIE's hand lifting a ceramic coffee cup from the counter"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": true,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 8,
            "shot_id": "EP014_SH08",
            "source_text": "She lifts her coffee cup.",
            "source_text_hash": "ecb4ee32a3779bf29ba93ee3999f48bd",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "focused",
                  "screen_position": "left",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "faint jazz music",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static framing, slight downward gaze",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "bar pendant lights",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Still posture, hands resting on bar",
                "emotion_line": "Quiet focus, parallel existence",
                "environment_line": "Liquor bottles in background, leather stools in foreground",
                "subject_line": "DUSTY standing behind wooden bar counter, looking down at surface"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 9,
            "shot_id": "EP014_SH09",
            "source_text": "Bottom: Dusty behind the bar.",
            "source_text_hash": "a3801bb7948b4f1c516e885c75e4febb",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "micro push-in on object, catching reflections",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "bar pendant lights",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Light refracting through clear glass",
                "emotion_line": "Anticipation, waiting for a patron",
                "environment_line": "Polished wood surface, condensation rings",
                "subject_line": "Heavy-bottomed rocks glass resting on wooden bar counter"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 10,
            "shot_id": "EP014_SH10",
            "source_text": "Glass on the surface.",
            "source_text_hash": "680b0f3454b0298ff41d48638b4df21b",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "focused",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "manipulated",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": "squeak of clean glass, fabric rubbing"
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "i2v",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "circular motion blur on hand and cloth, rhythmic movement",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "bar pendant lights",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Hands rotating the glass, cloth wiping the rim",
                "emotion_line": "Repetitive comfort, muscle memory",
                "environment_line": "Out of focus bar background",
                "subject_line": "DUSTY's hands holding a white cloth, polishing the heavy-bottomed rocks glass"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": true,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 11,
            "shot_id": "EP014_SH11",
            "source_text": "He polishes a glass.",
            "source_text_hash": "3b4a9422cb0c2ff9b946bcd97336fb87",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low hum bridging two frequencies",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "split screen or rapid cross-cut motion, matching vectors",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "abstract transition light",
                    "quality": "mixed"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Visual blending of two spaces",
                "emotion_line": "Unseen connection, synchronicity",
                "environment_line": "Blurred architectural lines",
                "subject_line": "Abstract visual match cut, overlapping textures of wood and linoleum"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": true,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 12,
            "shot_id": "EP014_SH12",
            "source_text": "Synchronized gestures:",
            "source_text_hash": "ffbc58786d403fb456ce07eccae22f34",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "searching",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "rain intensifying slightly",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "i2v",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "slow push-in on face, eyes tracking movement outside",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "streetlamp through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Eyes darting slightly, catching exterior light",
                "emotion_line": "Searching, distant longing",
                "environment_line": "Dark apartment interior, reflections on glass",
                "subject_line": "SADIE looking out the rain-streaked glass window, head turned slightly"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": true,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 13,
            "shot_id": "EP014_SH13",
            "source_text": "when she looks out her window,",
            "source_text_hash": "f9e0a5f9df48d57ffbc51e5674177e31",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "attentive",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "faint creak of floorboards from above",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "i2v",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "slow push-in on face, chin tilting upward",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "bar pendant lights",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Eyes fixing on a spot above, still posture",
                "emotion_line": "Listening, acute awareness of presence above",
                "environment_line": "Dim bar interior, shadows on face",
                "subject_line": "DUSTY tilting his head back, looking up at the wooden ceiling"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": true,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 14,
            "shot_id": "EP014_SH14",
            "source_text": "he looks up at his ceiling.",
            "source_text_hash": "89be62d23dc4d7a59d2172a947c841f9",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "grounded",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": "soft palm slap against linoleum"
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "i2v",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "hand descending into frame, pressing flat against surface",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "kitchen overhead light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Fingers spreading slightly upon contact",
                "emotion_line": "Grounding oneself, tactile connection",
                "environment_line": "Worn counter surface, shallow depth of field",
                "subject_line": "SADIE's hand pressing flat against the linoleum kitchen counter"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": true,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 15,
            "shot_id": "EP014_SH15",
            "source_text": "When she puts her hand on the counter,",
            "source_text_hash": "8e44da53c91dea070dfc5175c3250bcf",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "grounded",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": "soft palm resting on wood"
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "i2v",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "hand descending slowly into frame, resting flat against wood",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "bar pendant lights",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Fingers relaxing upon contact with the wood",
                "emotion_line": "Unconscious mirroring, tactile echo",
                "environment_line": "Wood grain texture, shallow depth of field",
                "subject_line": "DUSTY's hand resting flat against the polished wooden bar counter"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": true,
              "num_characters": 1,
              "target_editorial_duration_s": 2
            },
            "scene_index": 16,
            "shot_id": "EP014_SH16",
            "source_text": "his drifts to the bar surface.",
            "source_text_hash": "ffc7811b790b2c7bd9493ea9a331e398",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "regretful",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "muffled jazz music bleeding through floorboards",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "voiceover, reflective, quiet",
                  "is_voiceover": true,
                  "text": "I can hear the music from downstairs. I've heard it every night for two years. I never went down."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static framing, slight chest rise with breath",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "RIGHT",
                    "intensity": "moderate",
                    "motivator": "streetlamp through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Still posture, listening intently",
                "emotion_line": "Regret, long-held hesitation",
                "environment_line": "Shadowy apartment, rain on window",
                "subject_line": "SADIE standing in her apartment, looking down at the floor"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 6
            },
            "scene_index": 17,
            "shot_id": "EP014_SH17",
            "source_text": "[VO: SADIE - top half] \"I can hear the music from downstairs. I've heard it every night for two years. I never went down.\"",
            "source_text_hash": "e469358a20a2e73133b9ea288fa53824",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "resigned",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "faint pacing footsteps from ceiling",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "voiceover, gravelly, observant",
                  "is_voiceover": true,
                  "text": "You hear footsteps above you. Every night. Same time. You've never gone up."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static framing, slight shift in stance",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "bar pendant lights",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Still posture, listening intently",
                "emotion_line": "Resignation, unspoken curiosity",
                "environment_line": "Empty bar, warm dim lighting",
                "subject_line": "DUSTY standing behind the bar, looking up at the ceiling"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 6
            },
            "scene_index": 18,
            "shot_id": "EP014_SH18",
            "source_text": "[VO: DUSTY - bottom half] \"You hear footsteps above you. Every night. Same time. You've never gone up.\"",
            "source_text_hash": "c475c1bc1d59d7fea7c4f9cd0ff0f6ff",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "fantasy"
            },
            "audio_data": {
              "ambient_sfx": "low frequency drone, spatial distortion hum",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "35mm",
              "kinetic_action": "slow push-in toward window, exterior view warping and shifting",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "bright",
                    "motivator": "shifting exterior light",
                    "quality": "mixed"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Street view dissolving into abstract shapes",
                "emotion_line": "Surreal shift, reality breaking down",
                "environment_line": "Bar interior framing the window, neon signs reflecting",
                "subject_line": "Glass window of the bar, exterior view morphing into an impossible landscape"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 19,
            "shot_id": "EP014_SH19",
            "source_text": "Through the bar window (bottom half), the view changes - not the street.",
            "source_text_hash": "be268e67d65b1198dba8b6bd893081c1",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "distant",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "heavy rain, wind howling slightly",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pull_back",
              "focal_length": "50mm",
              "kinetic_action": "slow pull-back from window, rain crossing lens plane",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "apartment interior light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Silhouette standing still in the window frame",
                "emotion_line": "Voyeuristic distance, isolation",
                "environment_line": "Brick facade, wet asphalt below, rain falling",
                "subject_line": "SADIE visible through the lit apartment window from the dark exterior"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "pull_back",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 20,
            "shot_id": "EP014_SH20",
            "source_text": "Her apartment window, seen from outside.",
            "source_text_hash": "2004d4850196e35b3ecaffe97c258d67",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "fantasy"
            },
            "audio_data": {
              "ambient_sfx": "massive deep bass groan, structural bending without breaking",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "tracking",
              "focal_length": "24mm",
              "kinetic_action": "architectural geometry bending, parallax distortion, motion blur on collapsing edges",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "BELOW",
                    "intensity": "bright",
                    "motivator": "streetlights",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Structural collapse without debris, clean geometric folding",
                "emotion_line": "Mind-bending impossibility, cosmic shift",
                "environment_line": "City street warping, brickwork folding like paper",
                "subject_line": "Building exterior physically bending, upper and lower floors compressing toward each other"
              },
              "shot_type": "LS"
            },
            "routing_data": {
              "camera_complexity": "tracking",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 21,
            "shot_id": "EP014_SH21",
            "source_text": "The spaces are folding.",
            "source_text_hash": "9dcc22e790abf230eff2043d2174694e",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "fantasy"
            },
            "audio_data": {
              "ambient_sfx": "deafening vacuum suck, sudden silence",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "14mm",
              "kinetic_action": "rapid push-in, extreme lens distortion, radial motion blur",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "blinding",
                    "motivator": "collapsing reality light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Violent visual implosion, converging lines",
                "emotion_line": "Overwhelming force, singularity",
                "environment_line": "Abstracted city elements, blinding light at the seam",
                "subject_line": "Total visual compression of the building, floors merging"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 22,
            "shot_id": "EP014_SH22",
            "source_text": "SPATIAL COLLAPSE.",
            "source_text_hash": "faabec23e84753af41029679b217f65e",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "fantasy"
            },
            "audio_data": {
              "ambient_sfx": "high pitched tension whine",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static framing, visual compression of the horizontal seam",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "LEFT",
                    "intensity": "dim",
                    "motivator": "floor level draft light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Slow creeping motion of the two surfaces converging",
                "emotion_line": "Inevitable collision, tension",
                "environment_line": "Wood and linoleum textures pressing together",
                "subject_line": "Close up of the floor/ceiling boundary, the gap physically shrinking"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 23,
            "shot_id": "EP014_SH23",
            "source_text": "The dividing line between the two halves narrows through the episode",
            "source_text_hash": "71a04b0ed5efc7677fc43c06d8fef9b7",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "fantasy"
            },
            "audio_data": {
              "ambient_sfx": "vibrating hum, almost silent",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "100mm",
              "kinetic_action": "micro push-in on the microscopic gap, static tension",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "BEHIND",
                    "intensity": "bright",
                    "motivator": "gap light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Surfaces vibrating but remaining separated by a millimeter",
                "emotion_line": "Frustrating near-contact, eternal separation",
                "environment_line": "Microscopic dust, sharp edges of wood and linoleum",
                "subject_line": "Extreme close up of a hairline fracture between two surfaces"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 24,
            "shot_id": "EP014_SH24",
            "source_text": "but never closes.",
            "source_text_hash": "4e1f18dedad6d9c5f2f2f4f5df4a423b",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "fantasy"
            },
            "audio_data": {
              "ambient_sfx": "slowed down rain sounds, heartbeat rhythm",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "completely static frame, rain falling in slow motion",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "BELOW",
                    "intensity": "moderate",
                    "motivator": "streetlights",
                    "quality": "mixed"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Raindrops frozen or moving very slowly",
                "emotion_line": "Suspended time, heavy anticipation",
                "environment_line": "Rain-slicked brick, dark street below",
                "subject_line": "Exterior of the building, the two windows stacked impossibly close together"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 8
            },
            "scene_index": 25,
            "shot_id": "EP014_SH25",
            "source_text": "LINGER (8s)",
            "source_text_hash": "9425024db376237ce46f26e4ff3cdd52",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "still",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                },
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "still",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                }
              ],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "fantasy"
            },
            "audio_data": {
              "ambient_sfx": "wind, distant city hum",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "static split composition, perfect symmetry",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "interior lights",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Both figures standing still in their respective spaces",
                "emotion_line": "Parallel lives, shared isolation",
                "environment_line": "Building exterior framing both lit rooms",
                "subject_line": "SADIE in top window, DUSTY in bottom window, separated by a thin line"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 2,
              "target_editorial_duration_s": 4
            },
            "scene_index": 26,
            "shot_id": "EP014_SH26",
            "source_text": "Both halves.",
            "source_text_hash": "78df44d754275f456b1b6d11408195a8",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "focused",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "i2v",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static framing, slight downward tilt of head",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "kitchen overhead light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Intense downward gaze, still posture",
                "emotion_line": "Piercing focus, trying to see through solid matter",
                "environment_line": "Dark apartment interior",
                "subject_line": "SADIE looking directly downward, eyes focused on the floor"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": true,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 27,
            "shot_id": "EP014_SH27",
            "source_text": "She looking down.",
            "source_text_hash": "705b36e4c34847b0135199656a4d1cca",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "focused",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "i2v",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static framing, slight upward tilt of chin",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "bar pendant lights",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Intense upward gaze, still posture",
                "emotion_line": "Meeting a gaze through the floorboards",
                "environment_line": "Dark bar interior",
                "subject_line": "DUSTY looking directly upward, eyes focused on the ceiling"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": true,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 28,
            "shot_id": "EP014_SH28",
            "source_text": "He looking up.",
            "source_text_hash": "c3afd3b55c4813a36700281f41dd6543",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "fantasy"
            },
            "audio_data": {
              "ambient_sfx": "low hum",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "50mm",
              "kinetic_action": "slow push-in on the horizontal seam, shallow depth of field",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "BEHIND",
                    "intensity": "dim",
                    "motivator": "gap light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Camera pushing closer to the seam",
                "emotion_line": "Focusing on the barrier",
                "environment_line": "Abstract architectural boundary",
                "subject_line": "Horizontal line dividing wood and linoleum textures"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 29,
            "shot_id": "EP014_SH29",
            "source_text": "The line between them - the floor/ceiling -",
            "source_text_hash": "8024cc01729309cebb43ab4c60de140f",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "fantasy"
            },
            "audio_data": {
              "ambient_sfx": "high pitched ringing",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "100mm",
              "kinetic_action": "extreme macro push-in, textures filling the frame",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "BEHIND",
                    "intensity": "moderate",
                    "motivator": "gap light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Line narrowing to a single pixel width",
                "emotion_line": "Extreme tension, breaking point",
                "environment_line": "Wood grain and linoleum scuffs highly magnified",
                "subject_line": "Microscopic view of the gap, a razor-thin line of light"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 30,
            "shot_id": "EP014_SH30",
            "source_text": "as thin as possible.",
            "source_text_hash": "c622fbe2f37723372804a2e4d1558b13",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "fantasy"
            },
            "audio_data": {
              "ambient_sfx": "ringing fades to silence",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "static macro shot, no movement",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "blue",
                    "direction": "BEHIND",
                    "intensity": "dim",
                    "motivator": "gap light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Absolute stillness",
                "emotion_line": "Defeat, the uncrossable boundary",
                "environment_line": "Macro textures frozen in place",
                "subject_line": "The razor-thin line holding steady, refusing to close completely"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 31,
            "shot_id": "EP014_SH31",
            "source_text": "But still there.",
            "source_text_hash": "288cca23091b6a2ea766a7ff3d4c6a11",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "simulation"
            },
            "audio_data": {
              "ambient_sfx": "digital chime",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "graphic overlay appearing, static background",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "BELOW",
                    "intensity": "moderate",
                    "motivator": "streetlights",
                    "quality": "mixed"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Text fading in",
                "emotion_line": "Interactive prompt, breaking the fourth wall",
                "environment_line": "Dark street, rain, lit windows",
                "subject_line": "Building exterior with glowing UI elements overlaying the frame"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 32,
            "shot_id": "EP014_SH32",
            "source_text": "WORLD VOTE",
            "source_text_hash": "a8486f6db129fb88c243413bcadcec0e",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "expectant",
                  "screen_position": "right",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                },
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "waiting",
                  "screen_position": "left",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "fantasy"
            },
            "audio_data": {
              "ambient_sfx": "faint jazz music",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static framing, DUSTY holding a bottle, SADIE sitting at the bar",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "bar pendant lights",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Frozen moment before pouring",
                "emotion_line": "Anticipation, a choice to be made",
                "environment_line": "Warm bar interior, heavy-bottomed rocks glass on the counter between them",
                "subject_line": "DUSTY standing behind the bar holding a bottle, SADIE sitting on a leather stool across from him"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 2,
              "target_editorial_duration_s": 4
            },
            "scene_index": 33,
            "shot_id": "EP014_SH33",
            "source_text": "**[DM_PROMPT]** What he pours for her:",
            "source_text_hash": "e0e3f91fee4182f8d02caa20b6eb4cd7",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "dialogue",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "simulation"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static macro shot, rich colors",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "bar pendant lights",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Light catching the liquid and citrus oils",
                "emotion_line": "Warmth, familiarity, vice",
                "environment_line": "Polished wood bar counter",
                "subject_line": "Heavy-bottomed rocks glass filled with amber rye whiskey and a curled orange peel"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 34,
            "shot_id": "EP014_SH34",
            "source_text": "* [A] The rye and orange peel",
            "source_text_hash": "0dbd6bc390a8381cf0265f9def96f437",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "simulation"
            },
            "audio_data": {
              "ambient_sfx": "",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static macro shot, cool reflections",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "bar pendant lights",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Light refracting through ice cubes",
                "emotion_line": "Clarity, sobriety, cold truth",
                "environment_line": "Polished wood bar counter",
                "subject_line": "Heavy-bottomed rocks glass filled with clear ice water, condensation on the outside"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 35,
            "shot_id": "EP014_SH35",
            "source_text": "* [B] Ice water",
            "source_text_hash": "89b44692701c304236dbdf2fd948e349",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "simulation"
            },
            "audio_data": {
              "ambient_sfx": "digital hum",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "static split screen, glowing UI text overlay",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "BELOW",
                    "intensity": "moderate",
                    "motivator": "streetlights",
                    "quality": "mixed"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Text pulsing slightly",
                "emotion_line": "Shared destiny, synchronized choice",
                "environment_line": "Rainy street, lit windows",
                "subject_line": "Building exterior split horizontally, glowing text mirroring on top and bottom"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 36,
            "shot_id": "EP014_SH36",
            "source_text": "[Same vote appears on BOTH halves simultaneously.",
            "source_text_hash": "9811bdfde7ae4e6d259a5cd067189a33",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "ext_city_street",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "simulation"
            },
            "audio_data": {
              "ambient_sfx": "heavy rain fading to silence",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pull_back",
              "focal_length": "50mm",
              "kinetic_action": "slow pull-back into the dark street, rain intensifying",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "amber",
                    "direction": "BELOW",
                    "intensity": "dim",
                    "motivator": "streetlights",
                    "quality": "mixed"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Camera retreating, leaving the choice hanging",
                "emotion_line": "Finality, the burden of choice",
                "environment_line": "Dark city street swallowing the architecture",
                "subject_line": "The building fading into the rain, the two lit windows remaining visible"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "pull_back",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 5
            },
            "scene_index": 37,
            "shot_id": "EP014_SH37",
            "source_text": "One question, two perspectives.]",
            "source_text_hash": "698406520e0f0a77e205b3629fae44d1",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          }
        ],
        "source_hash": "f5c126f1ee0a36ec1a1e74bebb1f303f",
        "total_shots": 37
      },
      "path": "afterimage/state/visual/plans/ep_014_plan.json"
    },
    {
      "data": {
        "episode_id": "EP015",
        "generated_at": "2024-05-24T12:00:00Z",
        "project": "Starsend",
        "shots": [
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "heavy rain muffled by glass, low neon hum",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static framing, shallow depth of field, sharp focus on glass surface",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "bright",
                    "motivator": "exterior neon sign",
                    "quality": "mixed"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, shallow depth of field, sharp focus on glass surface",
                "emotion_line": "melancholic, isolated, atmospheric",
                "environment_line": "int_{char_DUSTY}_bar, dim interior, neon light bleeding through",
                "subject_line": "glass window pane, condensation, dark frame"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP015_SH01",
            "source_text": "The bar window.",
            "source_text_hash": "5cac9d025760d85879759a0359a77283",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "rain pattering against glass",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm macro",
              "kinetic_action": "water streaking down glass, macro focus, kinetic motion blur on falling drops",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "water streaking down glass, macro focus, kinetic motion blur on falling drops",
                "emotion_line": "somber, relentless, cold",
                "environment_line": "int_{char_DUSTY}_bar, macro perspective, dark background",
                "subject_line": "rain droplets on glass window, water trails"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 2,
            "shot_id": "EP015_SH02",
            "source_text": "Rain.",
            "source_text_hash": "0d08f333500f40b07e19b72d3760d002",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "electrical buzz of neon sign",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "pulsing light, lens flare, high contrast, sharp specular highlights",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "bright",
                    "motivator": "exterior neon sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "pulsing light, lens flare, high contrast, sharp specular highlights",
                "emotion_line": "electric, harsh, disorienting",
                "environment_line": "int_{char_DUSTY}_bar, abstract light patterns",
                "subject_line": "neon light reflecting on wet glass, blurred background"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 3,
            "shot_id": "EP015_SH03",
            "source_text": "Neon.",
            "source_text_hash": "311085af1e135e6acbcf5d5bcfe89083",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "distant city traffic, rain",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "static framing, deep depth of field, high contrast silhouettes",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "bright",
                    "motivator": "exterior neon sign",
                    "quality": "mixed"
                  },
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "bar pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, deep depth of field, high contrast silhouettes",
                "emotion_line": "anticipation, mysterious, connected",
                "environment_line": "int_{char_DUSTY}_bar, dim interior, neon light illuminating window",
                "subject_line": "silhouettes of two figures standing side by side, facing glass window"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 5
            },
            "scene_index": 4,
            "shot_id": "EP015_SH04",
            "source_text": "Two people standing side by side.",
            "source_text_hash": "e9166108f33e6ea7fb98143cf679208b",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "determined",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "rain outside",
              "dialogue": [],
              "foley_action": "leather shoes stepping on wooden floor"
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "t2v",
            "prompt_data": {
              "camera_movement": "tracking",
              "focal_length": "50mm",
              "kinetic_action": "motion blur on trailing limbs, forward lean, tracking movement, kinetic diagonal composition",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "bar pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "motion blur on trailing limbs, forward lean, tracking movement, kinetic diagonal composition",
                "emotion_line": "determined, crossing a threshold, vulnerable",
                "environment_line": "int_{char_DUSTY}_bar, liquor bottles in background, dim lighting",
                "subject_line": "{char_DUSTY} walking past wooden bar counter, leaving territory"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "tracking",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 5,
            "shot_id": "EP015_SH05",
            "source_text": "Dusty has come out from behind the bar \u2014 his territory, his ledger, his control surface \u2014",
            "source_text_hash": "acf3e5b36ad7b3ecf6822dd2c59a218c",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "exposed",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "rain outside",
              "dialogue": [],
              "foley_action": "footsteps stopping"
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "i2v",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "static posture, center-weighted composition, sharp focus, abrupt halt",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "mixed"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static posture, center-weighted composition, sharp focus, abrupt halt",
                "emotion_line": "exposed, tense, expectant",
                "environment_line": "int_{char_DUSTY}_bar, empty floor, neon light spilling in",
                "subject_line": "{char_DUSTY} standing still in open floor space, facing window"
              },
              "shot_type": "FS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": true,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 6,
            "shot_id": "EP015_SH06",
            "source_text": "and stands in the open room.",
            "source_text_hash": "afebc64b02117f167bfc1c735ca1e825",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "magnetized",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "rain outside",
              "dialogue": [],
              "foley_action": "leather creaking, fabric rustling"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "tilt",
              "focal_length": "50mm",
              "kinetic_action": "vertical kinetic energy, fabric swishing, rising motion, slight motion blur",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "mixed"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "vertical kinetic energy, fabric swishing, rising motion, slight motion blur",
                "emotion_line": "drawn, magnetized, tense",
                "environment_line": "int_{char_DUSTY}_bar, near glass window, dim lighting",
                "subject_line": "{char_SADIE} standing up from leather stool"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "tilt",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 7,
            "shot_id": "EP015_SH07",
            "source_text": "Sadie has risen from the stool.",
            "source_text_hash": "4c937ca2fc5e58dd54f9e3dbac3071c9",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "tense",
                  "screen_position": "left",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                },
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "tense",
                  "screen_position": "right",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "rain outside, neon hum",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static framing, subtle breathing micro-movements, sharp focus on subjects",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "bright",
                    "motivator": "exterior neon sign",
                    "quality": "mixed"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, subtle breathing micro-movements, sharp focus on subjects",
                "emotion_line": "shared tension, silent connection, anticipation",
                "environment_line": "int_{char_DUSTY}_bar, rain on window, neon reflections",
                "subject_line": "{char_DUSTY} and {char_SADIE} standing side by side facing glass window"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 2,
              "target_editorial_duration_s": 4
            },
            "scene_index": 8,
            "shot_id": "EP015_SH08",
            "source_text": "They are at the glass.",
            "source_text_hash": "90be18414d93e2b56760310181474711",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "group",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "hyper-aware",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                },
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "tense",
                  "screen_position": "background",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "rain outside",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "intimate, haunted",
                  "is_voiceover": true,
                  "text": "I can feel him beside me. Not see \u2014 feel. The way the air gets heavier when someone is watching you."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "t2v",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "slow push-in, shallow depth of field, micro-tremor in jaw, sharp focus on foreground",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow push-in, shallow depth of field, micro-tremor in jaw, sharp focus on foreground",
                "emotion_line": "hyper-aware, haunted, intimate",
                "environment_line": "int_{char_DUSTY}_bar, dark interior, neon rim light",
                "subject_line": "{char_SADIE} looking off-center, {char_DUSTY} out of focus in background"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 2,
              "target_editorial_duration_s": 6
            },
            "scene_index": 9,
            "shot_id": "EP015_SH09",
            "source_text": "[VO: SADIE] \"I can feel him beside me. Not see \u2014 feel. The way the air gets heavier when someone is watching you.\"",
            "source_text_hash": "11199578b7365451d227b023c2bf8de1",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "dialogue",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "restrained",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                },
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "tense",
                  "screen_position": "background",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "rain outside",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "resigned, warning",
                  "is_voiceover": true,
                  "text": "You know that if you touch her, the system corrects itself. The voicemails stop. The seat goes cold. You don't close your eyes this time."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "t2v",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "slow push-in, unblinking eyes, rigid posture, shallow depth of field",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow push-in, unblinking eyes, rigid posture, shallow depth of field",
                "emotion_line": "restrained, fearful of loss, resolute",
                "environment_line": "int_{char_DUSTY}_bar, dark interior, neon rim light",
                "subject_line": "{char_DUSTY} staring forward, {char_SADIE} out of focus in background"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 2,
              "target_editorial_duration_s": 8
            },
            "scene_index": 10,
            "shot_id": "EP015_SH10",
            "source_text": "[VO: DUSTY] \"You know that if you touch her, the system corrects itself. The voicemails stop. The seat goes cold. You don't close your eyes this time.\"",
            "source_text_hash": "daed9496e5841e503ac374160ebd8f06",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "dialogue",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "certain",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                },
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "tense",
                  "screen_position": "background",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [
                {
                  "prop_id": "sadie_phone",
                  "visibility": "off_screen"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "rain outside",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "factual, intense",
                  "is_voiceover": true,
                  "text": "He's right there. I know it the way I know the phone is on the counter."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "t2v",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static framing, chest rising with shallow breath, sharp focus on reflection",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "mixed"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, chest rising with shallow breath, sharp focus on reflection",
                "emotion_line": "certain, grounded, intense",
                "environment_line": "int_{char_DUSTY}_bar, rain on window, neon glow",
                "subject_line": "{char_SADIE} looking at reflection in glass window, {char_DUSTY} visible in background reflection"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 2,
              "target_editorial_duration_s": 5
            },
            "scene_index": 11,
            "shot_id": "EP015_SH11",
            "source_text": "[VO: SADIE] \"He's right there. I know it the way I know the phone is on the counter.\"",
            "source_text_hash": "3245ab8ecb8787d4a598e88bf0c563f8",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "dialogue",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "mesmerized",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                },
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "tense",
                  "screen_position": "background",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "rain outside",
              "dialogue": [
                {
                  "character": "DUSTY",
                  "delivery_note": "mesmerized, trailing off",
                  "is_voiceover": true,
                  "text": "You can see her. In the reflection. In the rain on the glass. She's\u2014"
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "t2v",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static framing, eyes tracking movement, micro-tremor in facial muscles",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "mixed"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, eyes tracking movement, micro-tremor in facial muscles",
                "emotion_line": "mesmerized, longing, interrupted",
                "environment_line": "int_{char_DUSTY}_bar, rain on window, neon glow",
                "subject_line": "{char_DUSTY} looking at reflection in glass window, {char_SADIE} visible in background reflection"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 2,
              "target_editorial_duration_s": 5
            },
            "scene_index": 12,
            "shot_id": "EP015_SH12",
            "source_text": "[VO: DUSTY] \"You can see her. In the reflection. In the rain on the glass. She's\u2014\"",
            "source_text_hash": "22bea3235964093935226aa4f010247b",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "dialogue",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "subtle reverse audio effect, low hum",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm macro",
              "kinetic_action": "reverse gravity kinetic motion, water streaking up, macro focus, unnatural physics",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "reverse gravity kinetic motion, water streaking up, macro focus, unnatural physics",
                "emotion_line": "surreal, reality-breaking, eerie",
                "environment_line": "int_{char_DUSTY}_bar, macro perspective, dark background",
                "subject_line": "rain droplets on glass window moving upward"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": true,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 13,
            "shot_id": "EP015_SH13",
            "source_text": "The rain on the window falls upward for three seconds.",
            "source_text_hash": "94a2ae5657c764b4351709870be077c7",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "normal rain sound resumes abruptly",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm macro",
              "kinetic_action": "sudden downward kinetic shift, gravity restored, water splashing, sharp focus",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "sudden downward kinetic shift, gravity restored, water splashing, sharp focus",
                "emotion_line": "jarring, grounding, sudden",
                "environment_line": "int_{char_DUSTY}_bar, macro perspective, dark background",
                "subject_line": "rain droplets on glass window falling downward"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": true,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 14,
            "shot_id": "EP015_SH14",
            "source_text": "Then corrects.",
            "source_text_hash": "cc3954cb6505e017fe3fd85797d6d94f",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "trance-like",
                  "screen_position": "left",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                },
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "trance-like",
                  "screen_position": "right",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "rain outside, neon hum",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "frozen posture, absolute stillness, static framing, deep focus",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "bright",
                    "motivator": "exterior neon sign",
                    "quality": "mixed"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "frozen posture, absolute stillness, static framing, deep focus",
                "emotion_line": "trance-like, disconnected, intense focus",
                "environment_line": "int_{char_DUSTY}_bar, neon reflections, rain on glass",
                "subject_line": "{char_DUSTY} and {char_SADIE} staring blankly at glass window, side by side"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 2,
              "target_editorial_duration_s": 4
            },
            "scene_index": 15,
            "shot_id": "EP015_SH15",
            "source_text": "Nobody acknowledges it.",
            "source_text_hash": "e94f95e752071bc1b019d755dee9ea70",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "group",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "awe",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "rain outside",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "eye dart, pupil dilation, rack focus to reflection, static framing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "mixed"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "eye dart, pupil dilation, rack focus to reflection, static framing",
                "emotion_line": "realization, awe, longing",
                "environment_line": "int_{char_DUSTY}_bar, rain on window, neon glow",
                "subject_line": "{char_DUSTY} looking at glass window, faint reflection visible"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 16,
            "shot_id": "EP015_SH16",
            "source_text": "He sees her reflection.",
            "source_text_hash": "bca4d2627a1e901036241bb9fc8df2f0",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "compelled",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "rain outside, low rumble building",
              "dialogue": [],
              "foley_action": "fabric stretching"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "50mm",
              "kinetic_action": "slow forward arm extension, motion blur on fingertips, tense muscles, slow push-in",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "mixed"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow forward arm extension, motion blur on fingertips, tense muscles, slow push-in",
                "emotion_line": "compelled, desperate, reaching out",
                "environment_line": "int_{char_DUSTY}_bar, rain on window, neon glow",
                "subject_line": "{char_DUSTY} extending hand toward glass window"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 17,
            "shot_id": "EP015_SH17",
            "source_text": "He reaches toward the glass.",
            "source_text_hash": "fcaa8575c5796efad9490029a045bc6a",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "rapid electrical buzzing, escalating pitch",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "rapid stroboscopic pulsing, harsh contrast shifts, lens flare",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "blinding",
                    "motivator": "exterior neon sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "rapid stroboscopic pulsing, harsh contrast shifts, lens flare",
                "emotion_line": "frantic, escalating, overwhelming",
                "environment_line": "int_{char_DUSTY}_bar, abstract light patterns",
                "subject_line": "neon light reflecting on wet glass"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 2
            },
            "scene_index": 18,
            "shot_id": "EP015_SH18",
            "source_text": "The neon pulses faster.",
            "source_text_hash": "5621a79ca47fdec91662a47c43e0172d",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "deafening low frequency rumble, glass rattling",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "camera vibration, low frequency rumble effect, static framing, deep focus",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "bar pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "camera vibration, low frequency rumble effect, static framing, deep focus",
                "emotion_line": "oppressive, chaotic, building tension",
                "environment_line": "int_{char_DUSTY}_bar, dim interior, shadows vibrating",
                "subject_line": "empty wooden bar counter and leather stools"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 19,
            "shot_id": "EP015_SH19",
            "source_text": "Sound escalates.",
            "source_text_hash": "dde6602fbef8b9fa01949547d62d40e8",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "crescendo of noise, roaring rain",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "24mm",
              "kinetic_action": "slow push-in, heavy atmosphere, high tension composition, sharp focus",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "bright",
                    "motivator": "exterior neon sign",
                    "quality": "mixed"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow push-in, heavy atmosphere, high tension composition, sharp focus",
                "emotion_line": "climactic, inevitable, overwhelming",
                "environment_line": "int_{char_DUSTY}_bar, neon light flooding the room, high contrast",
                "subject_line": "wide view of the bar interior, glass window in background"
              },
              "shot_type": "LS"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 20,
            "shot_id": "EP015_SH20",
            "source_text": "Every cue says: this is the moment.",
            "source_text_hash": "89d2a39ffc03819d9ee86a1ce31a1330",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "frozen",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "sudden drop in audio volume, ringing silence",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "i2v",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm macro",
              "kinetic_action": "abrupt kinetic halt, micro-tremor in fingers, sharp focus on fingertips, shallow depth of field",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "mixed"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "abrupt kinetic halt, micro-tremor in fingers, sharp focus on fingertips, shallow depth of field",
                "emotion_line": "hesitation, agonizing restraint, frozen",
                "environment_line": "int_{char_DUSTY}_bar, rain on glass in background",
                "subject_line": "{char_DUSTY}'s hand hovering millimeters from glass window"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": true,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 21,
            "shot_id": "EP015_SH21",
            "source_text": "His hand stops.",
            "source_text_hash": "f2f3aa56c6a0eff625a032b713161b58",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "frozen",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "ringing silence",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "kling-v3",
            "origin": "script_derived",
            "pipeline": "i2v",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm macro",
              "kinetic_action": "abrupt kinetic halt, micro-tremor in fingers, sharp focus on fingertips, shallow depth of field",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "mixed"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "abrupt kinetic halt, micro-tremor in fingers, sharp focus on fingertips, shallow depth of field",
                "emotion_line": "hesitation, mirroring, frozen",
                "environment_line": "int_{char_DUSTY}_bar, rain on glass in background",
                "subject_line": "{char_SADIE}'s hand hovering millimeters from glass window"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": true,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 22,
            "shot_id": "EP015_SH22",
            "source_text": "Her hand stops.",
            "source_text_hash": "4471cc85626d07008f3ca4453de580e7",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "frozen",
                  "screen_position": "left",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                },
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "frozen",
                  "screen_position": "right",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "ringing silence",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static framing, extreme tension, hands frozen in space, sharp focus on hands",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "exterior neon sign",
                    "quality": "mixed"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, extreme tension, hands frozen in space, sharp focus on hands",
                "emotion_line": "intimate, painful proximity, unresolved",
                "environment_line": "int_{char_DUSTY}_bar, rain on glass, neon glow",
                "subject_line": "{char_DUSTY}'s hand and {char_SADIE}'s hand hovering near glass window, inches apart"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 2,
              "target_editorial_duration_s": 4
            },
            "scene_index": 23,
            "shot_id": "EP015_SH23",
            "source_text": "Both on the glass, inches apart.",
            "source_text_hash": "86faf7495762f8614da20e95b507e0e9",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "group",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "electrical buzzing slows and fades",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "slow rhythmic pulsing, fading intensity, soft focus",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow rhythmic pulsing, fading intensity, soft focus",
                "emotion_line": "calming, subsiding, melancholic",
                "environment_line": "int_{char_DUSTY}_bar, abstract light patterns",
                "subject_line": "neon light reflecting on wet glass"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 24,
            "shot_id": "EP015_SH24",
            "source_text": "The neon slows.",
            "source_text_hash": "0c6a11f61df65d31fb0297dfcee19330",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "gentle rain patter",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm macro",
              "kinetic_action": "slow trickling water, gentle kinetic motion, soft focus, shallow depth of field",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "cool",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow trickling water, gentle kinetic motion, soft focus, shallow depth of field",
                "emotion_line": "peaceful, resigned, gentle",
                "environment_line": "int_{char_DUSTY}_bar, macro perspective, dark background",
                "subject_line": "rain droplets on glass window"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 25,
            "shot_id": "EP015_SH25",
            "source_text": "The rain softens.",
            "source_text_hash": "90dedf88a8e8a179293a153781673634",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "resigned",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "gentle rain",
              "dialogue": [],
              "foley_action": "soft exhale"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "slow exhale, shoulders dropping, static framing, sharp focus on face",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow exhale, shoulders dropping, static framing, sharp focus on face",
                "emotion_line": "resigned, accepting, heavy",
                "environment_line": "int_{char_DUSTY}_bar, dark interior, soft neon rim light",
                "subject_line": "{char_DUSTY} staring at his own hand, looking down"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 26,
            "shot_id": "EP015_SH26",
            "source_text": "His choice.",
            "source_text_hash": "cc21ab295919d82bcd1226fd6627e01a",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "sorrowful",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "gentle rain",
              "dialogue": [],
              "foley_action": "fabric rustling"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pull_back",
              "focal_length": "50mm",
              "kinetic_action": "slow reverse kinetic motion, hand withdrawing, soft focus on background, slow pull-back",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow reverse kinetic motion, hand withdrawing, soft focus on background, slow pull-back",
                "emotion_line": "relinquishing, preserving, sorrowful",
                "environment_line": "int_{char_DUSTY}_bar, rain on window, dim lighting",
                "subject_line": "{char_DUSTY} slowly pulling hand back from glass window"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "pull_back",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 27,
            "shot_id": "EP015_SH27",
            "source_text": "He understands that reaching through ends the voicemails,",
            "source_text_hash": "a2b399c2787b36e2141d934e826569d2",
            "spatial_data": {
              "camera_side": "B",
              "character_relationships": {
                "dominant_character": "DUSTY",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "gentle rain",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "50mm",
              "kinetic_action": "static framing, slow push-in, dim lighting, sharp focus on leather texture",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "bar pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, slow push-in, dim lighting, sharp focus on leather texture",
                "emotion_line": "ghostly, lingering, nostalgic",
                "environment_line": "int_{char_DUSTY}_bar, wooden bar counter, dim warm lighting",
                "subject_line": "leather seat impression on seat seven, empty stool"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 28,
            "shot_id": "EP015_SH28",
            "source_text": "ends the warmth on seat seven,",
            "source_text_hash": "4405e20a1d066ebf3e799c0d7316a9ff",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "gentle rain",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "static framing, negative space composition, deep focus",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "bar pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, negative space composition, deep focus",
                "emotion_line": "empty, final, quiet",
                "environment_line": "int_{char_DUSTY}_bar, shadows, quiet interior",
                "subject_line": "empty space beside the wooden bar counter"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 29,
            "shot_id": "EP015_SH29",
            "source_text": "ends the presence.",
            "source_text_hash": "7a4c2b3a152bc70da3f1724d2ba4d4d0",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "gentle rain",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pan",
              "focal_length": "50mm",
              "kinetic_action": "slow pan across glass surface, catching reflections, smooth motion",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow pan across glass surface, catching reflections, smooth motion",
                "emotion_line": "philosophical, reflective, profound",
                "environment_line": "int_{char_DUSTY}_bar, rain droplets, neon glow",
                "subject_line": "glass window separating interior and exterior"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "pan",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 30,
            "shot_id": "EP015_SH30",
            "source_text": "The mystery IS the relationship.",
            "source_text_hash": "f8b2f3ffd48de7a31cad4f0ce524adc1",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "gentle rain",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "macro focus, static framing, shallow depth of field, sharp focus on condensation",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "macro focus, static framing, shallow depth of field, sharp focus on condensation",
                "emotion_line": "intimate, delicate, fragile",
                "environment_line": "int_{char_DUSTY}_bar, macro perspective",
                "subject_line": "condensation on glass window, blurred background"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 31,
            "shot_id": "EP015_SH31",
            "source_text": "The barrier is what makes the intimacy possible.",
            "source_text_hash": "2c45bfa28449ce95f2abfbf5262f860a",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "connected",
                  "screen_position": "left",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                },
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "connected",
                  "screen_position": "right",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "gentle rain",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "rack focus from glass surface to reflections, static framing, deep focus",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "rack focus from glass surface to reflections, static framing, deep focus",
                "emotion_line": "united, ethereal, connected",
                "environment_line": "int_{char_DUSTY}_bar, rain droplets on glass, dark background",
                "subject_line": "reflections of {char_DUSTY} and {char_SADIE} in glass window, side by side"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 2,
              "target_editorial_duration_s": 5
            },
            "scene_index": 32,
            "shot_id": "EP015_SH32",
            "source_text": "Two reflections in the glass.",
            "source_text_hash": "a8f85428abcd0cf63823c061c867e7bc",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "group",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "gentle rain",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm macro",
              "kinetic_action": "extreme macro focus, static framing, shallow depth of field",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "exterior neon sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "extreme macro focus, static framing, shallow depth of field",
                "emotion_line": "fragile, absolute, dividing",
                "environment_line": "int_{char_DUSTY}_bar, macro perspective",
                "subject_line": "edge of the glass window pane, cross-section"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 33,
            "shot_id": "EP015_SH33",
            "source_text": "Separated by something as thin as a window.",
            "source_text_hash": "705d3c5a71d3715e70f0de6ff5ed9cbf",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "gentle rain",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pull_back",
              "focal_length": "50mm",
              "kinetic_action": "slow pull-back, revealing dual reflections, symmetrical composition, smooth motion",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "slow pull-back, revealing dual reflections, symmetrical composition, smooth motion",
                "emotion_line": "poetic, resolved, harmonious",
                "environment_line": "int_{char_DUSTY}_bar, rain on glass, symmetrical framing",
                "subject_line": "glass window reflecting the interior, two faint silhouettes"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "pull_back",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 5
            },
            "scene_index": 34,
            "shot_id": "EP015_SH34",
            "source_text": "RHYME with Episode 1's single reflection \u2014 now there are two.",
            "source_text_hash": "3ebcbae26be49f28d9165e5eeb1fd62f",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "DUSTY",
                  "emotion_keyword": "expectant",
                  "screen_position": "left",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "dusty_fractured_reality"
                },
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "expectant",
                  "screen_position": "right",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "gentle rain",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static framing, sharp focus on the glass surface, shallow depth of field",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static framing, sharp focus on the glass surface, shallow depth of field",
                "emotion_line": "expectant, mysterious, suspended",
                "environment_line": "int_{char_DUSTY}_bar, rain on glass, dark background",
                "subject_line": "space between {char_DUSTY} and {char_SADIE}'s reflections on glass window"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 2,
              "target_editorial_duration_s": 4
            },
            "scene_index": 35,
            "shot_id": "EP015_SH35",
            "source_text": "**[DM_PROMPT]** What appears between their reflections:",
            "source_text_hash": "21800872f4d2a1bc241a5bfb63ad8347",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "group",
                "relative_scale": "standard",
                "shared_lighting": true
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "gentle rain",
              "dialogue": [],
              "foley_action": "soft breath sound"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm macro",
              "kinetic_action": "kinetic expansion of fog, blooming condensation, macro focus, soft edges",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "exterior neon sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "kinetic expansion of fog, blooming condensation, macro focus, soft edges",
                "emotion_line": "ghostly, intimate, fleeting",
                "environment_line": "int_{char_DUSTY}_bar, macro perspective, dark background",
                "subject_line": "condensation rapidly forming on glass window, fogging surface"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 36,
            "shot_id": "EP015_SH36",
            "source_text": "* [A] A breath fogging the glass",
            "source_text_hash": "a9d97803bd664e76bf667295ee936833",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "silver_earring",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "gentle rain",
              "dialogue": [],
              "foley_action": "subtle high-pitched chime"
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm macro",
              "kinetic_action": "sudden sharp glint, lens flare, quick fade, macro focus",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "mixed",
                    "direction": "FRONT",
                    "intensity": "bright",
                    "motivator": "exterior neon sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "sudden sharp glint, lens flare, quick fade, macro focus",
                "emotion_line": "piercing, revealing, final",
                "environment_line": "int_{char_DUSTY}_bar, macro perspective, dark background",
                "subject_line": "silver earring reflecting light in the glass window"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 37,
            "shot_id": "EP015_SH37",
            "source_text": "* [B] The earring's light, catching once",
            "source_text_hash": "b94d037ecc6f932b34a41cfcb4b78bb8",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          }
        ],
        "source_hash": "84ab7c38358c72e74e8fcc542a3b595b",
        "total_shots": 37
      },
      "path": "afterimage/state/visual/plans/ep_015_plan.json"
    },
    {
      "data": {
        "episode_id": "EP016",
        "generated_at": "2023-10-25T12:00:00Z",
        "project": "Starsend",
        "shots": [
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "steady rain against glass, muffled city hum",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "water droplets sliding down glass, micro-vibrations from distant traffic, shallow depth of field",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "distant neon street sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "water pooling, streaking down the glass surface",
                "emotion_line": "melancholic, reflective, still",
                "environment_line": "int_{char_SADIE}_apartment, looking out at blurred city lights",
                "subject_line": "Raindrops on window pane, macro focus"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 1,
            "shot_id": "EP016_SH01",
            "source_text": "Rain on glass.",
            "source_text_hash": "ee31df7e83505766b1d3f65b79c3b9c0",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "steady rain against glass, distant siren",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "rack focus from glass to background neon, bokeh expansion, smooth optical transition",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "bright",
                    "motivator": "neon street sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "focus shifting, colors bleeding into each other",
                "emotion_line": "dreamy, nostalgic, warm",
                "environment_line": "int_{char_SADIE}_apartment, looking out window",
                "subject_line": "Blurred neon lights, large bokeh circles"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 2,
            "shot_id": "EP016_SH02",
            "source_text": "Neon blurred behind it.",
            "source_text_hash": "f0dff0da69e1a5c6343f1b7de5c706f9",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low city rumble, wind",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pull_back",
              "focal_length": "35mm",
              "kinetic_action": "slow pull back, revealing window frame, deep depth of field",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "city streetlights",
                    "quality": "mixed"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "camera pulling back slowly, revealing scale",
                "emotion_line": "expansive, familiar, quiet",
                "environment_line": "int_{char_SADIE}_apartment, window frame in foreground, city in background",
                "subject_line": "City skyline through wet window"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "pull_back",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 3,
            "shot_id": "EP016_SH03",
            "source_text": "The same city,",
            "source_text_hash": "7389b01740304bdd6df7024453852a5a",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "low city rumble, wind",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "static framing, rain falling steadily, neon flickering slightly",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "city streetlights",
                    "quality": "mixed"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "rain falling, lights glowing in the dark",
                "emotion_line": "timeless, enduring, still",
                "environment_line": "int_{char_SADIE}_apartment, window frame in foreground, city in background",
                "subject_line": "City skyline through wet window"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 4,
            "shot_id": "EP016_SH04",
            "source_text": "the same night,",
            "source_text_hash": "8090ab368820be3b7acda33031a7eaa2",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone, distant rain",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pull_back",
              "focal_length": "50mm",
              "kinetic_action": "continued slow pull back, revealing interior walls, smooth motion",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "window light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "camera pulling back into the dark room",
                "emotion_line": "isolated, observant, quiet",
                "environment_line": "int_{char_SADIE}_apartment, looking out at city",
                "subject_line": "Window frame, dark interior walls"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "pull_back",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 5,
            "shot_id": "EP016_SH05",
            "source_text": "the same window.",
            "source_text_hash": "dba75bb9b6f359845374e925b6d2f39f",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone, distant rain",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static framing, perfect geometric alignment, subtle rain motion",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "window light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static composition, rain falling outside",
                "emotion_line": "deja vu, cyclical, grounded",
                "environment_line": "int_{char_SADIE}_apartment, looking out at city",
                "subject_line": "Window frame, perfectly centered"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": true,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 6,
            "shot_id": "EP016_SH06",
            "source_text": "Exact match to Episode 1.",
            "source_text_hash": "ca508bd4009e003eeb0f39e180b9ea3e",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone, distant rain",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static framing, lingering hold, atmospheric stillness",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "window light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static composition, rain falling outside",
                "emotion_line": "anticipation, familiarity, quiet",
                "environment_line": "int_{char_SADIE}_apartment, looking out at city",
                "subject_line": "Window frame, perfectly centered"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 7,
            "shot_id": "EP016_SH07",
            "source_text": "The audience recognizes the frame before a word is spoken.",
            "source_text_hash": "6b0c84ca97947cbf81d69db75716a034",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone, distant rain",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "subtle light shift, color temperature warming, static frame",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "neon street sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "light intensity increasing slightly, warming the room",
                "emotion_line": "comforting, inviting, warm",
                "environment_line": "int_{char_SADIE}_apartment, looking out at city",
                "subject_line": "Window frame, glowing warm light"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 8,
            "shot_id": "EP016_SH08",
            "source_text": "The neon is the same color but warmer.",
            "source_text_hash": "2c92a8d3524ef7a986fce1b34d8cb1da",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone, distant rain",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "50mm",
              "kinetic_action": "slow push in, smooth tracking, light wrapping around the frame edges",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "city glow",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "camera pushing in slowly toward the light",
                "emotion_line": "embracing, peaceful, resolved",
                "environment_line": "int_{char_SADIE}_apartment, looking out at city",
                "subject_line": "Window frame, enveloping warm light"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 9,
            "shot_id": "EP016_SH09",
            "source_text": "The city's glow has shifted from observation to embrace.",
            "source_text_hash": "f86c565c4ca97b7aeacc58ae2e76560e",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "contemplative",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "sadie_phone",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone, distant rain",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "voiceover, reflective",
                  "is_voiceover": true,
                  "text": "I keep the phone on the counter."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "subtle breathing, still posture, static framing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "kitchen overhead",
                    "quality": "soft"
                  },
                  {
                    "color_temp": "warm",
                    "direction": "LEFT",
                    "intensity": "moderate",
                    "motivator": "window light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "standing still, gaze fixed downward",
                "emotion_line": "contemplative, quiet, resolved",
                "environment_line": "int_{char_SADIE}_apartment, kitchen counter, dim lighting",
                "subject_line": "{char_SADIE} looking down at the counter"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 10,
            "shot_id": "EP016_SH10",
            "source_text": "[VO: SADIE] \"I keep the phone on the counter.",
            "source_text_hash": "5b56328fd72e358729e2542d20ae59b2",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "neutral",
                  "screen_position": "right",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "sadie_phone",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "Face down."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "100mm",
              "kinetic_action": "slow push in on object, shallow depth of field, Sadie's hand resting nearby",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "kitchen overhead",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "camera pushing in slowly on the phone",
                "emotion_line": "intentional, final, quiet",
                "environment_line": "int_{char_SADIE}_apartment, kitchen counter surface",
                "subject_line": "Phone resting face down on counter, {char_SADIE}'s hand in edge of frame"
              },
              "shot_type": "INSERT"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 11,
            "shot_id": "EP016_SH11",
            "source_text": "Face down.",
            "source_text_hash": "42c4c6998ffdc1d3bfdb24a7abbe9bcf",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "accepting",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [
                {
                  "prop_id": "sadie_phone",
                  "visibility": "off_screen"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone, distant rain",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "The number hasn't called in a week."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "subtle eye movement, still posture, soft focus background",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "LEFT",
                    "intensity": "moderate",
                    "motivator": "window light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "standing still, eyes tracing the phone",
                "emotion_line": "accepting, calm, reflective",
                "environment_line": "int_{char_SADIE}_apartment, dim kitchen",
                "subject_line": "{char_SADIE} in profile, looking at the counter"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 12,
            "shot_id": "EP016_SH12",
            "source_text": "The number hasn't called in a week.",
            "source_text_hash": "134e8a78342de91e2ea1ad2b04cbf33c",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "resolved",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "room tone",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "I don't need it to."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pan",
              "focal_length": "50mm",
              "kinetic_action": "slow head turn, motion blur on hair, eyes catching window light",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "window light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "turning away from the counter, looking toward the light",
                "emotion_line": "resolved, peaceful, forward-looking",
                "environment_line": "int_{char_SADIE}_apartment, dim kitchen",
                "subject_line": "{char_SADIE} turning her head toward the window"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "pan",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 13,
            "shot_id": "EP016_SH13",
            "source_text": "I don't need it to.",
            "source_text_hash": "b873b7401fae22dd76ac525df2c4f5cb",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "nostalgic",
                  "screen_position": "left",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "distant jazz music, faint glass clinking",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "The bar is open until two."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "static framing, dust motes drifting in light, still posture",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "bar pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "sitting quietly, looking at the empty seat beside her",
                "emotion_line": "nostalgic, patient, calm",
                "environment_line": "int_{char_DUSTY}_bar, empty stools, warm dim lighting",
                "subject_line": "{char_SADIE} sitting alone at the bar counter"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 14,
            "shot_id": "EP016_SH14",
            "source_text": "The bar is open until two.",
            "source_text_hash": "3e16134be0bb16b82e2242a531c8e138",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "neutral",
                  "screen_position": "background",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "static",
              "props": [
                {
                  "prop_id": "seat_seven_glass",
                  "visibility": "in_frame"
                }
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "distant jazz music",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "He leaves a glass out for me \u2014"
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "slow push in on glass, shallow depth of field, Sadie blurred in background",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "moderate",
                    "motivator": "bar pendant light",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "camera pushing in on the glass",
                "emotion_line": "expectant, warm, remembered",
                "environment_line": "int_{char_DUSTY}_bar, polished wood, warm highlights",
                "subject_line": "Empty rocks glass on wooden counter, {char_SADIE} out of focus in background"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 15,
            "shot_id": "EP016_SH15",
            "source_text": "He leaves a glass out for me \u2014",
            "source_text_hash": "0546b827bf2d64064a43f8046a27f0b0",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "connected",
                  "screen_position": "right",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "distant jazz music",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "seat seven."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static framing, subtle breathing, eyes fixed on the empty seat",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE_LEFT",
                    "intensity": "dim",
                    "motivator": "bar pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "sitting still, gazing at the adjacent seat",
                "emotion_line": "reverent, quiet, connected",
                "environment_line": "int_{char_DUSTY}_bar, leather stools, wooden counter",
                "subject_line": "{char_SADIE} looking at the empty leather stool beside her"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 16,
            "shot_id": "EP016_SH16",
            "source_text": "seat seven.",
            "source_text_hash": "122606e520f84871266809a7655dad82",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "right-to-left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "patient",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "distant jazz music",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "Every night, the same time."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "micro-tremor in hand resting on bar, soft focus background",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "ABOVE",
                    "intensity": "dim",
                    "motivator": "bar pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "fingers lightly touching the wood, still posture",
                "emotion_line": "patient, enduring, calm",
                "environment_line": "int_{char_DUSTY}_bar, warm shadows",
                "subject_line": "{char_SADIE} resting her hand on the wooden bar"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 17,
            "shot_id": "EP016_SH17",
            "source_text": "Every night, the same time.",
            "source_text_hash": "9c215b6151195106a3d3824865da50d4",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "left-to-right"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "yearning",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "distant jazz music fading out",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "voiceover",
                  "is_voiceover": true,
                  "text": "I can almost see him now."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "slow push in on face, eyes tracking an invisible presence, catchlight in eyes",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "bar pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "eyes focused on the empty space, slight softening of expression",
                "emotion_line": "yearning, visionary, peaceful",
                "environment_line": "int_{char_DUSTY}_bar, dark background",
                "subject_line": "{char_SADIE}'s face, looking off-screen"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 4
            },
            "scene_index": 18,
            "shot_id": "EP016_SH18",
            "source_text": "I can almost see him now.",
            "source_text_hash": "19333f26882ec082a134c9eea06b5a94",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "SADIE",
                  "emotion_keyword": "acceptance",
                  "screen_position": "center",
                  "visibility": "in_frame",
                  "wardrobe_phase_id": "sadie_investigation_sprint"
                }
              ],
              "location_id": "int_dusty_bar",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "silence",
              "dialogue": [
                {
                  "character": "SADIE",
                  "delivery_note": "voiceover, whisper",
                  "is_voiceover": true,
                  "text": "Almost."
                }
              ],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "slow blink, micro-expressions of acceptance, static frame",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "bar pendant light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "blinking slowly, holding gaze",
                "emotion_line": "acceptance, quiet love, closure",
                "environment_line": "int_{char_DUSTY}_bar, pure shadow background",
                "subject_line": "{char_SADIE}'s eyes, tight framing"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": true,
              "is_env_only": false,
              "narrative_requires_match_cut": false,
              "num_characters": 1,
              "target_editorial_duration_s": 3
            },
            "scene_index": 19,
            "shot_id": "EP016_SH19",
            "source_text": "Almost.\"",
            "source_text_hash": "2527ed2f7198894678278f8ff8926aec",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": "SADIE",
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "steady rain against glass",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "water droplets sliding down glass, shallow depth of field",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "neon street sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "water pooling, streaking down the glass surface",
                "emotion_line": "melancholic, reflective, still",
                "environment_line": "int_{char_SADIE}_apartment, looking out at blurred city lights",
                "subject_line": "Raindrops on window pane, macro focus"
              },
              "shot_type": "ECU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 20,
            "shot_id": "EP016_SH20",
            "source_text": "Rain on glass.",
            "source_text_hash": "ee31df7e83505766b1d3f65b79c3b9c0",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "steady rain against glass",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "static framing, perfect geometric alignment, subtle rain motion",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "window light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static composition, rain falling outside",
                "emotion_line": "deja vu, cyclical, grounded",
                "environment_line": "int_{char_SADIE}_apartment, looking out at city",
                "subject_line": "Window frame, perfectly centered"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": true,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 21,
            "shot_id": "EP016_SH21",
            "source_text": "Same frame as Episode 1.",
            "source_text_hash": "a74d91f1b47ebe469e6e503dbfabcb8e",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "steady rain against glass",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "rack focus to the glass surface, revealing faint reflection",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "neon street sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "focus shifting to the surface of the glass",
                "emotion_line": "mysterious, revealing, quiet",
                "environment_line": "int_{char_SADIE}_apartment, window pane",
                "subject_line": "Faint reflection on wet window glass"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 22,
            "shot_id": "EP016_SH22",
            "source_text": "But in the reflection \u2014",
            "source_text_hash": "45cb54e01b26b5d30db57f0fb9ec7f8f",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "steady rain against glass",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static framing, reflection becoming slightly clearer, rain distorting the image",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "neon street sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "silhouettes standing near each other in the reflection",
                "emotion_line": "intimate, ghostly, warm",
                "environment_line": "int_{char_SADIE}_apartment, window pane",
                "subject_line": "Two blurred silhouette shapes reflected in the wet window glass"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 23,
            "shot_id": "EP016_SH23",
            "source_text": "two shapes.",
            "source_text_hash": "5d668d1bba8a38ab38c1e94d63dbe21d",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "steady rain against glass",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "85mm",
              "kinetic_action": "slow push in on the reflection, shapes appearing closer together",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "neon street sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "camera pushing in, shapes almost merging in the distortion",
                "emotion_line": "intimate, close, tender",
                "environment_line": "int_{char_SADIE}_apartment, window pane",
                "subject_line": "Two blurred silhouette shapes reflected in the wet window glass, close proximity"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 24,
            "shot_id": "EP016_SH24",
            "source_text": "Closer than Episode 15.",
            "source_text_hash": "a8dbaaac2759bcb8266b1676c751a18b",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "steady rain against glass",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "static framing, maintaining a sliver of space between the reflected shapes",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "neon street sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "shapes standing still, separated by a thin line of light",
                "emotion_line": "respectful, restrained, close",
                "environment_line": "int_{char_SADIE}_apartment, window pane",
                "subject_line": "Two blurred silhouette shapes reflected in the wet window glass, a tiny gap between them"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 25,
            "shot_id": "EP016_SH25",
            "source_text": "Not touching.",
            "source_text_hash": "cd24bb9f4e143260cd5fef1d8415534c",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "steady rain against glass",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "100mm",
              "kinetic_action": "micro push in, the gap between shapes narrowing visually due to lens compression",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "neon street sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "camera pushing in, shapes appearing to lean toward each other",
                "emotion_line": "magnetic, warm, inevitable",
                "environment_line": "int_{char_SADIE}_apartment, window pane",
                "subject_line": "Two blurred silhouette shapes reflected in the wet window glass, almost touching"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "push_in",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 26,
            "shot_id": "EP016_SH26",
            "source_text": "But closer.",
            "source_text_hash": "87cc7042c1c4f2962bae086d2a6fbd43",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "steady rain against glass",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "100mm",
              "kinetic_action": "light blooming around the edges of the silhouettes, static frame",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "bright",
                    "motivator": "neon street sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "warm light wrapping around the dark shapes",
                "emotion_line": "radiant, peaceful, warm",
                "environment_line": "int_{char_SADIE}_apartment, window pane",
                "subject_line": "Two blurred silhouette shapes reflected in the wet window glass, glowing edges"
              },
              "shot_type": "MCU"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 27,
            "shot_id": "EP016_SH27",
            "source_text": "The neon makes them glow.",
            "source_text_hash": "8bd12ef23d9f89422d55c64c6f3b9a39",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "steady rain against glass",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "steady downward motion of rain, natural speed, static framing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "neon street sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "water cascading down the glass in steady streams",
                "emotion_line": "natural, rhythmic, calm",
                "environment_line": "int_{char_SADIE}_apartment, looking out at city",
                "subject_line": "Rain falling outside the window"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 28,
            "shot_id": "EP016_SH28",
            "source_text": "The rain falls normally.",
            "source_text_hash": "d31247e48974d03feccf7436c4ec3cdb",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "steady rain against glass",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "50mm",
              "kinetic_action": "gentle rain motion, soft focus, static framing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "moderate",
                    "motivator": "neon street sign",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "water cascading down the glass",
                "emotion_line": "peaceful, serene, resolved",
                "environment_line": "int_{char_SADIE}_apartment, looking out at city",
                "subject_line": "Rain falling outside the window"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 29,
            "shot_id": "EP016_SH29",
            "source_text": "Peacefully.",
            "source_text_hash": "a8a6069024b107d66c216192e2505839",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "steady rain against glass",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "pull_back",
              "focal_length": "35mm",
              "kinetic_action": "slow pull back from the window, revealing more of the dark room",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "window light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "camera pulling back into the room",
                "emotion_line": "expansive, quiet, final",
                "environment_line": "int_{char_SADIE}_apartment, looking out at city",
                "subject_line": "Window frame, dark interior walls"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "pull_back",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 30,
            "shot_id": "EP016_SH30",
            "source_text": "The system has either repaired itself",
            "source_text_hash": "c06205afa7842088431a4c29a95e4e0d",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "steady rain against glass",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "static framing, lingering hold on the wide composition",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "window light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static composition, rain falling outside",
                "emotion_line": "surrendered, peaceful, still",
                "environment_line": "int_{char_SADIE}_apartment, looking out at city",
                "subject_line": "Window frame, dark interior walls"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 31,
            "shot_id": "EP016_SH31",
            "source_text": "or stopped trying.",
            "source_text_hash": "f87538be369df6d73891091cb79095f0",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "steady rain against glass, fading out",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "long static hold, atmospheric stillness",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "window light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static composition, rain falling outside",
                "emotion_line": "finality, peace, quiet",
                "environment_line": "int_{char_SADIE}_apartment, looking out at city",
                "subject_line": "Window frame, dark interior walls"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 5
            },
            "scene_index": 32,
            "shot_id": "EP016_SH32",
            "source_text": "Hold.",
            "source_text_hash": "bcf4f99d900646d6d43c7ccdcf60baf4",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "silence",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "static framing, text overlay appearing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "window light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static composition, text prompt visible",
                "emotion_line": "interactive, questioning, final",
                "environment_line": "int_{char_SADIE}_apartment, looking out at city",
                "subject_line": "Text overlay on the window glass: 'What remains?'"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 4
            },
            "scene_index": 33,
            "shot_id": "EP016_SH33",
            "source_text": "**[DM_PROMPT]** What remains?",
            "source_text_hash": "dd03622e3a5bd162d7dc9b1c27efff40",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "silence",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "static framing, text overlay appearing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "window light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static composition, text prompt visible",
                "emotion_line": "interactive, questioning, final",
                "environment_line": "int_{char_SADIE}_apartment, looking out at city",
                "subject_line": "Text overlay on the window glass: '[A] The rain'"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 34,
            "shot_id": "EP016_SH34",
            "source_text": "* [A] The rain",
            "source_text_hash": "96fb678c347143ee50874d231c4a2a39",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [],
              "location_id": "int_sadie_apartment",
              "prop_interaction": "none",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "silence",
              "dialogue": [],
              "foley_action": ""
            },
            "blocking_metadata": null,
            "model": "gemini-3-pro-image-preview",
            "origin": "script_derived",
            "pipeline": "still",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "35mm",
              "kinetic_action": "static framing, text overlay appearing",
              "lighting": {
                "dominant_source_index": 0,
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "FRONT",
                    "intensity": "dim",
                    "motivator": "window light",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "static composition, text prompt visible",
                "emotion_line": "interactive, questioning, final",
                "environment_line": "int_{char_SADIE}_apartment, looking out at city",
                "subject_line": "Text overlay on the window glass: '[B] The warmth'"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "camera_complexity": "static",
              "has_dialogue": false,
              "is_env_only": true,
              "narrative_requires_match_cut": false,
              "num_characters": 0,
              "target_editorial_duration_s": 3
            },
            "scene_index": 35,
            "shot_id": "EP016_SH35",
            "source_text": "* [B] The warmth",
            "source_text_hash": "79d6c8ab2f7aa4f82c50b93e2a68b5f4",
            "spatial_data": {
              "camera_side": "A",
              "character_relationships": {
                "dominant_character": null,
                "interaction_type": "solo",
                "relative_scale": "standard",
                "shared_lighting": false
              },
              "screen_direction": "center"
            }
          }
        ],
        "source_hash": "e721c205a92970cb72e0420c49f91946",
        "total_shots": 35
      },
      "path": "afterimage/state/visual/plans/ep_016_plan.json"
    },
    {
      "data": {
        "_doc": "Minimal test plan for Wan 2.7 pipeline testing. Sadie scenes from Afterimage EP001.",
        "episode": 1,
        "project": "afterimage",
        "shots": [
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "sadie",
                  "emotion_keyword": "unease",
                  "wardrobe_phase_id": "phase_1"
                }
              ],
              "location_id": "int_sadie_apartment",
              "props": [
                "matchbook"
              ],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "muffled bar music below, distant neon hum",
              "dialogue": [],
              "foley_action": "matchbook cardboard turning in fingers"
            },
            "director_notes": "Slow, contemplative. Let the silence breathe.",
            "pipeline": "i2v",
            "prompt_data": {
              "camera_movement": "push_in",
              "focal_length": "50mm",
              "kinetic_action": "subtle breath, shoulders shifting",
              "lighting": {
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "SIDE",
                    "intensity": "dim",
                    "motivator": "neon sign through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Sadie sits at the edge of the bed, staring at a matchbook in her hands. She turns it over slowly.",
                "emotion_line": "Quiet unease. Something familiar she can't place.",
                "environment_line": "Small apartment above a bar. Bare walls, venetian blinds casting striped shadows. Warm neon glow from the bar sign outside bleeds through the window.",
                "subject_line": "Sadie, mid-20s, sun-bleached dirty blonde hair, angular features, freckled shoulders"
              },
              "shot_type": "MS"
            },
            "routing_data": {
              "has_dialogue": false,
              "is_env_only": false,
              "num_characters": 1,
              "target_editorial_duration_s": 5
            },
            "scene_index": 1,
            "shot_id": "AFTERIMAGE_TEST_001",
            "spatial_data": {
              "camera_side": "A",
              "screen_direction": "center"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "sadie",
                  "emotion_keyword": "longing",
                  "wardrobe_phase_id": "phase_1"
                }
              ],
              "location_id": "int_sadie_apartment",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "muffled bar music, neon hum intensifies",
              "dialogue": [],
              "foley_action": "bare feet on wood floor, palm on cold glass"
            },
            "director_notes": "Wider framing. She exists in the space \u2014 the space defines her isolation.",
            "pipeline": "i2v",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "24mm",
              "kinetic_action": "slow rise from bed, weight shifting",
              "lighting": {
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "SIDE",
                    "intensity": "dim",
                    "motivator": "neon sign through window",
                    "quality": "soft"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Sadie stands slowly from the bed and walks toward the window. She presses her palm against the glass.",
                "emotion_line": "Drawn toward something below. The bar. A feeling.",
                "environment_line": "Small apartment above a bar. Bare walls, venetian blinds casting striped shadows. The neon bar sign outside pulses.",
                "subject_line": "Sadie, silhouette against window light"
              },
              "shot_type": "WS"
            },
            "routing_data": {
              "has_dialogue": false,
              "is_env_only": false,
              "num_characters": 1,
              "target_editorial_duration_s": 5
            },
            "scene_index": 1,
            "shot_id": "AFTERIMAGE_TEST_002",
            "spatial_data": {
              "camera_side": "A",
              "screen_direction": "left"
            }
          },
          {
            "asset_data": {
              "characters": [
                {
                  "char_id": "sadie",
                  "emotion_keyword": "resolve",
                  "wardrobe_phase_id": "phase_1"
                }
              ],
              "location_id": "int_sadie_apartment",
              "props": [],
              "time_of_day": "night",
              "visual_mode": "reality"
            },
            "audio_data": {
              "ambient_sfx": "bar music clearer now, glass clinking",
              "dialogue": [],
              "foley_action": "slight intake of breath"
            },
            "director_notes": "The neon light catches her face. This is the moment she decides to go downstairs.",
            "pipeline": "i2v",
            "prompt_data": {
              "camera_movement": "static",
              "focal_length": "85mm",
              "kinetic_action": "eyes refocus, jaw sets slightly",
              "lighting": {
                "sources": [
                  {
                    "color_temp": "warm",
                    "direction": "SIDE",
                    "intensity": "medium",
                    "motivator": "neon bar sign",
                    "quality": "hard"
                  }
                ]
              },
              "prompt_skeleton": {
                "action_line": "Sadie's expression shifts from uncertainty to quiet resolve. Her eyes track something below the window.",
                "emotion_line": "Recognition. Not of a memory \u2014 of a pull.",
                "environment_line": "Apartment window. Neon light from below paints half her face warm, the other half in shadow.",
                "subject_line": "Sadie, close-up, neon light on one side of her face"
              },
              "shot_type": "CU"
            },
            "routing_data": {
              "has_dialogue": false,
              "is_env_only": false,
              "num_characters": 1,
              "target_editorial_duration_s": 5
            },
            "scene_index": 1,
            "shot_id": "AFTERIMAGE_TEST_003",
            "spatial_data": {
              "camera_side": "A",
              "screen_direction": "center"
            }
          }
        ]
      },
      "path": "afterimage/state/visual/plans/test_plan.json"
    },
    {
      "data": {
        "1_1": {
          "atmosphere": "Gritty peeling paint on walls, worn floor tiles, industrial radiator, sharp depth of field from foreground to background, heavy rain streaking window, wet reflective window surface, melancholic urban cyberpunk mood",
          "lighting": "Primary light from large window, diffuse quality, cool blue ambient light, strong magenta and cyan neon color casts reflecting on walls, soft diffused shadows, ceiling practical light fixture present but off",
          "palette": "deep night blue, gritty concrete gray, neon cyan, electric magenta, muted wood brown"
        }
      },
      "path": "afterimage/state/visual/scene_locks.json"
    },
    {
      "data": {
        "attempts": 0,
        "cost_incurred": 0.0,
        "coverage_of": null,
        "deferred": false,
        "deferred_reason": null,
        "episode_id": "AFTERIMAGE",
        "error_message": "Wan job 019d6104-63c4-7fb0-b7a9-c071048970c5 timed out after 300s",
        "gate_results": {},
        "is_coverage": false,
        "job_id": null,
        "max_attempts": 3,
        "model": null,
        "output_path": null,
        "pipeline": null,
        "retry_waste_cost": 0.0,
        "session_id": null,
        "shot_id": "AFTERIMAGE_TEST_001",
        "status": "video_failed",
        "takes": [],
        "updated_at": 1775449485.3264918
      },
      "path": "afterimage/state/visual/shots/AFTERIMAGE_TEST_001.json"
    },
    {
      "data": {
        "attempts": 0,
        "cost_incurred": 0.07805000000000001,
        "coverage_of": null,
        "deferred": false,
        "deferred_reason": null,
        "episode_id": "EP001",
        "error_message": null,
        "gate_results": {
          "hero_frame": "sequences/ep_001/shot_001_take2_45452.png"
        },
        "is_coverage": false,
        "job_id": null,
        "max_attempts": 3,
        "model": "gemini-3.1-flash-image-preview",
        "output_path": "sequences/ep_001/shot_001_take2_45452.png",
        "pipeline": "still",
        "retry_waste_cost": 0.0,
        "session_id": null,
        "shot_id": "EP001_SH01",
        "status": "previs_generated",
        "takes": [
          {
            "cost": 0.03905,
            "file_path": "sequences/ep_001/shot_001.png",
            "take_id": "EP001_SH01_T51631",
            "timestamp": 1775451631.525919
          },
          {
            "approved": true,
            "authored_prompt": "",
            "cost": 0.039,
            "file_path": "sequences/ep_001/shot_001_take2_45452.png",
            "gate_1": {
              "cost": 0.039,
              "details": {
                "anatomy": {
                  "pass": true,
                  "reason": "There are no people or animals in the image, so anatomical errors are not applicable."
                },
                "black_frame": {
                  "pass": true,
                  "reason": "The image is a detailed scene and not black or empty."
                },
                "color": {
                  "pass": true,
                  "reason": "The color palette is moody but consistent, with no extreme banding or corruption."
                },
                "resolution": {
                  "pass": true,
                  "reason": "The image is sharp and detailed, not blurry or low resolution."
                },
                "watermark": {
                  "pass": true,
                  "reason": "No watermarks or text overlays are present. The text visible is part of the scene (signs outside the window)."
                }
              },
              "passed": true
            },
            "generated_at": 1775498751.573458,
            "inputs_snapshot": {
              "bible_version": "5a378dfb0f6f",
              "bypassed_layers": [],
              "captured_at": "2026-04-06T18:05:19.021103Z",
              "config_hash": "",
              "continuity_shots": [],
              "generation_params": {
                "aspect_ratio": "9:16",
                "model": "gemini-3.1-flash-image-preview",
                "temperature": 0.4
              },
              "overrides": [],
              "prompt_flat": "<truncated:blob>",
              "prompt_layers": [
                {
                  "active": true,
                  "color": "#9CA3AF",
                  "id": "behavioral_preamble",
                  "label": "Behavioral Preamble",
                  "text": "<truncated:blob>"
                },
                {
                  "active": true,
                  "color": "#4A9E8E",
                  "id": "bible_excerpt",
                  "label": "Scoped Bible",
                  "text": "# VISUAL BIBLE\n\n\n## LOCATIONS\n\n\n### int_sadie_apartment\nkitchen counter, glass window, rain droplets, radiator, coffee maker, linoleum floor\n\n\n## KEY PROPS\n\n\n- **sadie_phone**: rectangular smartphone, glass screen, glowing notification LED\n\n- **seat_seven_glass**: heavy-bottomed rocks glass, clear glass, condensation rings\n\n- **silver_earring**: silver metal earring, highly reflective surface\n\n- **bar_matchbook**: cardboard matchbook, neon bar logo on cover, handwritten ink phone number inside\n\n- **photograph**: printed photograph, curled edges, visible film grain"
                },
                {
                  "active": true,
                  "color": "#4A7EC8",
                  "id": "continuity_window",
                  "label": "3-Shot Window",
                  "text": "## EPISODE SHOT SEQUENCE\n\n| # | Shot ID | Type | Characters | Location | Action |\n|---|---------|------|------------|----------|--------|\n| 01 | EP001_SH01 **>>> CURRENT <<<** | WS |  | int_sadie_apartment | empty kitchen counter, dark room, rain-streaked window in ba |\n| 02 | EP001_SH02 | INSERT |  | int_sadie_apartment | smartphone face-down on counter, glowing notification light  |"
                },
                {
                  "active": true,
                  "color": "#4A7EC8",
                  "id": "continuity_window",
                  "label": "3-Shot Window",
                  "text": "<truncated:blob>"
                }
              ],
              "refs_used": [
                {
                  "id": "",
                  "label": "[ENVIRONMENT MOOD REFERENCE \u2014 Use the lighting, color palette, and atmosphere as creative inspiration for a fresh, original environment that matches the scene description below.] int_sadie_apartment (1/1)",
                  "sent_to_model": true,
                  "type": "other",
                  "url": ""
                }
              ],
              "routing": {
                "model": "gemini-3.1-flash-image-preview",
                "pipeline": "previz",
                "reason": "Flash full-context",
                "tier": "previz"
              },
              "source": "snapshot"
            },
            "prompt": "(flash-authored)",
            "spatial_compliance": {
              "checked_at": 1775498751.573452,
              "cost": 0.0,
              "extracted": [],
              "failure_attribution": "NONE",
              "flags": [],
              "human_override": false,
              "severity": "PASS",
              "skip_reason": "env_or_no_chars",
              "skipped": true
            },
            "take_id": "take_2_45452",
            "take_num": 2
          }
        ],
        "updated_at": 1775498751.574292
      },
      "path": "afterimage/state/visual/shots/EP001_SH01.json"
    },
    {
      "data": {
        "attempts": 0,
        "cost_incurred": 0.039,
        "coverage_of": null,
        "deferred": false,
        "deferred_reason": null,
        "episode_id": "EP001",
        "error_message": null,
        "gate_results": {},
        "is_coverage": false,
        "job_id": null,
        "max_attempts": 3,
        "model": "gemini-3.1-flash-image-preview",
        "output_path": null,
        "pipeline": "still",
        "retry_waste_cost": 0.0,
        "session_id": null,
        "shot_id": "EP001_SH02",
        "status": "previs_generated",
        "takes": [
          {
            "cost": 0.039,
            "file_path": "sequences/ep_001/shot_002.png",
            "take_id": "EP001_SH02_T51649",
            "timestamp": 1775451649.346914
          }
        ],
        "updated_at": 1775451649.347716
      },
      "path": "afterimage/state/visual/shots/EP001_SH02.json"
    },
    {
      "data": {
        "attempts": 0,
        "cost_incurred": 0.039,
        "coverage_of": null,
        "deferred": false,
        "deferred_reason": null,
        "episode_id": "EP001",
        "error_message": null,
        "gate_results": {},
        "is_coverage": false,
        "job_id": null,
        "max_attempts": 3,
        "model": "gemini-3.1-flash-image-preview",
        "output_path": null,
        "pipeline": "still",
        "retry_waste_cost": 0.0,
        "session_id": null,
        "shot_id": "EP001_SH03",
        "status": "previs_generated",
        "takes": [
          {
            "cost": 0.039,
            "file_path": "sequences/ep_001/shot_003.png",
            "take_id": "EP001_SH03_T51671",
            "timestamp": 1775451671.393575
          }
        ],
        "updated_at": 1775451671.394551
      },
      "path": "afterimage/state/visual/shots/EP001_SH03.json"
    },
    {
      "data": {
        "attempts": 0,
        "cost_incurred": 0.039,
        "coverage_of": null,
        "deferred": false,
        "deferred_reason": null,
        "episode_id": "EP001",
        "error_message": null,
        "gate_results": {},
        "is_coverage": false,
        "job_id": null,
        "max_attempts": 3,
        "model": "gemini-3.1-flash-image-preview",
        "output_path": null,
        "pipeline": "still",
        "retry_waste_cost": 0.0,
        "session_id": null,
        "shot_id": "EP001_SH04",
        "status": "previs_generated",
        "takes": [
          {
            "cost": 0.039,
            "file_path": "sequences/ep_001/shot_004.png",
            "take_id": "EP001_SH04_T51701",
            "timestamp": 1775451701.2444632
          }
        ],
        "updated_at": 1775451701.2452679
      },
      "path": "afterimage/state/visual/shots/EP001_SH04.json"
    },
    {
      "data": {
        "attempts": 0,
        "cost_incurred": 0.039,
        "coverage_of": null,
        "deferred": false,
        "deferred_reason": null,
        "episode_id": "EP001",
        "error_message": null,
        "gate_results": {},
        "is_coverage": false,
        "job_id": null,
        "max_attempts": 3,
        "model": "gemini-3.1-flash-image-preview",
        "output_path": null,
        "pipeline": "still",
        "retry_waste_cost": 0.0,
        "session_id": null,
        "shot_id": "EP001_SH05",
        "status": "previs_generated",
        "takes": [
          {
            "cost": 0.039,
            "file_path": "sequences/ep_001/shot_005.png",
            "take_id": "EP001_SH05_T51724",
            "timestamp": 1775451724.868993
          }
        ],
        "updated_at": 1775451724.869785
      },
      "path": "afterimage/state/visual/shots/EP001_SH05.json"
    },
    {
      "data": {
        "attempts": 0,
        "cost_incurred": 0.039,
        "coverage_of": null,
        "deferred": false,
        "deferred_reason": null,
        "episode_id": "EP001",
        "error_message": null,
        "gate_results": {},
        "is_coverage": false,
        "job_id": null,
        "max_attempts": 3,
        "model": "gemini-3.1-flash-image-preview",
        "output_path": null,
        "pipeline": "still",
        "retry_waste_cost": 0.0,
        "session_id": null,
        "shot_id": "EP001_SH06",
        "status": "previs_generated",
        "takes": [
          {
            "cost": 0.039,
            "file_path": "sequences/ep_001/shot_006.png",
            "take_id": "EP001_SH06_T51744",
            "timestamp": 1775451744.239978
          }
        ],
        "updated_at": 1775451744.240841
      },
      "path": "afterimage/state/visual/shots/EP001_SH06.json"
    },
    {
      "data": {
        "attempts": 0,
        "cost_incurred": 0.03905,
        "coverage_of": null,
        "deferred": false,
        "deferred_reason": null,
        "episode_id": "EP001",
        "error_message": null,
        "gate_results": {},
        "is_coverage": false,
        "job_id": null,
        "max_attempts": 3,
        "model": "gemini-3.1-flash-image-preview",
        "output_path": null,
        "pipeline": "still",
        "retry_waste_cost": 0.0,
        "session_id": null,
        "shot_id": "EP001_SH07",
        "status": "previs_generated",
        "takes": [
          {
            "cost": 0.03905,
            "file_path": "sequences/ep_001/shot_007.png",
            "take_id": "EP001_SH07_T51764",
            "timestamp": 1775451764.798707
          }
        ],
        "updated_at": 1775451764.7994502
      },
      "path": "afterimage/state/visual/shots/EP001_SH07.json"
    },
    {
      "data": {
        "attempts": 0,
        "cost_incurred": 0.039,
        "coverage_of": null,
        "deferred": false,
        "deferred_reason": null,
        "episode_id": "EP001",
        "error_message": null,
        "gate_results": {},
        "is_coverage": false,
        "job_id": null,
        "max_attempts": 3,
        "model": "gemini-3.1-flash-image-preview",
        "output_path": null,
        "pipeline": "still",
        "retry_waste_cost": 0.0,
        "session_id": null,
        "shot_id": "EP001_SH08",
        "status": "previs_generated",
        "takes": [
          {
            "cost": 0.039,
            "file_path": "sequences/ep_001/shot_008.png",
            "take_id": "EP001_SH08_T51782",
            "timestamp": 1775451782.824686
          }
        ],
        "updated_at": 1775451782.825839
      },
      "path": "afterimage/state/visual/shots/EP001_SH08.json"
    },
    {
      "data": {
        "attempts": 2,
        "cost_incurred": 0.351,
        "episode_id": "EP999",
        "error_message": "Gate 2 semantic check: subject mismatch \u2014 expected 'space station' got 'ocean platform'",
        "gate_results": {
          "gate_1": {
            "passed": true,
            "score": 0.92
          },
          "gate_2": {
            "passed": false,
            "reason": "subject mismatch",
            "score": 0.31
          }
        },
        "job_id": null,
        "max_attempts": 3,
        "model": "gemini-3-pro-image-preview",
        "output_path": "sequences/ep_999/shot_001.png",
        "pipeline": "still",
        "session_id": "test-session-001",
        "shot_id": "EP999_SH01",
        "status": "previs_generated",
        "takes": [],
        "updated_at": 1772263489.831521
      },
      "path": "afterimage/state/visual/shots/EP999_SH01.json"
    },
    {
      "data": {
        "attempts": 1,
        "cost_incurred": 0.7900000000000001,
        "episode_id": "EP999",
        "error_message": null,
        "gate_results": {
          "gate_1": {
            "passed": true,
            "score": 0.95
          },
          "gate_2": {
            "passed": true,
            "score": 0.88
          },
          "gate_3": {
            "drift_frames": [
              12,
              47
            ],
            "passed": true,
            "score": 0.76
          }
        },
        "job_id": null,
        "max_attempts": 3,
        "model": "kling-3.0",
        "output_path": "sequences/ep_999/shot_002_take3.png",
        "pipeline": "t2v",
        "session_id": "test-session-001",
        "shot_id": "EP999_SH02",
        "status": "previs_generated",
        "takes": [
          {
            "path": "sequences/ep_999/EP999_SH02_take1.mp4",
            "rejected": true,
            "score": 0.76,
            "take_id": "take_1"
          },
          {
            "cost": 0.039,
            "file_path": "sequences/ep_999/shot_002_take2.png",
            "gate_1": {
              "cost": 0.039,
              "details": {
                "anatomy": {
                  "pass": true,
                  "reason": "The character's anatomy is correct and natural."
                },
                "black_frame": {
                  "pass": true,
                  "reason": "The image is not black or empty."
                },
                "color": {
                  "pass": true,
                  "reason": "Colors are rendered correctly without banding or corruption."
                },
                "resolution": {
                  "pass": true,
                  "reason": "The image is sharp and high-resolution."
                },
                "watermark": {
                  "pass": true,
                  "reason": "No external watermarks or logos are visible. Text on the uniform patch is part of the scene."
                }
              },
              "passed": true
            },
            "generated_at": 1772263515.5405471,
            "prompt": "young woman close-up, concerned expression, breath fogging cracked glass, damaged space station interior, viewport showing amber starfield, slight head turn toward camera, eyes searching, anxious, haunted, determined",
            "take_id": "take_2",
            "take_num": 2
          },
          {
            "cost": 0.039,
            "file_path": "sequences/ep_999/shot_002_take3.png",
            "gate_1": {
              "cost": 0.039,
              "details": {
                "anatomy": {
                  "pass": true,
                  "reason": "The anatomy of the subject is correct with no visible defects."
                },
                "black_frame": {
                  "pass": true,
                  "reason": "The image is not black or empty."
                },
                "color": {
                  "pass": true,
                  "reason": "The colors are rendered correctly without corruption or banding."
                },
                "resolution": {
                  "pass": true,
                  "reason": "The image is sharp and has good resolution."
                },
                "watermark": {
                  "pass": true,
                  "reason": "No watermarks or external logos are detected. The text on the uniform is part of the scene."
                }
              },
              "passed": true
            },
            "generated_at": 1772265761.194583,
            "prompt": "young woman close-up, concerned expression, breath fogging cracked glass, damaged space station interior, viewport showing amber starfield, slight head turn toward camera, eyes searching, anxious, haunted, determined",
            "take_id": "take_3",
            "take_num": 3
          }
        ],
        "updated_at": 1772300852.4551811
      },
      "path": "afterimage/state/visual/shots/EP999_SH02.json"
    },
    {
      "data": {
        "attempts": 1,
        "cost_incurred": 0.078,
        "episode_id": "EP999",
        "error_message": null,
        "gate_results": {},
        "job_id": null,
        "max_attempts": 3,
        "model": "kling-3.0",
        "output_path": "sequences/ep_999/shot_003.png",
        "pipeline": "i2v",
        "session_id": "test-session-001",
        "shot_id": "EP999_SH03",
        "status": "previs_generated",
        "takes": [],
        "updated_at": 1772263492.871847
      },
      "path": "afterimage/state/visual/shots/EP999_SH03.json"
    },
    {
      "data": {
        "attempts": 2,
        "cost_incurred": 0.495,
        "episode_id": "EP999",
        "error_message": null,
        "gate_results": {
          "gate_1": {
            "passed": true,
            "score": 0.94
          },
          "gate_2": {
            "passed": true,
            "score": 0.91
          },
          "gate_3": {
            "passed": true,
            "score": 0.85
          }
        },
        "job_id": null,
        "max_attempts": 3,
        "model": "seeddance-2.0",
        "output_path": "sequences/ep_999/shot_004.png",
        "pipeline": "multi_shot",
        "session_id": "test-session-001",
        "shot_id": "EP999_SH04",
        "status": "previs_approved",
        "takes": [
          {
            "path": "sequences/ep_999/EP999_SH04_take1.mp4",
            "score": 0.72,
            "take_id": "take_1"
          },
          {
            "path": "sequences/ep_999/EP999_SH04_take2.mp4",
            "score": 0.85,
            "take_id": "take_2"
          }
        ],
        "updated_at": 1772260338.873423
      },
      "path": "afterimage/state/visual/shots/EP999_SH04.json"
    },
    {
      "data": {
        "attempts": 0,
        "cost_incurred": 0.273,
        "episode_id": "EP999",
        "error_message": null,
        "gate_results": {},
        "job_id": null,
        "max_attempts": 3,
        "model": "seeddance-2.0",
        "output_path": "sequences/ep_999/shot_005_take6.png",
        "pipeline": "multi_shot",
        "session_id": "test-session-001",
        "shot_id": "EP999_SH05",
        "status": "previs_generated",
        "takes": [
          {
            "cost": 0.039,
            "file_path": "sequences/ep_999/shot_005_take1.png",
            "gate_1": {
              "cost": 0.039,
              "details": {
                "anatomy": {
                  "pass": true,
                  "reason": "The anatomy of the person is correct."
                },
                "black_frame": {
                  "pass": true,
                  "reason": "The image is not a black frame."
                },
                "color": {
                  "pass": true,
                  "reason": "The colors are natural and without corruption."
                },
                "resolution": {
                  "pass": true,
                  "reason": "The image is sharp and has good resolution."
                },
                "watermark": {
                  "pass": true,
                  "reason": "No watermarks or logos are visible."
                }
              },
              "passed": true
            },
            "generated_at": 1772263539.278364,
            "prompt": "man's hand on palm scanner, red glow illuminating face, sealed bulkhead door, space station corridor, palm pressing against scanner surface, red light activating, tense, anticipatory",
            "rejected": true,
            "take_id": "take_1",
            "take_num": 1
          },
          {
            "cost": 0.039,
            "file_path": "sequences/ep_999/shot_005_take2.png",
            "gate_1": {
              "cost": 0.039,
              "details": {
                "anatomy": {
                  "pass": true,
                  "reason": "The hand and arm anatomy is correct and natural."
                },
                "black_frame": {
                  "pass": true,
                  "reason": "The image is not a black frame."
                },
                "color": {
                  "pass": true,
                  "reason": "The colors are rendered correctly without corruption."
                },
                "resolution": {
                  "pass": true,
                  "reason": "The image is sharp and has good resolution."
                },
                "watermark": {
                  "pass": true,
                  "reason": "No watermarks or logos are present."
                }
              },
              "passed": true
            },
            "generated_at": 1772263647.4452841,
            "prompt": "ECU man's hand on palm scanner, red glow illuminating, palm pressing against scanner surface, red light activating, tense, anticipatory",
            "take_id": "take_2",
            "take_num": 2
          },
          {
            "cost": 0.039,
            "file_path": "sequences/ep_999/shot_005_take3.png",
            "gate_1": {
              "cost": 0.039,
              "details": {
                "anatomy": {
                  "pass": true,
                  "reason": "The character's anatomy is correct with no severe errors."
                },
                "black_frame": {
                  "pass": true,
                  "reason": "The image is a full scene and not black or empty."
                },
                "color": {
                  "pass": true,
                  "reason": "The colors are consistent and there is no extreme banding or corruption."
                },
                "resolution": {
                  "pass": true,
                  "reason": "The image is sharp and has good resolution."
                },
                "watermark": {
                  "pass": true,
                  "reason": "There are no visible watermarks, logos, or text overlays."
                }
              },
              "passed": true
            },
            "generated_at": 1772263696.588968,
            "prompt": "man's hand on palm scanner, red glow illuminating face, sealed bulkhead door, space station corridor, palm pressing against scanner surface, red light activating, tense, anticipatory",
            "take_id": "take_3",
            "take_num": 3
          },
          {
            "cost": 0.039,
            "file_path": "sequences/ep_999/shot_005_take3.png",
            "gate_1": {
              "cost": 0.039,
              "details": {
                "anatomy": {
                  "pass": true,
                  "reason": "n/a"
                },
                "black_frame": {
                  "pass": true,
                  "reason": "n/a"
                },
                "color": {
                  "pass": true,
                  "reason": "n/a"
                },
                "resolution": {
                  "pass": true,
                  "reason": "n/a"
                },
                "watermark": {
                  "pass": true,
                  "reason": "n/a"
                }
              },
              "passed": true
            },
            "generated_at": 1772263710.231636,
            "prompt": "man's hand on palm scanner, red glow illuminating face, sealed bulkhead door, space station corridor, palm pressing against scanner surface, red light activating, tense, anticipatory",
            "take_id": "take_3",
            "take_num": 3
          },
          {
            "cost": 0.039,
            "file_path": "sequences/ep_999/shot_005_take3.png",
            "gate_1": {
              "cost": 0.039,
              "details": {
                "anatomy": {
                  "pass": true,
                  "reason": "The anatomy of the man and the person in the background is correct, with no severe errors like extra limbs or merged parts."
                },
                "black_frame": {
                  "pass": true,
                  "reason": "The image is a detailed scene and not black or empty."
                },
                "color": {
                  "pass": true,
                  "reason": "The colors are rendered correctly without extreme banding, posterization, or corruption."
                },
                "resolution": {
                  "pass": true,
                  "reason": "The image is sharp and detailed, not blurry or low resolution."
                },
                "watermark": {
                  "pass": true,
                  "reason": "There are no visible watermarks, logos, or text overlays. The text present is part of the scene's narrative."
                }
              },
              "passed": true
            },
            "generated_at": 1772263710.5975769,
            "prompt": "man's hand on palm scanner, red glow illuminating face, sealed bulkhead door, space station corridor, palm pressing against scanner surface, red light activating, tense, anticipatory",
            "take_id": "take_3",
            "take_num": 3
          }
        ],
        "updated_at": 1772300857.787782
      },
      "path": "afterimage/state/visual/shots/EP999_SH05.json"
    },
    {
      "data": {
        "attempts": 0,
        "cost_incurred": 0.039,
        "episode_id": "EP999",
        "error_message": null,
        "gate_results": {},
        "job_id": null,
        "max_attempts": 3,
        "model": "seeddance-2.0",
        "output_path": "sequences/ep_999/shot_006.png",
        "pipeline": "multi_shot",
        "session_id": "test-session-001",
        "shot_id": "EP999_SH06",
        "status": "previs_generated",
        "takes": [],
        "updated_at": 1772263602.52703
      },
      "path": "afterimage/state/visual/shots/EP999_SH06.json"
    }
  ]
}
