{
  "status": "completed",
  "completed_count": 30,
  "applicable_count": 30,
  "failed_count": 0,
  "data": {
    "scenes": [
      {
        "flow_stages": [
          {
            "camera_motion": "track",
            "camera_position": "Low to the ground, close behind and slightly beside the fleeing man's feet",
            "stage_index": 1,
            "stage_label": "pursuit",
            "transition_to_next": "The camera continues forward, then rises along the fleeing man's body to reach face height.",
            "visual_focus": "The fleeing man's bare foot, the discarded shoe, and his injured leg as he runs"
          },
          {
            "camera_motion": "crane",
            "camera_position": "At face height, close in front of the fleeing man while moving backward along his path",
            "stage_index": 2,
            "stage_label": "close_observation",
            "transition_to_next": "The camera pulls farther back and shifts toward a three-quarter side position, widening the view as the dark figure enters the man's path.",
            "visual_focus": "The fleeing man's frightened face"
          },
          {
            "camera_motion": "track",
            "camera_position": "At upper-body height, several steps from the fleeing man on a three-quarter side angle",
            "stage_index": 3,
            "stage_label": "impact",
            "transition_to_next": "",
            "visual_focus": "The dark figure striking the fleeing man's shoulder and forcing his body backward"
          }
        ],
        "flow_summary": "카메라는 달아나는 남자의 발 가까이에서 함께 이동하다가 몸을 따라 얼굴 높이까지 상승한다. 이후 앞쪽에서 측면으로 물러나며 시야를 넓혀, 검은 인영이 남자를 덮쳐 무너뜨리는 충돌까지 연속적으로 포착한다.",
        "scene_index": 1,
        "shot_assignments": [
          {
            "deviation_note": "The framing tightens slightly around the shoulder contact while retaining enough of the man's torso to show his body bending backward.",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 3,
            "stage_index": 3
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "dolly_in",
            "camera_position": "At chest height on the alley axis, approximately five meters from the man and the woman beside the pole",
            "stage_index": 1,
            "stage_label": "establishing",
            "transition_to_next": "Continue forward, then arc slightly toward the man's side while rising to his eye level.",
            "visual_focus": "The man and the woman pressed together beside the pole"
          },
          {
            "camera_motion": "track",
            "camera_position": "At the man's eye level, less than one meter away and slightly offset toward his side",
            "stage_index": 2,
            "stage_label": "close_observation",
            "transition_to_next": "Hold the lateral position and tilt downward from the man's eyes toward his mouth and the woman's neck.",
            "visual_focus": "The man's red eyes"
          },
          {
            "camera_motion": "tilt",
            "camera_position": "Close beside the pair at head height, with the lens angled down toward the space between their faces and shoulders",
            "stage_index": 3,
            "stage_label": "attack_reveal",
            "transition_to_next": "Continue the downward movement with the woman's collapse, lowering the camera toward ground level.",
            "visual_focus": "The man's teeth biting into the woman's neck"
          },
          {
            "camera_motion": "crane",
            "camera_position": "Descending from waist height to a low position near the asphalt, approximately one meter from the woman",
            "stage_index": 4,
            "stage_label": "collapse",
            "transition_to_next": "",
            "visual_focus": "The woman's bloodied upper body lying limp on the asphalt"
          }
        ],
        "flow_summary": "카메라는 골목 안쪽에서 전봇대 옆 두 사람에게 서서히 접근한 뒤 남자의 눈과 여성의 목으로 시선을 좁힌다. 이어 쓰러지는 여성을 따라 지면 가까이 내려가 축 늘어진 상반신에서 이동을 끝낸다.",
        "scene_index": 2,
        "shot_assignments": [
          {
            "deviation_note": "",
            "flow_position": "start",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 1,
            "stage_index": 1
          },
          {
            "deviation_note": "Settle at the end of the descent and frame the woman's upper body more tightly.",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 4,
            "stage_index": 4
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "static",
            "camera_position": "At eye level outside the police line, approximately 12 meters from the group of police officers",
            "stage_index": 1,
            "stage_label": "establishing",
            "transition_to_next": "The camera begins tracking parallel to the police line while closing the lateral distance to the stretcher.",
            "visual_focus": "The daytime forest scene, the police line, and the police working beyond it"
          },
          {
            "camera_motion": "track",
            "camera_position": "At chest height outside the police line, approximately 5 meters from the stretcher and angled toward its side",
            "stage_index": 2,
            "stage_label": "evidence_recovery",
            "transition_to_next": "The camera continues laterally past the stretcher, then pans toward the nearby group of detectives.",
            "visual_focus": "The police lifting the black body bag onto the stretcher"
          },
          {
            "camera_motion": "pan",
            "camera_position": "At chest height outside the police line, approximately 4 meters from the group of detectives",
            "stage_index": 3,
            "stage_label": "command_reveal",
            "transition_to_next": "",
            "visual_focus": "Hyesu among the detectives, watching beyond the police line"
          }
        ],
        "flow_summary": "카메라는 폴리스 라인 바깥에서 현장 전경을 잡은 뒤 라인을 따라 이동하며 시신 수거 순간에 접근한다. 이어 같은 축에서 형사 무리 쪽으로 시선을 돌려 현장을 지휘하는 혜수에게 흐름을 연결한다.",
        "scene_index": 3,
        "shot_assignments": [
          {
            "deviation_note": "Momentarily holds the lateral movement as the body bag is raised onto the stretcher.",
            "flow_position": "mid",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 1,
            "stage_index": 2
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "crane",
            "camera_position": "High above the outskirts of Incheon, looking steeply downward from a wide aerial distance",
            "stage_index": 1,
            "stage_label": "establishing",
            "transition_to_next": "The camera descends gradually while maintaining its downward viewing angle and centers the rooftop room within the surrounding buildings.",
            "visual_focus": "The dense buildings of the outskirts with the old villa and its rooftop room visible within the wider area"
          },
          {
            "camera_motion": "crane",
            "camera_position": "Above the old villa at a lower aerial height, still looking downward with the rooftop room near the center of frame",
            "stage_index": 2,
            "stage_label": "approach",
            "transition_to_next": "",
            "visual_focus": "The rooftop room and its immediate relation to the surrounding buildings"
          }
        ],
        "flow_summary": "인천 변두리를 넓게 내려다보는 높은 부감에서 시작해, 주변 건물 사이의 오래된 빌라 옥탑방을 중심에 두며 서서히 고도를 낮춘다.",
        "scene_index": 4,
        "shot_assignments": [
          {
            "deviation_note": "",
            "flow_position": "start",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 1,
            "stage_index": 1
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "track",
            "camera_position": "At waist height along the kitchen-to-living-room axis, moving from the kitchen side to a medium distance in front of Minsook",
            "stage_index": 1,
            "stage_label": "establishing_observation",
            "transition_to_next": "Continue past Minsook's viewing axis and widen toward the room as Suriyoung enters, then settle beside the table.",
            "visual_focus": "The kitchen activity followed by Minsook staring at the television"
          },
          {
            "camera_motion": "track",
            "camera_position": "At seated eye level beside the table, moving laterally to keep Minsook and Suriyoung within the same interaction axis",
            "stage_index": 2,
            "stage_label": "domestic_interaction",
            "transition_to_next": "Cut across the stated time break to a lower position near the entrance.",
            "visual_focus": "Minsook serving the drink and Suriyoung responding from the table"
          },
          {
            "camera_motion": "tilt",
            "camera_position": "Near the entrance at knee height and a short distance to Suriyoung's side",
            "stage_index": 3,
            "stage_label": "transition",
            "transition_to_next": "Tilt upward from Suriyoung at the entrance, then track closer as she turns toward Minsook.",
            "visual_focus": "Suriyoung preparing to leave and speaking with Minsook"
          },
          {
            "camera_motion": "track",
            "camera_position": "At shoulder height beside Suriyoung, closing to an intimate distance from Suriyoung and Minsook",
            "stage_index": 4,
            "stage_label": "affectionate_approach",
            "transition_to_next": "Lower the viewing axis from their faces toward Minsook's forearm and push into the wrist.",
            "visual_focus": "Suriyoung bringing her face close to Minsook's shoulder as they smile"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "At wrist height within close-up distance of Minsook's forearm",
            "stage_index": 5,
            "stage_label": "mark_reveal",
            "transition_to_next": "",
            "visual_focus": "The small round mark on Minsook's wrist"
          }
        ],
        "flow_summary": "카메라는 주방 쪽에서 민숙의 굳은 시선으로 이동한 뒤 식탁의 모녀를 따라가고, 명시된 시간 경계에서 현관 쪽으로 컷한다. 이후 수리영이 민숙에게 다가가는 흐름을 좇아 어깨 가까이 붙은 얼굴을 포착한 다음, 시선을 손목으로 낮추며 표식까지 밀착한다.",
        "scene_index": 5,
        "shot_assignments": [
          {
            "deviation_note": "Tighten the moving frame to Minsook's upper body while preserving her television-facing eyeline.",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 2,
            "stage_index": 1
          },
          {
            "deviation_note": "Settle briefly at the closest point of the lateral move as Suriyoung's face reaches Minsook's shoulder.",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 8,
            "stage_index": 4
          },
          {
            "deviation_note": "Complete the push at an extreme close distance so the round mark dominates the frame.",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 9,
            "stage_index": 5
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "track",
            "camera_position": "At waist height, several meters beside Suriyeong, moving parallel to her path at a full-body distance",
            "stage_index": 1,
            "stage_label": "parallel_establishing",
            "transition_to_next": "The camera continues parallel to Suriyeong while moving inward and rising toward her face level.",
            "visual_focus": "Suriyeong seated on the bicycle and pressing one pedal down as she rides along the coastal road"
          },
          {
            "camera_motion": "track",
            "camera_position": "At face height, close beside Suriyeong, maintaining a parallel moving position",
            "stage_index": 2,
            "stage_label": "close_observation",
            "transition_to_next": "",
            "visual_focus": "Suriyeong's smiling face as she continues riding and hears the dog barking"
          }
        ],
        "flow_summary": "카메라는 자전거를 타는 수리영의 측면 전신과 나란히 이동한 뒤, 주행을 유지하며 얼굴 높이까지 가까이 붙는다. 하나의 평행 트래킹 동선 안에서 활기찬 페달링에서 표정 관찰로 시선을 좁힌다.",
        "scene_index": 6,
        "shot_assignments": [
          {
            "deviation_note": "",
            "flow_position": "mid",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 1,
            "stage_index": 1
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "dolly_in",
            "camera_position": "On the Rottweiler's side of the enclosure boundary, at head height and about 0.8 meters from its face",
            "stage_index": 1,
            "stage_label": "threat_establishing",
            "transition_to_next": "Track laterally along the enclosure boundary while redirecting the lens past the dog toward Suriyeong on the opposite side.",
            "visual_focus": "The barking Rottweiler's face and forward movement"
          },
          {
            "camera_motion": "track",
            "camera_position": "On the Rottweiler's side of the enclosure boundary, at Suriyeong's eye height and about 1 meter across from her",
            "stage_index": 2,
            "stage_label": "confrontation",
            "transition_to_next": "Continue around the Rottweiler toward its rear quarter, lowering from eye height to hip height without breaking spatial continuity.",
            "visual_focus": "Suriyeong's eyes holding direct focus on the Rottweiler through the enclosure boundary"
          },
          {
            "camera_motion": "track",
            "camera_position": "Beside the Rottweiler's rear quarter, at hip height and about 0.7 meters from the veterinarian's hands",
            "stage_index": 3,
            "stage_label": "intervention",
            "transition_to_next": "Cut to an eye-level position in front of Suriyeong after the vaccination is completed.",
            "visual_focus": "The veterinarian administering the injection as the Rottweiler settles"
          },
          {
            "camera_motion": "dolly_out",
            "camera_position": "In front of Suriyeong at eye height, beginning about 0.8 meters from her and easing back to include the enclosed dogs",
            "stage_index": 4,
            "stage_label": "reaction",
            "transition_to_next": "Cut forward in time to a close position above Suriyeong's lap at the grooming task.",
            "visual_focus": "Suriyeong looking from the dogs to her phone and reacting to the unanswered call"
          },
          {
            "camera_motion": "tilt",
            "camera_position": "Close to Suriyeong's seated position, slightly above lap height and about 0.5 meters from her hands",
            "stage_index": 5,
            "stage_label": "grooming_transition",
            "transition_to_next": "",
            "visual_focus": "Suriyeong's hands, the partly opened scissors, and the small dog's fur"
          }
        ],
        "flow_summary": "카메라는 로트와일러의 위협적인 얼굴에서 철창 너머 수리영의 응시로 옮겨간 뒤, 맹견의 뒤쪽을 따라 주사 장면까지 이어진다. 이후 수리영의 연락 시도를 거쳐 시간 경과를 명시하는 컷으로 미용 작업에 진입하고, 무릎 위 강아지와 가위를 든 손으로 내려간다.",
        "scene_index": 7,
        "shot_assignments": [
          {
            "deviation_note": "Tighten to an extreme facial close-up so the enclosure boundary remains at the edge of the frame while Suriyeong's eyes dominate.",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 2,
            "stage_index": 2
          },
          {
            "deviation_note": "Settle the downward tilt on both hands and the half-open scissors, cropping above Suriyeong's torso.",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 5,
            "stage_index": 5
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "track",
            "camera_position": "At rider-chest height, 3 meters ahead and slightly to the side of 수리영, moving backward along the street toward the market",
            "stage_index": 1,
            "stage_label": "street_approach",
            "transition_to_next": "The camera continues backward to the market entrance, then arcs beside 수리영 as she stops and parks the bicycle.",
            "visual_focus": "수리영 steering the bicycle through pedestrians and street activity"
          },
          {
            "camera_motion": "track",
            "camera_position": "At waist-to-chest height, 2 meters behind 수리영, beginning beside the parked bicycle and continuing through the entrance into the aisles",
            "stage_index": 2,
            "stage_label": "interior_search",
            "transition_to_next": "The camera follows her turn into the relevant aisle, moves around to her side, and slows into a stable conversation position.",
            "visual_focus": "수리영 entering the market and searching among the employees"
          },
          {
            "camera_motion": "pan",
            "camera_position": "At eye level beside the aisle, 2.5 meters from 수리영 and the female employee, with both figures visible across the aisle axis",
            "stage_index": 3,
            "stage_label": "conversation_reveal",
            "transition_to_next": "After panning from the two-person exchange toward the male employee and back to 수리영, the camera pivots toward the exit and begins retreating ahead of her.",
            "visual_focus": "수리영 questioning the female employee, then reacting to the male employee's information"
          },
          {
            "camera_motion": "track",
            "camera_position": "At chest height, 2 meters ahead of 수리영, moving backward from the aisle through the market entrance",
            "stage_index": 4,
            "stage_label": "exit_transition",
            "transition_to_next": "The camera crosses outside ahead of 수리영, arcs to a front three-quarter angle, and settles as she raises the phone.",
            "visual_focus": "수리영 leaving the market while attempting to make contact"
          },
          {
            "camera_motion": "static",
            "camera_position": "At eye level outside the market, 3 meters in front of and slightly to the side of 수리영, facing her with the darkened street beyond her line of sight",
            "stage_index": 5,
            "stage_label": "failed_contact",
            "transition_to_next": "",
            "visual_focus": "수리영 holding the phone to her ear and watching the street"
          }
        ],
        "flow_summary": "카메라는 번화가에서 자전거를 모는 수리영과 함께 마트까지 이동한 뒤, 내부 수색과 직원들과의 대화를 따라 진열대 사이에 정착한다. 이후 수리영보다 앞서 출구로 물러나며 밖으로 연결되고, 전화가 닿지 않는 수리영을 길거리 앞에서 마주 보며 멈춘다.",
        "scene_index": 8,
        "shot_assignments": [
          {
            "deviation_note": "",
            "flow_position": "start",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 2,
            "stage_index": 3
          },
          {
            "deviation_note": "Tighten slightly while retaining the street within 수리영's viewing direction.",
            "flow_position": "mid",
            "inherits": [
              "camera_position",
              "visual_focus"
            ],
            "shot_index": 4,
            "stage_index": 5
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "track",
            "camera_position": "At chest height, approximately eight meters ahead of 수리영 and slightly offset from the bicycle's path, moving backward at matching speed",
            "stage_index": 1,
            "stage_label": "approach",
            "transition_to_next": "The camera tracks diagonally toward 수리영's front-left side while reducing the distance and lowering toward bicycle-frame height.",
            "visual_focus": "수리영 riding quickly along the coastal road"
          },
          {
            "camera_motion": "track",
            "camera_position": "At bicycle-frame height, approximately one and a half meters from 수리영's front-left side, traveling parallel to the bicycle",
            "stage_index": 2,
            "stage_label": "close_observation",
            "transition_to_next": "",
            "visual_focus": "수리영's hunched upper body and the downward transfer of weight into the bicycle pedals"
          }
        ],
        "flow_summary": "카메라는 수리영보다 앞선 위치에서 후진 추적을 시작한 뒤, 속도를 맞춘 채 전측면으로 낮게 좁혀 들어간다. 마지막에는 웅크린 상체와 페달에 체중을 싣는 동작을 하나의 이동 안에서 포착한다.",
        "scene_index": 9,
        "shot_assignments": [
          {
            "deviation_note": "The framing tightens slightly while retaining both the hunched upper body and the weight-bearing pedal action.",
            "flow_position": "mid",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 1,
            "stage_index": 2
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "track",
            "camera_position": "At ankle height on the rooftop, several meters from the doorway, moving parallel to the approaching man's path",
            "stage_index": 1,
            "stage_label": "approach",
            "transition_to_next": "Track forward with the man toward the doorway, then rise from ankle height to hand height as he stops.",
            "visual_focus": "The dried leaves crossing the man's shoes and his movement toward the doorway"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "At hand height directly beside the doorway, within close-up distance of the narrow door gap",
            "stage_index": 2,
            "stage_label": "close_observation",
            "transition_to_next": "Continue the short push toward the gap as the leaflet is inserted, then shift the framing upward toward the lock and opening door.",
            "visual_focus": "The man's hand gripping the advertising leaflet beside the door gap"
          },
          {
            "camera_motion": "track",
            "camera_position": "Just outside the doorway at chest height, moving laterally along the exterior side of the room toward the window",
            "stage_index": 3,
            "stage_label": "entry_transition",
            "transition_to_next": "Track from the opening doorway to a frontal position outside the window, allowing the man's entry to pass out of direct view and reappear only as a shadow.",
            "visual_focus": "The door opening slightly and the man entering the room without revealing his face"
          },
          {
            "camera_motion": "static",
            "camera_position": "Outside the room at chest height, centered directly in front of the closed window at a medium distance",
            "stage_index": 4,
            "stage_label": "shadow_reveal",
            "transition_to_next": "",
            "visual_focus": "The large shadow of one figure lunging with an open mouth toward another figure's shoulder"
          }
        ],
        "flow_summary": "카메라는 옥상 낮은 위치에서 낯선 남자의 접근을 따라 현관까지 이동한 뒤, 전단지를 쥔 손과 문틈으로 밀착한다. 문이 열리면 외벽을 따라 창문 앞으로 이동해, 실내의 습격을 직접 보여주지 않고 거대한 그림자로 드러낸다.",
        "scene_index": 10,
        "shot_assignments": [
          {
            "deviation_note": "손과 전단지가 화면을 채우도록 문틈 주변만 더 타이트하게 제한한다.",
            "flow_position": "mid",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 2,
            "stage_index": 2
          },
          {
            "deviation_note": "닫힌 창문의 불빛 영역 안에서 입을 벌린 형상과 어깨 쪽의 형상이 크게 겹쳐 보이도록 프레이밍한다.",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 4,
            "stage_index": 4
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "track",
            "camera_position": "Behind Sooriyoung at waist height, two meters away in the courtyard, then rising along the stair path",
            "stage_index": 1,
            "stage_label": "approach",
            "transition_to_next": "The camera continues upward beside the stair path and closes the distance as Sooriyoung slows.",
            "visual_focus": "Sooriyoung moving from the bicycle toward and up the stairs"
          },
          {
            "camera_motion": "handheld",
            "camera_position": "Alongside Sooriyoung on the middle section of the stairs, at face height and less than one meter away",
            "stage_index": 2,
            "stage_label": "reaction",
            "transition_to_next": "The camera rises with Sooriyoung to the rooftop threshold, moves behind her shoulder, and aligns with her line of sight.",
            "visual_focus": "Sooriyoung stopping and reacting to the smell"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "At Sooriyoung's eye height near the rooftop threshold, aligned just behind her shoulder and facing across the rooftop",
            "stage_index": 3,
            "stage_label": "reveal",
            "transition_to_next": "",
            "visual_focus": "The half-open entrance door at the end of Sooriyoung's sightline"
          }
        ],
        "flow_summary": "카메라는 마당에서 수리영의 뒤를 따라 계단을 오르다가 중턱에서 반응을 가까이 포착한다. 이어 옥상 문턱에서 수리영의 시선축에 정렬해 반쯤 열린 현관문을 드러낸다.",
        "scene_index": 11,
        "shot_assignments": [
          {
            "deviation_note": "Tighten the framing past Sooriyoung's shoulder so the half-open door dominates the endpoint of the frame.",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 3,
            "stage_index": 3
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "track",
            "camera_position": "At eye level behind the daughter, at medium distance, moving from the entrance through the living area toward the bedroom doorway",
            "stage_index": 1,
            "stage_label": "searching_traverse",
            "transition_to_next": "Continue through the bedroom doorway, lowering the camera toward the floor and aligning its path with the trail leading to the curtain.",
            "visual_focus": "The daughter's cautious movement and the route toward the bedroom"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "Below waist height inside the bedroom, positioned behind and slightly to the side of the daughter, advancing from the doorway toward the curtain",
            "stage_index": 2,
            "stage_label": "evidence_approach",
            "transition_to_next": "Rise to chest height while advancing past the curtain edge, allowing the seated body behind it to enter the frame.",
            "visual_focus": "The bloodied footprints leading across the floor to the curtain"
          },
          {
            "camera_motion": "static",
            "camera_position": "At chest height just beyond the curtain line, at medium distance from the seated body and facing it at a slight angle",
            "stage_index": 3,
            "stage_label": "body_reveal",
            "transition_to_next": "Tilt downward and move closer from the upper body toward the clenched hand near the floor.",
            "visual_focus": "The mother's bloodied upper body, dropped head, and seated posture behind the curtain"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "Near floor height beside the mother, closing from a tight view of her arm to an extreme close distance from her clenched hand",
            "stage_index": 4,
            "stage_label": "close_observation",
            "transition_to_next": "After reaching the hand, lift and rotate the camera away from the floor until it faces the wall above the bed.",
            "visual_focus": "The crumpled photograph held inside the mother's bloodied clenched hand"
          },
          {
            "camera_motion": "static",
            "camera_position": "At eye level near the side of the bed, at medium distance and facing the wall above it nearly straight on",
            "stage_index": 5,
            "stage_label": "supernatural_reveal",
            "transition_to_next": "",
            "visual_focus": "The incomplete red circular line fixed on the empty wall above the bed"
          }
        ],
        "flow_summary": "카메라는 수리영의 수색을 따라 거실에서 방 안 커튼까지 전진한 뒤, 민숙의 시신에서 굳은 손과 사진으로 시선을 낮춘다. 이어 바닥 가까운 위치에서 상승하며 침대 위 벽면으로 방향을 돌려 미완성의 붉은 원을 드러낸다.",
        "scene_index": 12,
        "shot_assignments": [
          {
            "deviation_note": "",
            "flow_position": "start",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 8,
            "stage_index": 3
          },
          {
            "deviation_note": "",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 13,
            "stage_index": 4
          },
          {
            "deviation_note": "",
            "flow_position": "mid",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 17,
            "stage_index": 5
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "track",
            "camera_position": "Just outside the rooftop-room entrance at Suriyeong's upper-torso height, offset beside the top of the stairs at close range",
            "stage_index": 1,
            "stage_label": "escape",
            "transition_to_next": "Track beside and slightly ahead of Suriyeong as she descends, lowering with her movement toward the foot of the stairs.",
            "visual_focus": "Suriyeong bursting from the entrance and committing her first step down the stairs"
          },
          {
            "camera_motion": "dolly_out",
            "camera_position": "Near the foot of the stairs at standing height, several meters from Suriyeong and facing her position beside the parked car",
            "stage_index": 2,
            "stage_label": "disorientation",
            "transition_to_next": "Pan from Suriyeong toward Hyesu at the open car door, then begin moving along Hyesu's route toward Suriyeong.",
            "visual_focus": "Suriyeong standing motionless after reaching the area beside the car"
          },
          {
            "camera_motion": "track",
            "camera_position": "Behind and slightly to the side of Hyesu at upper-torso height, moving from the car toward Suriyeong",
            "stage_index": 3,
            "stage_label": "approach",
            "transition_to_next": "Move around Hyesu's near side and rise to her chest level, closing the distance until the camera faces down toward Suriyeong.",
            "visual_focus": "Hyesu running from the car and reaching toward Suriyeong"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "Close to Hyesu's chest position and above Suriyeong's eye line, angled downward toward Suriyeong's face",
            "stage_index": 4,
            "stage_label": "close_observation",
            "transition_to_next": "Hold the shared axis through Suriyeong's disclosure, then tilt upward to Hyesu's reaction before turning back toward the stairs.",
            "visual_focus": "Suriyeong's tearful face as she looks up toward Hyesu"
          },
          {
            "camera_motion": "track",
            "camera_position": "Behind Hyesu and Detective Kim at standing height, aligned with their route from Suriyeong toward the stairs",
            "stage_index": 5,
            "stage_label": "return_to_rooftop",
            "transition_to_next": "",
            "visual_focus": "Hyesu and Detective Kim turning away and rushing up the stairs"
          }
        ],
        "flow_summary": "카메라는 옥탑방 입구에서 수리영과 함께 계단을 내려와 멈춘 그녀를 확인한 뒤, 차에서 달려오는 혜수를 따라 다시 접근한다. 수리영의 고백을 가까이 포착한 후 혜수의 반응을 거쳐 계단으로 방향을 돌려 두 형사의 상승 동선을 따른다.",
        "scene_index": 13,
        "shot_assignments": [
          {
            "deviation_note": "Frame Suriyeong at upper-body scale while preserving the extended foot and the immediate direction of the descent.",
            "flow_position": "start",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 1,
            "stage_index": 1
          },
          {
            "deviation_note": "Tighten to Suriyeong's face while keeping the camera near Hyesu's chest position so her upward gaze defines the eyeline.",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 5,
            "stage_index": 4
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "track",
            "camera_position": "Inside the entrance at chest height, moving from a medium distance behind Hyesu and Detective Kim toward the open room doorway",
            "stage_index": 1,
            "stage_label": "entrance_follow",
            "transition_to_next": "Track behind Suriyoung as she rushes past, then settle at the open doorway facing into the room.",
            "visual_focus": "Detective Kim and Hyesu checking the interior, then Suriyoung rushing toward the room"
          },
          {
            "camera_motion": "static",
            "camera_position": "At the open room doorway at eye level, far enough back to include the bed and the visible floor in one wide view",
            "stage_index": 2,
            "stage_label": "empty_room_reveal",
            "transition_to_next": "Move forward briefly with Suriyoung, then track backward through the doorway and turn toward the dining table as she runs out.",
            "visual_focus": "The clean bed, floor, curtain, and wall where Suriyoung expected evidence"
          },
          {
            "camera_motion": "track",
            "camera_position": "Beside the dining table at chest height, moving around its near side to face Suriyoung from a close medium distance",
            "stage_index": 3,
            "stage_label": "table_search",
            "transition_to_next": "Continue laterally past Suriyoung's pointing hands to open the angle toward Detective Kim and Hyesu.",
            "visual_focus": "Suriyoung indicating the empty places on the table where the two teacups had been"
          },
          {
            "camera_motion": "track",
            "camera_position": "Between the dining table and the entrance at eye level, arcing from Suriyoung's side toward Detective Kim and Hyesu at a medium distance",
            "stage_index": 4,
            "stage_label": "confrontation_reaction",
            "transition_to_next": "Hold the shared axis as Detective Kim leaves, then dolly toward Hyesu as she turns fully to Suriyoung.",
            "visual_focus": "Detective Kim's accusation, Hyesu's sharp reaction, and Detective Kim's exit"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "In front of Hyesu and Suriyoung at chest height, closing from a medium two-shot to an upper-body distance",
            "stage_index": 5,
            "stage_label": "reassurance",
            "transition_to_next": "After Hyesu steadies Suriyoung, pan away from them toward the room interior and stop on the displaced belongings.",
            "visual_focus": "Hyesu holding Suriyoung's shoulders and maintaining eye contact with her"
          },
          {
            "camera_motion": "pan",
            "camera_position": "Near Hyesu and Suriyoung at chest height, rotating from their two-shot toward the bed area without changing position",
            "stage_index": 6,
            "stage_label": "final_discrepancy_reveal",
            "transition_to_next": "",
            "visual_focus": "The backpack and doll in their slightly changed positions near the bed corner"
          }
        ],
        "flow_summary": "카메라는 현관에서 수리영을 따라 방 안의 사라진 흔적을 확인한 뒤, 그녀와 함께 식탁으로 빠져나와 인물들 사이의 갈등을 횡이동으로 포착한다. 김형사가 떠난 후 혜수와 수리영에게 다가갔다가 방 안으로 시선을 돌려 위치가 달라진 물건들로 이동을 마친다.",
        "scene_index": 14,
        "shot_assignments": [
          {
            "deviation_note": "The camera pauses completely at the doorway to emphasize the unobstructed wide view of the bed and floor.",
            "flow_position": "mid",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 4,
            "stage_index": 2
          },
          {
            "deviation_note": "The track settles into a frontal close-medium view, keeping Suriyoung's extended hands in the lower foreground and her desperate expression dominant.",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 8,
            "stage_index": 3
          },
          {
            "deviation_note": "The dolly finishes on an upper-body two-shot that prioritizes Hyesu's hands around Suriyoung's shoulders and their locked eyeline.",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 11,
            "stage_index": 5
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "static",
            "camera_position": "At seated eye level, approximately 2.5 meters from the side of the bus-stop bench, with the camera axis crossing the bench toward the sea",
            "stage_index": 1,
            "stage_label": "establishing",
            "transition_to_next": "Dolly forward along the side of the bench while turning slightly toward Suriyoung and Hyesu.",
            "visual_focus": "Suriyoung seated in profile with the night sea behind her"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "At shoulder height, approximately 1.5 meters from the bench on its front-side diagonal",
            "stage_index": 2,
            "stage_label": "approach",
            "transition_to_next": "Track parallel to the bench and lower the viewing angle as Suriyoung begins to rise.",
            "visual_focus": "The interaction between Hyesu's offered drink and Suriyoung's uncertain response"
          },
          {
            "camera_motion": "track",
            "camera_position": "Near the front end of the bench at waist height, approximately 1.5 meters from Suriyoung",
            "stage_index": 3,
            "stage_label": "departure",
            "transition_to_next": "Continue the lateral track, then pivot toward Hyesu as Suriyoung accelerates toward the road.",
            "visual_focus": "Suriyoung rising from the bench and turning to run"
          },
          {
            "camera_motion": "pan",
            "camera_position": "At Hyesu's chest height, approximately 2 meters in front of and slightly to the side of her, with the road extending behind her",
            "stage_index": 4,
            "stage_label": "reaction",
            "transition_to_next": "Cut across the road to a distant frontal view that preserves both figures within the same axis.",
            "visual_focus": "Hyesu calling out with her hands at her mouth while Suriyoung runs away in the background"
          },
          {
            "camera_motion": "cut",
            "camera_position": "Across the road at standing eye level, far enough away to include Hyesu and the departing Suriyoung in a wide frame",
            "stage_index": 5,
            "stage_label": "withdraw",
            "transition_to_next": "",
            "visual_focus": "Hyesu standing near the bus stop and Suriyoung moving away toward the road"
          }
        ],
        "flow_summary": "카메라는 벤치 옆에서 수리영의 고립된 측면을 바라보다가 두 사람에게 접근한 뒤, 수리영의 기립과 달리기를 따라 혜수의 외침으로 시선을 넘긴다. 마지막에는 길 건너 먼 위치로 컷해 두 사람을 지켜보는 듯한 거리감으로 물러난다.",
        "scene_index": 15,
        "shot_assignments": [
          {
            "deviation_note": "",
            "flow_position": "start",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 1,
            "stage_index": 1
          },
          {
            "deviation_note": "Tighten to Hyesu's upper body while retaining Suriyoung's airborne running step in the background.",
            "flow_position": "mid",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 5,
            "stage_index": 4
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "static",
            "camera_position": "In the corridor at eye level, several steps from the office doorway, facing Hyesu and framing her full body as she crosses the threshold",
            "stage_index": 1,
            "stage_label": "establishing",
            "transition_to_next": "Dolly forward through the doorway behind Hyesu's path as she enters the office.",
            "visual_focus": "Hyesu entering the office with the phone held to her ear"
          },
          {
            "camera_motion": "track",
            "camera_position": "Inside the office at chest height, moving from the doorway toward the desk at a medium distance beside Hyesu",
            "stage_index": 2,
            "stage_label": "approach",
            "transition_to_next": "Continue toward the desk, then lower and close the camera toward Hyesu's extended hand.",
            "visual_focus": "Hyesu approaching the desk and Kim looking toward her"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "At the near edge of the desk at hand height, within close-up distance of Hyesu's extended hand and the phone held before Kim",
            "stage_index": 3,
            "stage_label": "close_observation",
            "transition_to_next": "Rise from hand height to shoulder height while shifting the viewing axis past the phone toward Kim.",
            "visual_focus": "Hyesu's rigid hand and the active phone screen in front of Kim"
          },
          {
            "camera_motion": "tilt",
            "camera_position": "Beside the desk at shoulder height, close to Kim and facing him across the desk axis",
            "stage_index": 4,
            "stage_label": "reaction",
            "transition_to_next": "Pan away from Kim across the office until Hyesu is isolated in the new viewing direction.",
            "visual_focus": "Kim reacting to Hyesu's request and turning toward the computer"
          },
          {
            "camera_motion": "pan",
            "camera_position": "Beside the desk at Hyesu's eye level, at a medium distance with the camera turned toward her position near the window",
            "stage_index": 5,
            "stage_label": "final_observation",
            "transition_to_next": "",
            "visual_focus": "Hyesu's tense gaze as her concern about Minsuk deepens"
          }
        ],
        "flow_summary": "카메라는 복도에서 사무실로 들어서는 혜수의 전신을 포착한 뒤 그녀를 따라 책상까지 전진하고, 내민 휴대폰과 손으로 낮게 밀착한다. 이후 시선을 김 형사에게 올렸다가 혜수 쪽으로 돌려 불길한 예감이 깊어지는 흐름으로 마무리한다.",
        "scene_index": 16,
        "shot_assignments": [
          {
            "deviation_note": "",
            "flow_position": "start",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 1,
            "stage_index": 1
          },
          {
            "deviation_note": "Tighten the framing to exclude Hyesu's face and hold Kim only as off-frame spatial motivation beyond the phone.",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 3,
            "stage_index": 3
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "dolly_in",
            "camera_position": "At a low height several meters from the rooftop room, looking upward past the rooftop boundary",
            "stage_index": 1,
            "stage_label": "establishing",
            "transition_to_next": "Dolly forward toward the rooftop boundary and settle at the cat's eye height.",
            "visual_focus": "The lit rooftop room and its window"
          },
          {
            "camera_motion": "static",
            "camera_position": "At the black cat's eye height beside the rooftop boundary, at close-up distance, angled from the cat toward the lit window",
            "stage_index": 2,
            "stage_label": "close_observation",
            "transition_to_next": "Begin a lateral track as the cat turns away from the window and moves to cross the boundary.",
            "visual_focus": "The black cat's bright eyes with the lit window along its sightline"
          },
          {
            "camera_motion": "track",
            "camera_position": "At a low height alongside the rooftop boundary, maintaining a short distance from the black cat's path",
            "stage_index": 3,
            "stage_label": "departure",
            "transition_to_next": "",
            "visual_focus": "The black cat moving over the rooftop boundary"
          }
        ],
        "flow_summary": "카메라는 낮은 위치에서 불 켜진 옥탑방을 올려다보며 전진한 뒤, 난간의 검은 고양이 눈높이에 밀착해 창문을 바라보는 시선을 포착한다. 이어 고양이가 몸을 돌려 담을 넘는 방향으로 낮게 측면 추적한다.",
        "scene_index": 17,
        "shot_assignments": [
          {
            "deviation_note": "",
            "flow_position": "mid",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 2,
            "stage_index": 2
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "static",
            "camera_position": "At mattress height, about 1.5 meters lateral to the bed corner, viewing Suri-young in profile",
            "stage_index": 1,
            "stage_label": "exhausted_wake",
            "transition_to_next": "The camera begins tracking from the bedside toward the closed room door as Suri-young rises to search the interior.",
            "visual_focus": "Suri-young curled beside the bed, followed by her sudden awakening"
          },
          {
            "camera_motion": "track",
            "camera_position": "At chest height near the room doorway, moving behind and slightly to the side of Suri-young toward the window",
            "stage_index": 2,
            "stage_label": "fearful_search",
            "transition_to_next": "The camera pivots away from the window and tracks back with Suri-young toward the ringing phone, then continues toward the doorway as she prepares to leave.",
            "visual_focus": "Suri-young approaching the closed door, entering the room, and checking behind the curtain"
          },
          {
            "camera_motion": "track",
            "camera_position": "At waist-to-chest height, moving with Suri-young between the phone position and the room doorway at a distance of about 1.5 meters",
            "stage_index": 3,
            "stage_label": "urgent_departure",
            "transition_to_next": "Cut from Suri-young crossing the doorway to an eye-level position behind her in the bathroom.",
            "visual_focus": "Suri-young answering the phone, reacting to the call, taking the backpack, and leaving the room"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "At Suri-young's eye level, beginning about 1 meter behind her shoulder and ending about 0.25 meters from the wall visible beyond the mirror",
            "stage_index": 4,
            "stage_label": "mirror_manifestation",
            "transition_to_next": "The camera pans with Suri-young's turn toward the wall, then cuts as she rushes into the living room.",
            "visual_focus": "Suri-young's reflection and the red circle appearing on the wall behind her"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "At chest height, beginning about 2 meters in front of the table and ending about 0.3 meters from the framed photograph",
            "stage_index": 5,
            "stage_label": "photograph_distortion",
            "transition_to_next": "",
            "visual_focus": "The photograph of Suri-young and her mother, tightening onto her mother's changing face"
          }
        ],
        "flow_summary": "카메라는 침대 곁의 수리영에서 출발해 그녀의 방 안 수색과 퇴실을 따라간 뒤, 욕실로 컷해 거울 뒤 붉은 원까지 밀착한다. 이어 거실로 전환해 식탁의 사진으로 전진하며 강민숙의 얼굴이 일그러지는 순간에 도달한다.",
        "scene_index": 18,
        "shot_assignments": [
          {
            "deviation_note": "",
            "flow_position": "start",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 1,
            "stage_index": 1
          },
          {
            "deviation_note": "At the terminal distance, isolate the wall and the fully formed red circle while excluding most of Suri-young and the mirror.",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 10,
            "stage_index": 4
          },
          {
            "deviation_note": "At the terminal distance, tighten specifically onto Kang Min-sook's smiling face as it distorts and appears to flow downward.",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 13,
            "stage_index": 5
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "track",
            "camera_position": "At eye level several meters in front of the store entrance, framing Su-ri-young at full-body distance beside the parked bicycle",
            "stage_index": 1,
            "stage_label": "establishing",
            "transition_to_next": "Track backward through the entrance as Su-ri-young moves inside, then turn to follow her search between the aisles.",
            "visual_focus": "Su-ri-young looking from the entrance toward a point inside the store"
          },
          {
            "camera_motion": "track",
            "camera_position": "At chest height within the aisle passage, moving from a following position behind Su-ri-young to a side-on two-person distance",
            "stage_index": 2,
            "stage_label": "approach",
            "transition_to_next": "Cut across the interior-exterior boundary to a side position outside as Su-ri-young and the male employee check the CCTV location.",
            "visual_focus": "Su-ri-young finding and questioning the male employee between the aisles"
          },
          {
            "camera_motion": "tilt",
            "camera_position": "Outside the store at chest height and medium distance, positioned perpendicular to Su-ri-young's profile with the wall-mounted camera above her sightline",
            "stage_index": 3,
            "stage_label": "reveal",
            "transition_to_next": "Tilt down from the CCTV toward Su-ri-young, then move closer as she raises the phone to her ear.",
            "visual_focus": "Su-ri-young looking up at the CCTV camera"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "Outside the store at eye level, directly beside Su-ri-young's profile and closing from medium distance to facial close-up distance",
            "stage_index": 4,
            "stage_label": "close_observation",
            "transition_to_next": "",
            "visual_focus": "Su-ri-young speaking into the phone"
          }
        ],
        "flow_summary": "마트 입구의 수리영을 전신으로 포착한 카메라가 그녀의 탐색을 따라 내부 진열대 사이로 이동한다. 대화 후 외부 CCTV를 올려다보는 측면 위치로 컷한 뒤, 전화하는 수리영에게 가까이 다가간다.",
        "scene_index": 19,
        "shot_assignments": [
          {
            "deviation_note": "",
            "flow_position": "start",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 1,
            "stage_index": 1
          },
          {
            "deviation_note": "Hold the side profile composition at the upper end of the tilt so Su-ri-young and the CCTV remain connected by her eyeline.",
            "flow_position": "mid",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 3,
            "stage_index": 3
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "dolly_in",
            "camera_position": "At standing eye level behind and slightly to one side of the monitor area, beginning at medium distance from the three people and moving toward their shared viewing axis",
            "stage_index": 1,
            "stage_label": "approach",
            "transition_to_next": "The forward move continues past the shared grouping and settles into a close frontal angle on Suriyoung.",
            "visual_focus": "Suriyoung, Hyesu, and the security employee watching the CCTV monitor"
          },
          {
            "camera_motion": "static",
            "camera_position": "At seated eye level directly across from Suriyoung, close enough to isolate her face while keeping the monitor just outside the camera axis",
            "stage_index": 2,
            "stage_label": "reaction",
            "transition_to_next": "The camera tracks laterally along the monitor side, widening slightly as its viewing axis shifts from Suriyoung toward the security employee and Hyesu.",
            "visual_focus": "Suriyoung's increasingly anxious face as she watches the dark CCTV image"
          },
          {
            "camera_motion": "track",
            "camera_position": "At seated eye level beside the monitor area, moving laterally across the near side of the group from Suriyoung's position toward Hyesu",
            "stage_index": 3,
            "stage_label": "reorientation",
            "transition_to_next": "The lateral move passes the security employee's profile and tightens toward Hyesu, ending on her eyeline to him.",
            "visual_focus": "The security employee indicating the unclear CCTV section, then Hyesu studying the monitor"
          },
          {
            "camera_motion": "static",
            "camera_position": "At Hyesu's eye level in a close three-quarter frontal position, offset toward the security employee's side of their eyeline",
            "stage_index": 4,
            "stage_label": "decision",
            "transition_to_next": "",
            "visual_focus": "Hyesu's firm expression directed toward the security employee"
          }
        ],
        "flow_summary": "카메라는 모니터를 함께 보는 세 사람에게 다가간 뒤 수리영의 초조한 얼굴에 머문다. 이어 모니터 옆을 따라 보안직원을 지나 혜수 쪽으로 이동하고, CCTV를 가져가겠다고 결심한 혜수의 단호한 시선에서 끝난다.",
        "scene_index": 20,
        "shot_assignments": [
          {
            "deviation_note": "",
            "flow_position": "mid",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 1,
            "stage_index": 2
          },
          {
            "deviation_note": "",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 4,
            "stage_index": 4
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "track",
            "camera_position": "Just inside the office doorway at eye level, several meters from Hyesu and Suriyoung",
            "stage_index": 1,
            "stage_label": "establishing",
            "transition_to_next": "Track forward with Hyesu and Suriyoung, then curve toward the side of Hyesu's desk as they stop.",
            "visual_focus": "Hyesu and Suriyoung entering the office and facing Detective Kim"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "Beside Hyesu's desk at seated eye level, about two meters from Suriyoung",
            "stage_index": 2,
            "stage_label": "close_observation",
            "transition_to_next": "After the detectives leave, slide laterally across the office from Hyesu's desk toward Detective Kim's vacant position.",
            "visual_focus": "Suriyoung examining the photographs on Hyesu's desk and reacting to them"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "Behind and slightly to one side of Detective Kim's vacant position, at monitor height and less than one meter from the screen",
            "stage_index": 3,
            "stage_label": "reveal",
            "transition_to_next": "Continue inward toward the displayed result, then shift down and sideways to follow Suriyoung's hand from the monitor to the writing area.",
            "visual_focus": "The location-tracking result appearing at the center of Detective Kim's monitor"
          },
          {
            "camera_motion": "tilt",
            "camera_position": "At the near side of the desk, below seated eye level and within close reach of Suriyoung's hands",
            "stage_index": 4,
            "stage_label": "secret_action",
            "transition_to_next": "Rise with Suriyoung as she stands, then arc behind her and track toward the office door.",
            "visual_focus": "Suriyoung copying the coordinates and concealing the folded note"
          },
          {
            "camera_motion": "track",
            "camera_position": "Directly behind Suriyoung at shoulder height, about one meter away as she reaches the office door",
            "stage_index": 5,
            "stage_label": "withdraw",
            "transition_to_next": "",
            "visual_focus": "Suriyoung gripping the note, holding the door handle, and looking back over her shoulder"
          }
        ],
        "flow_summary": "카메라는 혜수와 수리영을 따라 사무실 안으로 진입한 뒤 혜수의 책상에서 김형사의 빈 자리와 모니터로 이동한다. 위치 추적 결과와 수리영의 은밀한 메모를 가까이 관찰한 후, 그녀의 등 뒤를 따라 문까지 빠져나간다.",
        "scene_index": 21,
        "shot_assignments": [
          {
            "deviation_note": "",
            "flow_position": "start",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 6,
            "stage_index": 3
          },
          {
            "deviation_note": "",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 9,
            "stage_index": 5
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "static",
            "camera_position": "At waist height, approximately 6 meters to the side of Suriyoung and the bicycle, with a perpendicular view across the road",
            "stage_index": 1,
            "stage_label": "establishing",
            "transition_to_next": "As Suriyoung starts forward, the camera begins a parallel lateral track while maintaining the same side-on viewing axis.",
            "visual_focus": "Suriyoung taking control of the parked bicycle and beginning to move"
          },
          {
            "camera_motion": "track",
            "camera_position": "At waist height, approximately 5 meters beside Suriyoung, moving parallel to the bicycle and maintaining a full-body side view",
            "stage_index": 2,
            "stage_label": "acceleration",
            "transition_to_next": "",
            "visual_focus": "Suriyoung leaning over the bicycle and driving weight into the pedals while riding"
          }
        ],
        "flow_summary": "카메라는 도로 옆 측면 위치에서 수리영과 자전거의 출발을 잡은 뒤, 자전거가 움직이자 같은 측면 축을 유지하며 나란히 트래킹한다.",
        "scene_index": 22,
        "shot_assignments": [
          {
            "deviation_note": "",
            "flow_position": "mid",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 1,
            "stage_index": 2
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "dolly_in",
            "camera_position": "At seated eye level, about 1.2 meters in front of Suriyoung and slightly offset from the monitor, moving to 0.7 meters from the face",
            "stage_index": 1,
            "stage_label": "close_observation",
            "transition_to_next": "The camera lowers from face level and tracks toward the working hands beside the monitor.",
            "visual_focus": "Suriyoung's fixed gaze and tense face beyond the monitor"
          },
          {
            "camera_motion": "track",
            "camera_position": "At desk height, about 0.5 meters from Suriyoung's hands, continuing toward the backpack beside the workstation",
            "stage_index": 2,
            "stage_label": "task_follow",
            "transition_to_next": "",
            "visual_focus": "Suriyoung's hands folding the printed maps and placing them into the backpack"
          }
        ],
        "flow_summary": "카메라는 모니터 너머 수리영의 굳은 얼굴로 천천히 접근한 뒤, 시선을 낮춰 지도와 백팩을 다루는 손의 동선을 따라간다.",
        "scene_index": 23,
        "shot_assignments": [
          {
            "deviation_note": "",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 1,
            "stage_index": 1
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "track",
            "camera_position": "At rider height, several meters ahead and offset to the front side of Suriyeong, moving with her along the coastal road",
            "stage_index": 1,
            "stage_label": "pursuit_establishing",
            "transition_to_next": "The camera continues matching her forward speed while moving closer and rotating toward her frontal eyeline.",
            "visual_focus": "Suriyeong riding the bicycle through the heavy rain"
          },
          {
            "camera_motion": "track",
            "camera_position": "At Suriyeong's eye level, directly ahead of the moving bicycle at close-up distance, traveling backward at matching speed",
            "stage_index": 2,
            "stage_label": "close_observation",
            "transition_to_next": "",
            "visual_focus": "Suriyeong's rain-soaked face and determined eyes fixed forward"
          }
        ],
        "flow_summary": "카메라는 달리는 수리영의 전방 측면에서 속도를 맞춰 추적하다가, 주행선을 유지한 채 정면 가까이 파고든다. 마지막에는 눈높이 클로즈업으로 결연한 시선을 붙잡는다.",
        "scene_index": 24,
        "shot_assignments": [
          {
            "deviation_note": "",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 2,
            "stage_index": 2
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "track",
            "camera_position": "Low near a living-room corner, several meters from the open window and overturned chairs, moving forward just above the floor",
            "stage_index": 1,
            "stage_label": "establishing",
            "transition_to_next": "The camera rises to chest height while continuing forward, allowing Suriyoung to enter the line of sight toward her room.",
            "visual_focus": "The footprints crossing the disordered living room, the overturned chairs, and the open window"
          },
          {
            "camera_motion": "track",
            "camera_position": "At chest height one step behind and slightly to the side of Suriyoung as she crosses the living room toward her open bedroom door",
            "stage_index": 2,
            "stage_label": "approach",
            "transition_to_next": "The camera passes the bedroom threshold beside Suriyoung and turns its axis from her glance toward the marked wall.",
            "visual_focus": "Suriyoung's hurried breathing and her glance through the open bedroom door"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "Inside the bedroom doorway at eye level, aligned with the wall and advancing from medium distance to close range",
            "stage_index": 3,
            "stage_label": "reveal",
            "transition_to_next": "The forward move ends as the photograph fills the frame, followed by a direct cut into the time and place depicted in it.",
            "visual_focus": "The bloodstained photograph pinned at the center of the red circle, followed by Suriyoung's hand removing it"
          },
          {
            "camera_motion": "static",
            "camera_position": "At child eye height in front of the rural restaurant, far enough away to include the two seated girls and the roof",
            "stage_index": 4,
            "stage_label": "flashback",
            "transition_to_next": "Cut back from the remembered image to Suriyoung holding the photograph beside the bed.",
            "visual_focus": "The two young girls seated before the rural restaurant, including Suriyoung's mother as a child, and the round sign on the roof"
          },
          {
            "camera_motion": "pan",
            "camera_position": "At seated eye height beside the bed, a short distance from Suriyoung, with a view extending from her profile across the room",
            "stage_index": 5,
            "stage_label": "reaction",
            "transition_to_next": "As Suriyoung rises and takes the backpack, the camera pivots behind her and begins following her toward the entrance.",
            "visual_focus": "Suriyoung sinking onto the bed, then the disordered room as she looks around"
          },
          {
            "camera_motion": "track",
            "camera_position": "At upper-back height one step behind Suriyoung, following from the bedroom through the living room to the open entrance",
            "stage_index": 6,
            "stage_label": "withdraw",
            "transition_to_next": "",
            "visual_focus": "Suriyoung carrying the backpack and gripping the crumpled photograph as she steps outside"
          }
        ],
        "flow_summary": "카메라는 거실 바닥 가까이에서 침입 흔적을 따라 수리영의 방까지 전진한 뒤, 붉은 원과 사진으로 시선을 좁히고 사진 속 과거로 컷한다. 다시 현재의 침대 곁으로 돌아와 혼란스러운 방을 훑은 후, 사진을 쥔 수리영의 뒤를 따라 열린 현관 밖까지 이동한다.",
        "scene_index": 25,
        "shot_assignments": [
          {
            "deviation_note": "",
            "flow_position": "start",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 1,
            "stage_index": 1
          },
          {
            "deviation_note": "",
            "flow_position": "mid",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 3,
            "stage_index": 3
          },
          {
            "deviation_note": "",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 7,
            "stage_index": 6
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "static",
            "camera_position": "At waist height, approximately 7 meters behind and slightly to the side of Suriyeong, with enough distance to frame her full body against the sea",
            "stage_index": 1,
            "stage_label": "establishing",
            "transition_to_next": "Dolly forward toward Suriyeong, then lower the camera toward the ground beside her.",
            "visual_focus": "Suriyeong seated with her knees drawn up, watching the fog-covered sea"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "Near ground level beside Suriyeong, within close-up distance of the phone",
            "stage_index": 2,
            "stage_label": "close_observation",
            "transition_to_next": "Rise and pan away from the phone along Suriyeong's line of sight toward the approaching boat.",
            "visual_focus": "The phone beside Suriyeong and its missed-call notifications"
          },
          {
            "camera_motion": "pan",
            "camera_position": "At Suriyeong's seated eye level near the edge of the harbor, oriented from her position toward the open sea",
            "stage_index": 3,
            "stage_label": "reveal",
            "transition_to_next": "Continue the turn toward the docking point, then track alongside Suriyeong as she approaches the boat.",
            "visual_focus": "The boat emerging through the fog and Suriyeong reacting to its arrival"
          },
          {
            "camera_motion": "track",
            "camera_position": "At chest height beside the docking point, approximately 2.5 meters from Inwoo and angled toward his upper body on the boat",
            "stage_index": 4,
            "stage_label": "arrival",
            "transition_to_next": "Settle beside the boat, then cut across the conversation axis to include Suriyeong facing Inwoo.",
            "visual_focus": "Inwoo gripping the mooring line as Suriyeong reaches the boat"
          },
          {
            "camera_motion": "cut",
            "camera_position": "At standing eye level beside the boat, alternating between medium distances on the two sides of the conversation axis",
            "stage_index": 5,
            "stage_label": "exchange",
            "transition_to_next": "After Inwoo agrees, move behind Suriyeong and widen as she turns back toward the sea to record her message.",
            "visual_focus": "Suriyeong appealing to Inwoo and Inwoo considering her request"
          },
          {
            "camera_motion": "dolly_out",
            "camera_position": "At shoulder height behind Suriyeong, beginning within medium distance and retreating to include her and the sea",
            "stage_index": 6,
            "stage_label": "withdraw",
            "transition_to_next": "",
            "visual_focus": "Suriyeong facing the sea while leaving a voice message before departure"
          }
        ],
        "flow_summary": "카메라는 갯바위에 앉은 수리영의 전신에서 시작해 휴대폰으로 다가간 뒤, 그녀의 시선을 따라 바다와 다가오는 배를 드러낸다. 이후 수리영과 함께 배로 이동해 인우에게 닿고, 대화를 거쳐 마지막 음성메시지에서 다시 바다를 향해 물러난다.",
        "scene_index": 26,
        "shot_assignments": [
          {
            "deviation_note": "",
            "flow_position": "start",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 1,
            "stage_index": 1
          },
          {
            "deviation_note": "",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 3,
            "stage_index": 4
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "static",
            "camera_position": "At chest height approximately 1.5 meters in front of Hye-su, framed at a medium-close distance inside the living room",
            "stage_index": 1,
            "stage_label": "close_observation",
            "transition_to_next": "The camera begins a lateral track away from Hye-su while rotating its viewing axis toward Detective Kim.",
            "visual_focus": "Hye-su's upper body, widened eyes, and the phone held to her ear"
          },
          {
            "camera_motion": "track",
            "camera_position": "At face height, moving laterally from Hye-su's frontal axis to a position approximately 1.5 meters in front of Detective Kim",
            "stage_index": 2,
            "stage_label": "reaction",
            "transition_to_next": "From the position near Detective Kim, the camera pans away from both figures toward the entrance.",
            "visual_focus": "Detective Kim's face and his hand extending toward Hye-su"
          },
          {
            "camera_motion": "pan",
            "camera_position": "At eye level inside the living room, several meters from the entrance, with the camera body remaining near Detective Kim's side of the room",
            "stage_index": 3,
            "stage_label": "reveal",
            "transition_to_next": "",
            "visual_focus": "The entrance door moving inward and the living room visible beyond its edge"
          }
        ],
        "flow_summary": "카메라는 혜수의 불안한 상반신을 가까이 관찰한 뒤 옆으로 이동해 김형사의 반응을 받고, 같은 공간 안에서 현관문 쪽으로 시선을 돌려 문소리와 거실의 적막으로 마무리한다.",
        "scene_index": 27,
        "shot_assignments": [
          {
            "deviation_note": "",
            "flow_position": "start",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 1,
            "stage_index": 1
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "static",
            "camera_position": "On the deck at Su-ri-young's seated eye level, several meters from Su-ri-young and Inwoo, with both figures sharing the frame",
            "stage_index": 1,
            "stage_label": "establishing",
            "transition_to_next": "Dolly forward along the exchange axis toward Su-ri-young's extended hands.",
            "visual_focus": "Su-ri-young presenting the map to Inwoo"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "Between Su-ri-young and Inwoo at hand height, closing from arm's length to within thirty centimeters of the presented photograph",
            "stage_index": 2,
            "stage_label": "close_observation",
            "transition_to_next": "Arc laterally around the extended hands toward Inwoo's front quarter, widening enough to retain his face as he recoils.",
            "visual_focus": "Su-ri-young's hand, the worn bloodied photograph, and Inwoo's eyes beyond it"
          },
          {
            "camera_motion": "track",
            "camera_position": "At close conversational distance off Inwoo's front quarter, near his eye level, with Su-ri-young across the interaction axis",
            "stage_index": 3,
            "stage_label": "reaction",
            "transition_to_next": "Pivot with Inwoo's sudden rise, then fall in behind him as he moves toward the wheelhouse.",
            "visual_focus": "Inwoo's shaken reaction under Su-ri-young's fixed scrutiny"
          },
          {
            "camera_motion": "handheld",
            "camera_position": "One to two meters behind Inwoo at shoulder height, advancing from the deck toward and through the wheelhouse doorway",
            "stage_index": 4,
            "stage_label": "pursuit",
            "transition_to_next": "Follow Inwoo through the doorway, then shift to the side of the helm and lower toward the struggling arms.",
            "visual_focus": "Inwoo rushing into the wheelhouse with Su-ri-young pursuing"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "Inside the wheelhouse beside the helm at waist height, moving from an upper-body distance to within half a meter of the joined arms",
            "stage_index": 5,
            "stage_label": "physical_clash",
            "transition_to_next": "",
            "visual_focus": "Su-ri-young's hands locking around Inwoo's wrist as he grips the helm"
          }
        ],
        "flow_summary": "갑판의 지도 교환을 넓게 지켜보다가 사진과 인우의 시선 사이로 밀고 들어간다. 인우가 조타실로 돌진하는 순간 그 움직임을 따라 내부까지 진입한 뒤, 방향타를 둘러싼 두 사람의 팔목 싸움으로 좁혀 든다.",
        "scene_index": 28,
        "shot_assignments": [
          {
            "deviation_note": "",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 3,
            "stage_index": 2
          },
          {
            "deviation_note": "",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 9,
            "stage_index": 5
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "static",
            "camera_position": "At waist height beside the two figures, far enough away to frame both of them in full profile on opposite sides of the steering wheel",
            "stage_index": 1,
            "stage_label": "establishing_conflict",
            "transition_to_next": "Dolly inward from the side, narrowing the distance to the two figures while maintaining their shared axis across the steering wheel.",
            "visual_focus": "Su Riyeong pulling Inwoo's arm across the steering wheel"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "At chest height on the same side axis, moving from a medium two-shot toward alternating close observation of Inwoo and Su Riyeong",
            "stage_index": 2,
            "stage_label": "confrontation_approach",
            "transition_to_next": "Cut downward to the photograph held between them, landing close to Su Riyeong's pointing finger.",
            "visual_focus": "The escalating exchange between Inwoo and Su Riyeong"
          },
          {
            "camera_motion": "static",
            "camera_position": "Immediately above and slightly beside the photograph at hand height, close enough to isolate one child's face beneath Su Riyeong's fingertip",
            "stage_index": 3,
            "stage_label": "photo_reveal",
            "transition_to_next": "Cut upward to Inwoo at shoulder height, then move past his face toward what is visible beyond him inside the wheelhouse.",
            "visual_focus": "Su Riyeong's index finger pressing the child's face in the photograph"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "At Inwoo's shoulder height, beginning close to his face and advancing along his line of sight toward the overlapping circular forms visible beyond him",
            "stage_index": 4,
            "stage_label": "recognition_reveal",
            "transition_to_next": "Cut back to the side of the pair at face height as Su Riyeong loses consciousness and falls onto Inwoo's shoulder.",
            "visual_focus": "Inwoo's stunned recognition and the circular forms beyond his face"
          },
          {
            "camera_motion": "static",
            "camera_position": "At face height beside Inwoo, close to his profile with Su Riyeong's collapsed head and upper body resting on his shoulder within the frame",
            "stage_index": 5,
            "stage_label": "cold_reaction",
            "transition_to_next": "",
            "visual_focus": "Inwoo staring forward while Su Riyeong hangs motionless over his shoulder"
          }
        ],
        "flow_summary": "카메라는 방향타를 사이에 둔 두 사람의 측면 전신에서 시작해 대치가 격해질수록 가까워진 뒤, 사진 속 아이를 짚는 손가락으로 내려간다. 이후 인우의 얼굴 너머 원형들을 향해 시선을 밀어 넣었다가 측면으로 돌아와, 쓰러진 수리영을 어깨에 둔 인우의 차가운 표정에서 멈춘다.",
        "scene_index": 29,
        "shot_assignments": [
          {
            "deviation_note": "",
            "flow_position": "start",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 1,
            "stage_index": 1
          },
          {
            "deviation_note": "",
            "flow_position": "mid",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 5,
            "stage_index": 3
          },
          {
            "deviation_note": "Tighten the frame slightly around Inwoo's profile while retaining Su Riyeong's collapsed form on his shoulder.",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 12,
            "stage_index": 5
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "pan",
            "camera_position": "At a distant elevated position above the sea, facing the low horizon in a wide view",
            "stage_index": 1,
            "stage_label": "establishing",
            "transition_to_next": "Pan along the horizon toward the fog bank while moving into alignment with the fishing boat's direction of travel.",
            "visual_focus": "The low sun, its long reflection across the sea, and the horizon"
          },
          {
            "camera_motion": "track",
            "camera_position": "At a wide trailing angle above the sea, aligned behind the fishing boat's route and facing the fog bank",
            "stage_index": 2,
            "stage_label": "reveal",
            "transition_to_next": "Track forward and descend into a closer position directly behind the fishing boat without crossing its line of travel.",
            "visual_focus": "The broad fog bank ahead with the fishing boat approaching its boundary"
          },
          {
            "camera_motion": "track",
            "camera_position": "Directly behind the fishing boat at a moderately elevated height, close enough to hold the stern, wake, and partially obscured bow in the same frame",
            "stage_index": 3,
            "stage_label": "approach",
            "transition_to_next": "",
            "visual_focus": "The rear of the fishing boat, its long wake, and the bow entering the fog bank"
          }
        ],
        "flow_summary": "카메라는 낮은 해와 바다의 전경에서 수평선을 따라 안개 띠로 시선을 옮긴 뒤, 배의 진행축 뒤로 들어가 점차 낮고 가까워진다. 마지막에는 배를 후방 추적하며 뱃머리가 안개 속으로 들어가는 순간을 포착한다.",
        "scene_index": 30,
        "shot_assignments": [
          {
            "deviation_note": "",
            "flow_position": "mid",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 3,
            "stage_index": 3
          }
        ]
      }
    ]
  },
  "step_id": "scene_camera_flow",
  "run_id": "6a1709d7-d555-4938-acfe-05a4d07b7b44",
  "resolved_model": "gpt",
  "updated_at": "2026-07-23T11:28:14.433522+00:00",
  "schema_version": 1,
  "config_hash": "99914b932bd37a50",
  "project_config_snapshot": {}
}