{
  "status": "completed",
  "completed_count": 16,
  "applicable_count": 16,
  "failed_count": 0,
  "data": {
    "scenes": [
      {
        "flow_stages": [
          {
            "camera_motion": "static",
            "camera_position": "Underwater at seabed level, several meters back from the trash field, lens held low and level facing the dark blue ocean floor",
            "stage_index": 1,
            "stage_label": "establishing",
            "transition_to_next": "The camera begins a slow forward glide from the wide seabed view, following the small movement of a fish toward a particular mound of debris.",
            "visual_focus": "the broad underwater trash field and drifting fish"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "Underwater, low between pieces of debris, moving from a medium distance to a tight distance within inches of the trash mound",
            "stage_index": 2,
            "stage_label": "approach_close_observation",
            "transition_to_next": "After reaching the exposed robot finger, the camera holds close for the fish's touch, then tilts upward as vibration, bubbles, and falling silt enter from above.",
            "visual_focus": "the rusted robot finger protruding from the trash pile"
          },
          {
            "camera_motion": "tilt",
            "camera_position": "Underwater beside the same trash mound, close to the robot finger, lens tilting from the seabed upward toward the disturbed water column",
            "stage_index": 3,
            "stage_label": "disturbance_reveal",
            "transition_to_next": "The camera follows the downward force back toward the mound, drifting slightly aside to avoid the descending crane claw while keeping the buried finger area in frame.",
            "visual_focus": "the sudden bubbles, mud clouds, and the descending crane claw above the trash pile"
          },
          {
            "camera_motion": "handheld",
            "camera_position": "Underwater at close range beside the trash mound, slightly below the crane claw's jaws, lens angled upward and inward toward the point of impact",
            "stage_index": 4,
            "stage_label": "impact_grab",
            "transition_to_next": "",
            "visual_focus": "the crane claw clamping shut around the trash pile that contains the robot finger"
          }
        ],
        "flow_summary": "카메라는 바닷바닥의 쓰레기 더미를 넓게 바라보다가 물고기의 호기심을 따라 로봇 손가락까지 낮게 접근한다. 손가락 가까이에서 위쪽 굉음과 기포를 따라 시선을 들어 올린 뒤, 다시 더미 곁으로 밀려나며 하강한 크레인 집게가 쓰레기 더미를 움켜쥐는 순간에 도달한다.",
        "scene_index": 1,
        "shot_assignments": [
          {
            "deviation_note": "Tighten the end of the dolly into an extreme close-up so the rust texture and the fingertip emerging from the debris dominate the frame.",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 2,
            "stage_index": 2
          },
          {
            "deviation_note": "Let the handheld turbulence settle just enough to clearly read the claw fully closed around the mound, with the robot finger's location implied inside the crushed debris.",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 7,
            "stage_index": 4
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "track",
            "camera_position": "Low over the water directly ahead of the collection ship's bow, at debris level, about 20 meters from the hull and facing backward toward the approaching ship",
            "stage_index": 1,
            "stage_label": "establishing_advance",
            "transition_to_next": "The camera rises and slides backward along the bow line, letting the ship overtake the frame as the viewpoint climbs toward the deck.",
            "visual_focus": "the massive bow pushing through floating wreckage and split ship debris"
          },
          {
            "camera_motion": "crane",
            "camera_position": "Above the forward bow rail, high enough to look down onto the metal deck, drifting inward from the ship's front edge",
            "stage_index": 2,
            "stage_label": "deck_reveal",
            "transition_to_next": "The crane move settles onto deck height and continues laterally across the trash landing area.",
            "visual_focus": "loose debris and broken wreckage dropping toward the collection ship's deck"
          },
          {
            "camera_motion": "track",
            "camera_position": "On the wet metal deck at waist height, moving sideways along the edge of a large mound of mixed trash",
            "stage_index": 3,
            "stage_label": "trash_field_scan",
            "transition_to_next": "The camera slows, then pushes closer into the trash pile as a netted shape becomes distinguishable among the debris.",
            "visual_focus": "the accumulated heap of wet trash spread across the deck"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "On the deck beside the trash mound, low and close, about 2 meters from the net-wrapped scrap robot and angled slightly downward",
            "stage_index": 4,
            "stage_label": "close_observation",
            "transition_to_next": "",
            "visual_focus": "the full body of the scrap robot lying motionless inside a thick net on top of the trash"
          }
        ],
        "flow_summary": "카메라는 수면의 잔해 사이에서 거대한 수거선의 뱃머리를 맞이한 뒤, 선체를 타고 갑판 위로 올라가 쓰레기 더미를 훑는다. 마지막에는 더미 속에서 그물에 감긴 고철 로봇을 발견하며 낮고 가까운 관찰 위치로 수렴한다.",
        "scene_index": 2,
        "shot_assignments": [
          {
            "deviation_note": "Hold the lens very low so the bow impact sends water and debris outward across the foreground.",
            "flow_position": "start",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 1,
            "stage_index": 1
          },
          {
            "deviation_note": "Tighten the end of the dolly-in into a full-body framing, keeping the robot entirely visible within the surrounding trash and net.",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 4,
            "stage_index": 4
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "track",
            "camera_position": "Outside the moving dump truck, road-side at mid-height, about 12 feet from the cargo bed, moving parallel with the vehicle",
            "stage_index": 1,
            "stage_label": "establishing",
            "transition_to_next": "Cut forward into the truck cab, preserving the direction of travel and engine rhythm.",
            "visual_focus": "the dump truck carrying a heavy load of scrap metal along the road"
          },
          {
            "camera_motion": "static",
            "camera_position": "Inside the cab, dashboard-level and slightly off-center toward the passenger side, medium distance from the driver",
            "stage_index": 2,
            "stage_label": "driver_observation",
            "transition_to_next": "Cut from the enclosed cab space to the open cargo bed, motivated by the continuing radio news and the truck's movement.",
            "visual_focus": "the drowsy dump truck driver in the driver's seat with the radio news playing"
          },
          {
            "camera_motion": "handheld",
            "camera_position": "Inside the cargo bed near the rear corner, low among the scrap metal, lens about 2 feet above the truck floor",
            "stage_index": 3,
            "stage_label": "cargo_search",
            "transition_to_next": "The camera pushes deeper through the scrap pile, lowering slightly and narrowing attention toward a buried shape.",
            "visual_focus": "jagged scrap metal shifting subtly with the vibration of the moving truck"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "Deep inside the cargo bed, extremely low and close to the scrap pile, within arm's length of the buried robot face",
            "stage_index": 4,
            "stage_label": "close_observation",
            "transition_to_next": "",
            "visual_focus": "the worn face of a robot wedged deep among rough scrap metal"
          }
        ],
        "flow_summary": "카메라는 달리는 덤프트럭의 외부를 따라가며 이동감을 만든 뒤, 운전석을 거쳐 적재함 안쪽으로 논리적으로 진입한다. 마지막에는 고철 더미 속으로 밀고 들어가며 로봇의 낡은 얼굴을 발견하는 흐름으로 좁혀진다.",
        "scene_index": 3,
        "shot_assignments": [
          {
            "deviation_note": "Hold the push-in at its closest point so the robot face fills the attention while surrounding scrap remains tight and oppressive.",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 3,
            "stage_index": 4
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "static",
            "camera_position": "Outside on the opposite curb, eye-level, wide distance from the parked old car with the upscale residential street and city buildings behind it",
            "stage_index": 1,
            "stage_label": "establishing",
            "transition_to_next": "Hard cut through the windshield into the front cabin, changing from the exterior street view to an intimate interior angle.",
            "visual_focus": "the parked car in the upscale neighborhood"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "Inside the car, low between the dashboard and the front passenger seat, slightly favoring the passenger side at chest height and close distance",
            "stage_index": 2,
            "stage_label": "interior_observation",
            "transition_to_next": "The camera eases toward the passenger door line, following Hyunwoo's movement as he prepares to get out.",
            "visual_focus": "Hyunwoo studying the badly crumpled paper map in his hands"
          },
          {
            "camera_motion": "track",
            "camera_position": "Just outside the open passenger door, hip-to-chest height, moving parallel with Hyunwoo as he steps away from the car toward the house across the street",
            "stage_index": 3,
            "stage_label": "departure_follow",
            "transition_to_next": "Cut back into the car from Hyunwoo's direction of travel to Pedro's position in the driver's seat, preserving the earpiece communication as the link.",
            "visual_focus": "Hyunwoo leaving the car and touching his ear while approaching the upscale house"
          },
          {
            "camera_motion": "static",
            "camera_position": "Inside the car from the front passenger side, eye-level and close-medium distance, angled across the center console toward the driver's seat",
            "stage_index": 4,
            "stage_label": "reaction_check",
            "transition_to_next": "",
            "visual_focus": "Pedro pressing the earbud in his ear while looking forward"
          }
        ],
        "flow_summary": "카메라는 고급주택가에 정차한 차를 바깥에서 확인한 뒤 차 안으로 들어가 현우의 도면 확인을 좁혀 본다. 이후 현우의 하차와 이동을 따라가다가, 이어폰 통신을 매개로 다시 차 안의 페드로에게 컷백한다.",
        "scene_index": 4,
        "shot_assignments": [
          {
            "deviation_note": "Frame tighter than the stage default so the crumpled map dominates the lower foreground while Hyunwoo's concentrated face remains visible above it.",
            "flow_position": "mid",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 3,
            "stage_index": 2
          },
          {
            "deviation_note": "Hold steadier and slightly more frontal than the stage angle, emphasizing Pedro's finger pressing the earbud and his forward stare.",
            "flow_position": "mid",
            "inherits": [
              "camera_position",
              "visual_focus"
            ],
            "shot_index": 6,
            "stage_index": 4
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "track",
            "camera_position": "Outside the property wall at shoulder height, then gliding over the wall line into the front garden, keeping a medium-wide distance from the house facade",
            "stage_index": 1,
            "stage_label": "establishing_intrusion",
            "transition_to_next": "The camera tracks with Hyunwoo along the garden edge toward the front entrance, lowering slightly as he tries to stay hidden.",
            "visual_focus": "Hyunwoo entering the property and the large glass living-room window beyond him"
          },
          {
            "camera_motion": "track",
            "camera_position": "Near the front door at chest height, tight to the wall and angled toward the old lock, with the living-room glass visible off to the side",
            "stage_index": 2,
            "stage_label": "blocked_entry",
            "transition_to_next": "After the failed entry, the camera follows Hyunwoo laterally away from the door and around the corner toward the glass window.",
            "visual_focus": "Hyunwoo discovering the outdated lock and reacting in frustration"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "Outside the living-room glass at low waist height, close to the exterior floor where the phone is placed, looking through the pane into the room",
            "stage_index": 3,
            "stage_label": "phone_lure",
            "transition_to_next": "As the woman answers the phone and collapses, the camera slips through the open window line into the living room and drops toward floor level.",
            "visual_focus": "The phone on the ground, the woman approaching the glass, and Hyunwoo hidden at the corner"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "Inside the living room at floor level, very close to the fallen woman's head, slightly off to the side so the dog attack and damaged face fill the foreground",
            "stage_index": 4,
            "stage_label": "robot_reveal",
            "transition_to_next": "A hard cut breaks the floor-level reveal and jumps to the staircase as the siren begins and Hyunwoo flees upward.",
            "visual_focus": "The woman's torn face revealing a silver metallic structure beneath the skin"
          },
          {
            "camera_motion": "handheld",
            "camera_position": "On the staircase at hip-to-chest height, moving upward behind and beside Hyunwoo with unstable urgency",
            "stage_index": 5,
            "stage_label": "upstairs_escape",
            "transition_to_next": "The handheld camera crests the stairs and cuts into the upstairs bedroom/window area as Hyunwoo searches for an exit.",
            "visual_focus": "Hyunwoo racing upstairs while the dog follows him"
          },
          {
            "camera_motion": "handheld",
            "camera_position": "At the second-floor window, just inside the room at shoulder height, then leaning out toward the exterior drop",
            "stage_index": 6,
            "stage_label": "window_escape",
            "transition_to_next": "The camera follows the fall direction downward in a rapid tilt and cuts to ground level for the landing.",
            "visual_focus": "Hyunwoo at the open second-floor window, the dog biting his leg, and the desperate jump outside"
          },
          {
            "camera_motion": "dolly_out",
            "camera_position": "Ground level outside the house, initially close in front of Hyunwoo after his landing, then pulling back to reveal the street and armed police forming a semicircle around him",
            "stage_index": 7,
            "stage_label": "capture_reveal",
            "transition_to_next": "",
            "visual_focus": "Hyunwoo standing in the driveway area as police aim their pistols at him"
          }
        ],
        "flow_summary": "카메라는 담장 밖에서 시작해 현우의 침입 동선을 따라 현관과 거실 유리창으로 접근하고, 집 안 바닥의 로봇 정체 폭로 지점까지 낮게 파고든다. 이후 사이렌과 함께 핸드헬드로 계단과 2층 창문 탈출을 따라가다가, 지면에서 뒤로 빠지며 경찰 포위망을 드러낸다.",
        "scene_index": 5,
        "shot_assignments": [
          {
            "deviation_note": "Tighten the stage into an extreme head close-up, holding the torn face and exposed silver metal as the primary frame instead of including the full dog action.",
            "flow_position": "mid",
            "inherits": [
              "camera_position",
              "visual_focus"
            ],
            "shot_index": 17,
            "stage_index": 4
          },
          {
            "deviation_note": "Widen the pullback enough to show the police arranged in a clear semicircle around Hyunwoo, with their pistols aimed inward toward him.",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 28,
            "stage_index": 7
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "dolly_out",
            "camera_position": "Low frontal position just inside the settlement entrance, about 1 meter above the muddy road and 6 meters ahead of the incoming dump truck",
            "stage_index": 1,
            "stage_label": "establishing",
            "transition_to_next": "As the truck passes the camera, the movement hands off into a lateral tracking path down the main muddy lane.",
            "visual_focus": "the dump truck entering beneath the refugee residential area sign"
          },
          {
            "camera_motion": "track",
            "camera_position": "Moving laterally along the main lane at child height, 1.2 meters above the ground and several meters off the truck's path",
            "stage_index": 2,
            "stage_label": "street_survey",
            "transition_to_next": "The camera continues tracking forward, then pans toward a louder roadside argument as the truck approaches it.",
            "visual_focus": "children playing on the dirt ground, old buildings, tangled overhead wires and clotheslines"
          },
          {
            "camera_motion": "pan",
            "camera_position": "Roadside waist-high position, about 3 meters from the vendor stall and slightly ahead of the approaching truck",
            "stage_index": 3,
            "stage_label": "conflict_build",
            "transition_to_next": "The pan follows the truck's motion through the puddle and resolves into a tighter reaction angle on the woman at the roadside.",
            "visual_focus": "the arguing market woman and drunk man as the dump truck splashes mud between them"
          },
          {
            "camera_motion": "handheld",
            "camera_position": "Tight head-height position on the roadside, less than 1 meter from the market woman, angled slightly upward with the passing truck just off-frame",
            "stage_index": 4,
            "stage_label": "close_reaction",
            "transition_to_next": "A hard cut, motivated by the woman's line of anger toward the truck, jumps to the moving cab-side mirror.",
            "visual_focus": "the market woman's distorted yelling face and outstretched arm toward the passing dump truck"
          },
          {
            "camera_motion": "track",
            "camera_position": "Mounted just outside the driver's door at side-mirror height, about 50 centimeters from the mirror while traveling with the dump truck",
            "stage_index": 5,
            "stage_label": "mirror_reveal",
            "transition_to_next": "",
            "visual_focus": "the dump truck driver's smirking mouth reflected in the side mirror"
          }
        ],
        "flow_summary": "카메라는 덤프트럭의 진입을 따라 난민촌의 진흙길을 훑고, 거리의 소란과 흙탕물 충돌을 거쳐 아줌마의 분노한 반응으로 바짝 다가간다. 마지막에는 트럭과 함께 움직이는 사이드미러 시점으로 논리적 컷해 운전사의 비웃음을 드러낸다.",
        "scene_index": 6,
        "shot_assignments": [
          {
            "deviation_note": "Frame the yelling face more aggressively than the stage default, allowing the outstretched arm to cut across the foreground as the truck passes off-frame.",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 6,
            "stage_index": 4
          },
          {
            "deviation_note": "Tighten the focus to the side mirror reflection so the driver's raised mouth corner becomes the dominant detail, with the moving settlement reduced to peripheral blur.",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 8,
            "stage_index": 5
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "crane",
            "camera_position": "High wide position above the dumping area, about 25 feet up and 40 feet from the trash mound, looking across the dump from the truck side",
            "stage_index": 1,
            "stage_label": "establishing",
            "transition_to_next": "The camera cranes down and begins moving forward toward the trash mound where the children emerge.",
            "visual_focus": "the vast landfill, falling debris, smoke columns, and the receding dump truck"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "Waist-high at the edge of a crushed metal trash pile, about 8 feet from Amber, angled three-quarters toward her upper body",
            "stage_index": 2,
            "stage_label": "approach_to_amber",
            "transition_to_next": "The camera eases past Amber and pans right, following Raul's call across the uneven trash field.",
            "visual_focus": "Amber surfacing from the trash and lifting the damaged silver scrap robot arm"
          },
          {
            "camera_motion": "track",
            "camera_position": "Shoulder-height lateral position between Amber's trash pile and Raul's direction, moving parallel to Amber's path across the dump",
            "stage_index": 3,
            "stage_label": "guided_transition",
            "transition_to_next": "The track continues behind Amber as she approaches Raul's discovery, ending over her shoulder at the jukebox.",
            "visual_focus": "Raul beckoning and Amber moving toward him through the trash"
          },
          {
            "camera_motion": "static",
            "camera_position": "Low shoulder-height position directly behind Amber, about 4 feet back, facing the broken front of the jukebox from slightly below its centerline",
            "stage_index": 4,
            "stage_label": "reveal_jukebox",
            "transition_to_next": "",
            "visual_focus": "Amber's back silhouette against the cracked glass front panel of the old jukebox"
          }
        ],
        "flow_summary": "카메라는 쓰레기장의 높은 와이드에서 시작해 쓰레기 더미 속 아이들에게 내려오고, 앰버의 발견을 지나 라울의 손짓을 따라 옆으로 이동한다. 마지막에는 앰버 뒤로 붙어 낡은 주크박스를 올려다보는 시선으로 멈춘다.",
        "scene_index": 7,
        "shot_assignments": [
          {
            "deviation_note": "Tighten the framing to a medium view so the crushed silver robot arm held at shoulder height dominates Amber's upper-body line.",
            "flow_position": "mid",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 6,
            "stage_index": 2
          },
          {
            "deviation_note": "Hold slightly lower than Amber's shoulder line to emphasize her looking up at the broken glass front panel.",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 10,
            "stage_index": 4
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "pan",
            "camera_position": "Low ground-level wide position beside the broken jukebox blanket, about 3 feet high and 10 feet from Amber and Raul, looking across the scattered tools toward the surrounding trash mounds",
            "stage_index": 1,
            "stage_label": "establishing",
            "transition_to_next": "The camera pans with the children's attention as the music and the sudden noise pull the gaze away from the jukebox toward the buried metal movement in the trash pile.",
            "visual_focus": "the broken jukebox setup, Amber and Raul working among the trash"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "Low frontal position at the foot of the trash mound, about 4 feet high and 15 feet from the emerging robot, with Amber and Raul lower in the foreground plane",
            "stage_index": 2,
            "stage_label": "reveal",
            "transition_to_next": "The camera continues pushing closer and slightly lowers its angle, letting Charlie's size dominate the frame before sliding toward the space between him and the children.",
            "visual_focus": "Charlie half-buried in the trash mound as his gorilla-like upper body emerges"
          },
          {
            "camera_motion": "track",
            "camera_position": "Very low position near Charlie's feet, about 2 feet high and 6 feet from Amber, tracking laterally as Amber steps closer and looks upward",
            "stage_index": 3,
            "stage_label": "approach",
            "transition_to_next": "The camera arcs around Amber's side toward Charlie's torso, tightening from the scale reveal into the intimate point where the robot recognizes her.",
            "visual_focus": "Amber approaching Charlie while Raul remains back in fear"
          },
          {
            "camera_motion": "static",
            "camera_position": "Tight mid-height position beside Amber, about chest height and 3 feet away, framed between Charlie's massive arms and Amber's upper body",
            "stage_index": 4,
            "stage_label": "close_observation",
            "transition_to_next": "After the embrace freezes, the camera eases back into a looser group distance as Charlie releases Amber and the children begin testing his reactions.",
            "visual_focus": "Charlie holding Amber in a sudden protective embrace"
          },
          {
            "camera_motion": "track",
            "camera_position": "Medium group position circling the jukebox area, about 5 feet high and 8 feet from Charlie, Amber, and Raul, with the trash clearing visible around them",
            "stage_index": 5,
            "stage_label": "interaction",
            "transition_to_next": "A hard cut jumps forward in time to the completed concealment plan, placing the camera behind Charlie as the approaching youths pass nearby.",
            "visual_focus": "Charlie reacting to Amber, Raul, and the jukebox music"
          },
          {
            "camera_motion": "track",
            "camera_position": "Rear medium-long position behind Charlie at shoulder height, about 12 feet back on the trash-lot path, moving with him as the youths remain off to the side",
            "stage_index": 6,
            "stage_label": "disguise_escape",
            "transition_to_next": "",
            "visual_focus": "Charlie's bulky back silhouette as he passes unnoticed and the group moves away toward the settlement"
          }
        ],
        "flow_summary": "카메라는 주크박스가 놓인 낮은 공터에서 아이들의 시선을 따라 쓰레기 더미로 이동해 찰리의 등장을 크게 드러낸 뒤, 앰버와 찰리 사이로 좁혀져 포옹과 교감을 관찰한다. 이후 시간 점프 컷으로 위장한 찰리의 뒤쪽에 붙어 위험한 무리를 지나 난민촌 방향으로 빠져나가는 흐름으로 이어진다.",
        "scene_index": 8,
        "shot_assignments": [
          {
            "deviation_note": "Hold the dolly-in at its closest point so Charlie's upper body is frozen halfway out of the trash, emphasizing the first full reveal rather than the eruption itself.",
            "flow_position": "mid",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 12,
            "stage_index": 2
          },
          {
            "deviation_note": "Shift slightly closer than the stage default, cropping out most of the surroundings so the frame is dominated by Charlie's two arms locked around Amber.",
            "flow_position": "start",
            "inherits": [
              "camera_position",
              "visual_focus"
            ],
            "shot_index": 17,
            "stage_index": 4
          },
          {
            "deviation_note": "Begin the tracking move from a still rear view, holding Charlie's disguised bulky silhouette before the camera follows the group away.",
            "flow_position": "start",
            "inherits": [
              "camera_position",
              "visual_focus"
            ],
            "shot_index": 29,
            "stage_index": 6
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "static",
            "camera_position": "Wide position on a slightly raised muddy embankment, about 25 meters from the cracked concrete wall and 18 meters from the forklift, at human eye height looking across the repair site",
            "stage_index": 1,
            "stage_label": "establishing",
            "transition_to_next": "The camera begins to track laterally toward the access road as the military truck enters the repair area, keeping the dam wall as background reference.",
            "visual_focus": "the cracked dam wall, the repair workers, Miyeon operating the forklift, and the scattered construction materials"
          },
          {
            "camera_motion": "track",
            "camera_position": "Ground-level three-quarter position near the forklift lane, about 5 meters in front of the arriving military truck, lens height around 1.2 meters",
            "stage_index": 2,
            "stage_label": "arrival",
            "transition_to_next": "The camera slides around the truck's front corner and pushes closer to the manager as the megaphone is handed to him.",
            "visual_focus": "the military truck stopping in front of the forklift, the manager stepping down, guards spreading out, and the crowd turning toward him"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "Tight frontal position directly in front of the manager, about 1 meter from his face, at eye level, with the truck behind him",
            "stage_index": 3,
            "stage_label": "announcement",
            "transition_to_next": "As the crowd advances, the camera backs away and pans with the pressure of the semicircle, shifting its attention from the manager to Miyeon moving into his path.",
            "visual_focus": "the manager raising the metal megaphone to his mouth and addressing the workers"
          },
          {
            "camera_motion": "handheld",
            "camera_position": "Shoulder-height position inside the tense semicircle, slightly off the manager's front-left side, about 2 meters from Miyeon and 3 meters from the truck door",
            "stage_index": 4,
            "stage_label": "confrontation",
            "transition_to_next": "The camera is jostled sideways with the surge of guards and refugees, then drops its angle toward the mud as a refugee man is forced down.",
            "visual_focus": "Miyeon blocking the manager, confronting him with the crowd and guards pressing in around them"
          },
          {
            "camera_motion": "handheld",
            "camera_position": "Low knee-height position on the muddy ground, about 2 meters from the fallen refugee man, angled slightly downward along his body toward the surrounding feet",
            "stage_index": 5,
            "stage_label": "suppression",
            "transition_to_next": "",
            "visual_focus": "the refugee man lying face-down in the mud after being violently subdued"
          }
        ],
        "flow_summary": "카메라는 금이 간 제방과 보수 현장을 넓게 잡은 뒤, 군용 트럭의 진입을 따라 현장 중심부로 이동하고 관리소장의 발표로 밀착한다. 이후 군중의 압박 속에서 미연의 저지선으로 흔들리듯 이동하다가, 충돌이 폭발하는 순간 낮게 떨어져 진흙에 쓰러진 난민 남성을 포착한다.",
        "scene_index": 9,
        "shot_assignments": [
          {
            "deviation_note": "Frame tighter than the stage default, isolating the manager's frontal face and the metal megaphone pressed close to his mouth.",
            "flow_position": "mid",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 9,
            "stage_index": 3
          },
          {
            "deviation_note": "Shift the handheld framing slightly wider and lower to include Miyeon's full upper body, both arms spread wide, with the manager blocked behind her line of action.",
            "flow_position": "mid",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 18,
            "stage_index": 4
          },
          {
            "deviation_note": "Hold a full-body composition from the low muddy angle, emphasizing the refugee man's face completely pressed into the ground.",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 20,
            "stage_index": 5
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "static",
            "camera_position": "At the tribunal room entrance, eye level, medium-wide distance on the center axis, facing inward toward the holding area and the rough table beyond",
            "stage_index": 1,
            "stage_label": "establishing",
            "transition_to_next": "The camera begins a slow dolly forward along the center aisle, narrowing the space between Hyunwoo and the judge's table.",
            "visual_focus": "Hyunwoo held upright by two policemen in the dim, worn tribunal room"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "Mid-room on the center axis, chest height, closing from a medium-wide view to a medium distance between Hyunwoo and the judge's table",
            "stage_index": 2,
            "stage_label": "interrogation_approach",
            "transition_to_next": "As the verdict lands, the camera shifts into a rough handheld track, following Hyunwoo's sudden forward burst toward the table.",
            "visual_focus": "The pressure line between the weakened Hyunwoo, the policemen restraining him, and the bored judge behind the table"
          },
          {
            "camera_motion": "handheld",
            "camera_position": "Beside the front edge of the table, shoulder height, moving laterally and forward with unstable energy as the struggle breaks the room's order",
            "stage_index": 3,
            "stage_label": "eruption",
            "transition_to_next": "The camera drops with the collapse behind the table, lowering toward the floor beside the fallen judge without cutting.",
            "visual_focus": "Hyunwoo breaking free, the policemen pulling back, and the judge falling away from the table"
          },
          {
            "camera_motion": "track",
            "camera_position": "Low on the floor beside the overturned judge, about knee height, tight distance from the judge's torso and Hyunwoo's upper body",
            "stage_index": 4,
            "stage_label": "close_observation",
            "transition_to_next": "When the baton strike cuts through the frame, the camera tilts and sinks toward the floor line, letting Hyunwoo fall out of the attack into the foreground.",
            "visual_focus": "Hyunwoo pinning the judge down and gripping the judge's collar with both hands"
          },
          {
            "camera_motion": "tilt",
            "camera_position": "Floor level beside Hyunwoo's face, very close distance, angled slightly across the dirty tribunal floor toward the table legs in the background",
            "stage_index": 5,
            "stage_label": "collapse",
            "transition_to_next": "",
            "visual_focus": "Hyunwoo unconscious on the tribunal floor"
          }
        ],
        "flow_summary": "카메라는 재판소 입구 쪽 정면에서 현우가 끌려 들어온 상태를 포착한 뒤, 중앙 통로를 따라 재판관의 탁자까지 압박하듯 접근한다. 판결 이후에는 현우의 돌발적인 돌진을 따라 흔들리며 탁자 뒤로 낮아지고, 마지막에는 바닥 높이로 떨어져 기절한 현우에게 멈춘다.",
        "scene_index": 10,
        "shot_assignments": [
          {
            "deviation_note": "정면 구도를 유지하되 현우의 고개가 숙여져 있어 재판소의 어둡고 허름한 공간감이 함께 드러나도록 약간 넓게 잡는다.",
            "flow_position": "start",
            "inherits": [
              "camera_position",
              "visual_focus"
            ],
            "shot_index": 1,
            "stage_index": 1
          },
          {
            "deviation_note": "기본 저각 위치에서 더 가까이 붙어 재판관의 가슴 위에 멈춘 현우의 양손과 멱살을 화면 중심에 둔다.",
            "flow_position": "mid",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 11,
            "stage_index": 4
          },
          {
            "deviation_note": "카메라를 완전히 바닥 높이까지 낮추고 현우의 감긴 눈과 바닥에 닿은 뺨을 최우선 초점으로 둔다.",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "visual_focus"
            ],
            "shot_index": 13,
            "stage_index": 5
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "handheld",
            "camera_position": "At street level in the dark urban road, about chest height and several meters from the violent crowd, looking through flashes and moving bodies",
            "stage_index": 1,
            "stage_label": "nightmare_establishing",
            "transition_to_next": "A stuttering hard cut drops the camera from the open street into the narrower back alley, preserving the same monochrome nightmare rhythm.",
            "visual_focus": "masked attackers, muzzle flashes, and panicked people in the street"
          },
          {
            "camera_motion": "track",
            "camera_position": "Low at the mouth of the back alley, about knee-to-waist height, moving slowly along the line of kneeling people from a distance of several meters",
            "stage_index": 2,
            "stage_label": "alley_approach",
            "transition_to_next": "The track narrows into a forward dolly, leaving the larger group behind and settling directly in front of Miyeon with Hyunwoo and Amber.",
            "visual_focus": "the kneeling group frozen on the alley floor"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "Low frontal position directly in front of Miyeon, roughly at her seated eye level, within close range of her and the two children",
            "stage_index": 3,
            "stage_label": "close_observation",
            "transition_to_next": "The camera slides laterally past Miyeon's face line and reorients to the side of the standing masked man, turning the threat into a profile silhouette.",
            "visual_focus": "Miyeon clutching Hyunwoo and Amber on the ground"
          },
          {
            "camera_motion": "track",
            "camera_position": "Side-on position beside the standing masked man, around chest height, close enough that the handgun forms a straight line toward Miyeon's forehead",
            "stage_index": 4,
            "stage_label": "threat_reveal",
            "transition_to_next": "A jagged impact-like cut breaks the held side profile and throws the camera toward the sudden intervention entering the frame.",
            "visual_focus": "the masked man aiming a handgun at Miyeon's forehead"
          },
          {
            "camera_motion": "cut",
            "camera_position": "Offset low angle near the ground beside the struggle zone, closer to the bodies than to the kneeling group",
            "stage_index": 5,
            "stage_label": "interruption",
            "transition_to_next": "",
            "visual_focus": "the sudden collision and the next gunshot erupting over the fallen figures"
          }
        ],
        "flow_summary": "카메라는 거리의 악몽 같은 폭력에서 뒷골목으로 끊기듯 진입한 뒤, 무릎 꿇은 사람들 사이를 따라 미연과 아이들 앞으로 좁혀 들어간다. 이어 미연의 정면 클로즈에서 옆으로 미끄러져 총구를 든 복면 남성을 드러내며, 다음 충돌로 넘어갈 긴장을 만든다.",
        "scene_index": 11,
        "shot_assignments": [
          {
            "deviation_note": "Hold the image in a stuttering freeze-frame feeling, centered on Miyeon's tightly shut eyes and the curved backs of Hyunwoo and Amber under her arms.",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 4,
            "stage_index": 3
          },
          {
            "deviation_note": "Stop the lateral move into a rigid side profile so the handgun barrel points cleanly toward Miyeon's forehead, emphasizing the frozen threat.",
            "flow_position": "mid",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 5,
            "stage_index": 4
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "static",
            "camera_position": "Wide street-level position outside the old tribunal building, about 20 meters from the massive trash heaps, lens held at human eye height and facing the building facade across the ruined foreground.",
            "stage_index": 1,
            "stage_label": "establishing",
            "transition_to_next": "The camera leaves the locked-off wide frame and begins a slow ground-level track forward through the trash heaps toward the place where Hyunwoo is waking.",
            "visual_focus": "the silent exterior of the tribunal building and the surrounding mountains of trash at night"
          },
          {
            "camera_motion": "track",
            "camera_position": "Moving low between trash piles, 8 to 12 meters from Hyunwoo, gradually shifting from the building-backed landscape toward his position on the ground.",
            "stage_index": 2,
            "stage_label": "approach",
            "transition_to_next": "As Hyunwoo rises, the camera closes the distance and climbs slightly to waist height, settling nearer to his hands as he searches his pocket.",
            "visual_focus": "Hyunwoo staggering up among the trash while the ruined exterior remains behind him"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "Close waist-level position beside Hyunwoo, within 1 meter of his body, angled down toward his hands and the object he pulls from his pocket.",
            "stage_index": 3,
            "stage_label": "close_observation",
            "transition_to_next": "The camera continues its inward movement and tilts down into the opened wallet until the frame becomes an insert close-up of the identification card.",
            "visual_focus": "Hyunwoo opening the worn leather wallet and looking down into it"
          },
          {
            "camera_motion": "static",
            "camera_position": "Extreme close-up position directly above the opened leather wallet, only a few inches from the inner card slot, held steady to read the identification clearly.",
            "stage_index": 4,
            "stage_label": "reveal",
            "transition_to_next": "",
            "visual_focus": "the judge identification card inside the open wallet, with the face photo clearly visible"
          }
        ],
        "flow_summary": "카메라는 재판소 외벽과 쓰레기 더미를 멀리서 정적으로 보여준 뒤, 쓰레기 사이로 현우에게 접근해 그의 손과 지갑으로 점점 좁혀 들어간다. 마지막에는 열린 지갑 내부의 신분증으로 시선을 고정하며 악몽 이후 현실의 단서를 드러낸다.",
        "scene_index": 12,
        "shot_assignments": [
          {
            "deviation_note": "Hold the frame especially still and empty-feeling, emphasizing the static landscape before Hyunwoo becomes the camera’s main target.",
            "flow_position": "start",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 2,
            "stage_index": 1
          },
          {
            "deviation_note": "Tighten beyond the stage’s general wallet view so the identification card fills the frame and the face photo is unmistakable.",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "visual_focus"
            ],
            "shot_index": 7,
            "stage_index": 4
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "static",
            "camera_position": "Wide in the dark rear corner of the small rundown restaurant, seated-height but several meters from the table, looking squarely toward the isolated booth area",
            "stage_index": 1,
            "stage_label": "establishing",
            "transition_to_next": "The camera begins a low, quiet move forward along the aisle toward the table, keeping the men aligned across the tabletop.",
            "visual_focus": "Jang Gyu-seok waiting alone at the worn table as Hyunwoo enters the space"
          },
          {
            "camera_motion": "track",
            "camera_position": "At the table edge on Hyunwoo's side, chest height, close enough to let the tabletop dominate the lower frame while both men remain implied across from each other",
            "stage_index": 2,
            "stage_label": "approach",
            "transition_to_next": "The camera glides down and inward toward the tabletop, narrowing the scene to the paper envelope and the hands around it.",
            "visual_focus": "The negotiation space between Hyunwoo and Jang Gyu-seok, centered on the money envelope being pushed forward"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "Very low and tight over the tabletop, within arm's length of the paper envelope, angled slightly from Jang Gyu-seok's side toward Hyunwoo's hand",
            "stage_index": 3,
            "stage_label": "close_observation",
            "transition_to_next": "From the envelope, the camera tilts and rises along Hyunwoo's tense arm line toward his face, converting the physical struggle over the money into emotional pressure.",
            "visual_focus": "The paper envelope trapped between Jang Gyu-seok's hand and Hyunwoo's hand"
          },
          {
            "camera_motion": "tilt",
            "camera_position": "Close at Hyunwoo's eye level across the table, less than a meter from his face, with the tabletop falling out of attention below frame",
            "stage_index": 4,
            "stage_label": "reaction",
            "transition_to_next": "A restrained cut shifts the viewpoint back across the table to Jang Gyu-seok, preserving the same seated axis and confrontation line.",
            "visual_focus": "Hyunwoo's face as anger hardens behind his stare"
          },
          {
            "camera_motion": "cut",
            "camera_position": "Across the table from Jang Gyu-seok at seated eye level, medium-close distance, facing him frontally with Hyunwoo implied just off camera",
            "stage_index": 5,
            "stage_label": "taunt_reveal",
            "transition_to_next": "",
            "visual_focus": "Jang Gyu-seok's relaxed smile as the siren sound reframes his threat"
          }
        ],
        "flow_summary": "카메라는 식당 구석의 고립된 협상 자리를 멀리서 확인한 뒤 탁자 위 돈 봉투로 낮게 파고들고, 봉투를 둘러싼 손의 충돌을 따라 현우의 얼굴까지 올라간다. 이후 같은 대치 축을 유지한 채 장규석의 여유로운 반응으로 넘어가며 압박감을 닫는다.",
        "scene_index": 13,
        "shot_assignments": [
          {
            "deviation_note": "Frame tighter than the stage default so only the paper envelope, Jang Gyu-seok's gripping hand, and Hyunwoo's overlapping hand fill the image; emphasize the squeeze and stalled motion.",
            "flow_position": "mid",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 4,
            "stage_index": 3
          },
          {
            "deviation_note": "Hold the camera nearly still at the end of the tilt, compressing the background so Hyunwoo's clenched teeth and focused eyes dominate the frame.",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "visual_focus"
            ],
            "shot_index": 6,
            "stage_index": 4
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "tilt",
            "camera_position": "High on a metal speaker pole near the center of the refugee camp, about 6 meters above ground, looking down toward the darkening lanes",
            "stage_index": 1,
            "stage_label": "establishing",
            "transition_to_next": "A hard cut drops the camera to the main gate just as the curfew closure is about to finish, shifting from distant camp order to immediate human urgency.",
            "visual_focus": "the camp speaker, the extinguishing streetlights, and the emptying camp street below"
          },
          {
            "camera_motion": "handheld",
            "camera_position": "Just inside the main iron gate at shoulder height, about 2 meters from the narrowing doorway, angled toward the thin gap between the closing gate panels",
            "stage_index": 2,
            "stage_label": "threshold_pressure",
            "transition_to_next": "As Hyunwoo squeezes through, the camera pivots with his movement and begins following him deeper into the camp.",
            "visual_focus": "Hyunwoo forcing his shoulder and one foot through the narrow gate opening among the last returning refugees"
          },
          {
            "camera_motion": "track",
            "camera_position": "Behind and slightly to the left of Hyunwoo at chest height, 3 to 4 meters back, moving through the narrow container alley",
            "stage_index": 3,
            "stage_label": "approach_home",
            "transition_to_next": "The tracking move slows as Hyunwoo reaches his container, letting the camera settle into a rear-facing composition at the door.",
            "visual_focus": "Hyunwoo walking through the dark container passage toward his own unit"
          },
          {
            "camera_motion": "static",
            "camera_position": "Directly behind Hyunwoo at eye level, about 2.5 meters away, centered on the old metal door with the large number 7-31 visible beyond him",
            "stage_index": 4,
            "stage_label": "arrival_pause",
            "transition_to_next": "",
            "visual_focus": "Hyunwoo standing still before the numbered container door"
          }
        ],
        "flow_summary": "카메라는 통금 방송이 울리는 수용소의 높은 시점에서 시작해, 닫히는 출입문 틈의 긴박한 위치로 논리적 컷을 타고 내려온다. 이후 현우를 뒤따라 컨테이너 골목 안쪽으로 이동하다가, 그의 집 문 앞에서 정지해 머뭇거림을 붙잡는다.",
        "scene_index": 14,
        "shot_assignments": [
          {
            "deviation_note": "Keep the gate gap very narrow in frame and let Hyunwoo’s diagonal body line fill the opening to emphasize the split-second entry.",
            "flow_position": "mid",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 4,
            "stage_index": 2
          },
          {
            "deviation_note": "Hold the frame more rigidly than the preceding tracking move, allowing the number 7-31 to read large while Hyunwoo’s back remains centered and still.",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 6,
            "stage_index": 4
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "track",
            "camera_position": "Inside the container, just beyond the entrance line at chest height, about 10 feet from the door, facing inward toward the doorway and the narrow living space",
            "stage_index": 1,
            "stage_label": "establishing_entry",
            "transition_to_next": "The camera tracks backward with Hyunwoo as he moves deeper into the container, letting Amber cross the foreground and leading the frame toward the dining table.",
            "visual_focus": "Hyunwoo entering the cramped container and being met by Amber"
          },
          {
            "camera_motion": "track",
            "camera_position": "Beside the dining table at seated eye level, about 4 feet from Hyunwoo, angled across the candlelit tabletop toward Miyeon and Amber",
            "stage_index": 2,
            "stage_label": "table_observation",
            "transition_to_next": "The camera slides along the table edge and pans toward the bedroom doorway as Amber is sent away, shifting the attention from the meal to the separation of the child from the argument.",
            "visual_focus": "Hyunwoo at the table, Miyeon watching him, and Amber caught between them"
          },
          {
            "camera_motion": "pan",
            "camera_position": "Near the table corner at standing waist height, turned toward the small bedroom doorway about 8 feet away",
            "stage_index": 3,
            "stage_label": "child_withdrawal",
            "transition_to_next": "After Amber disappears into the room, the camera pans back from the closed bedroom door to the table, tightening the emotional space around Hyunwoo and Miyeon.",
            "visual_focus": "Amber retreating toward her room while the argument is about to continue behind her"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "On the table side opposite Hyunwoo, starting at medium distance and pushing to within 2 feet of his face at standing eye level",
            "stage_index": 4,
            "stage_label": "confrontation_close_observation",
            "transition_to_next": "As Hyunwoo erupts and leaves, the movement breaks with a hard cut after the slammed exit, jumping to the interior side of Amber's dark room.",
            "visual_focus": "Hyunwoo's anger rising against Miyeon's warning"
          },
          {
            "camera_motion": "static",
            "camera_position": "Inside the dark small room, low child-height at about 3 feet from the bedroom door, facing the closed door from behind Amber",
            "stage_index": 5,
            "stage_label": "hidden_reaction_reveal",
            "transition_to_next": "",
            "visual_focus": "Amber holding still with her ear pressed close to the closed door"
          }
        ],
        "flow_summary": "카메라는 컨테이너 입구에서 현우를 받아 안쪽 식탁까지 물러나며 가족의 긴장을 한 공간 안에 묶고, 이후 방문 쪽으로 시선을 옮겼다가 다시 현우의 분노로 밀착한다. 문이 쾅 닫히는 순간에는 물리적 연속을 끊고 어두운 방 안의 앰버에게 컷해, 밖의 싸움을 몰래 듣고 있던 감정적 후폭풍을 드러낸다.",
        "scene_index": 15,
        "shot_assignments": [
          {
            "deviation_note": "Frame wider than the stage default to hold Hyunwoo's full body upright in the narrow container space, emphasizing the dirt and blood marks without changing the entrance-side axis.",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 3,
            "stage_index": 1
          },
          {
            "deviation_note": "The dolly-in reaches its closest point, compressing the background so Hyunwoo's open mouth and strained neck dominate the frame.",
            "flow_position": "end",
            "inherits": [
              "camera_position",
              "camera_motion",
              "visual_focus"
            ],
            "shot_index": 13,
            "stage_index": 4
          },
          {
            "deviation_note": "Hold completely still after the cut, with the door filling the dark background and Amber locked in a breathless listening pose.",
            "flow_position": "mid",
            "inherits": [
              "camera_position",
              "visual_focus"
            ],
            "shot_index": 16,
            "stage_index": 5
          }
        ]
      },
      {
        "flow_stages": [
          {
            "camera_motion": "static",
            "camera_position": "At the mouth of the refugee camp alley, eye-level at about 1.6 meters, set back several meters from the first row of rusted steel containers, centered on the narrow passage in a wide frame",
            "stage_index": 1,
            "stage_label": "establishing",
            "transition_to_next": "The camera releases from the locked wide view and begins a slow forward dolly along the alley centerline into the darkness.",
            "visual_focus": "The empty, pitch-black alley framed by tightly packed rusted steel containers"
          },
          {
            "camera_motion": "dolly_in",
            "camera_position": "Moving slowly down the center of the alley at eye level, maintaining a straight axis between the container walls and closing the distance toward the vanishing point",
            "stage_index": 2,
            "stage_label": "approach",
            "transition_to_next": "",
            "visual_focus": "The deep black end of the alley and the oppressive container walls receding on both sides"
          }
        ],
        "flow_summary": "카메라는 난민 수용소 골목 입구에서 텅 빈 정경을 넓게 붙잡은 뒤, 같은 축을 유지한 채 어둠 속으로 천천히 밀고 들어가는 흐름으로 설계한다. 선택된 샷은 이 이동이 시작되기 전, 공간의 고립감과 불길한 정적을 확립하는 지점에 해당한다.",
        "scene_index": 16,
        "shot_assignments": [
          {
            "deviation_note": "Held as a wider, more static tableau before the forward movement begins, emphasizing the absence of people and the complete lack of streetlight.",
            "flow_position": "start",
            "inherits": [
              "camera_position",
              "visual_focus"
            ],
            "shot_index": 1,
            "stage_index": 1
          }
        ]
      }
    ]
  },
  "step_id": "scene_camera_flow",
  "run_id": "34fe8c50-5559-4d86-8d01-85b6364b7e9b",
  "resolved_model": "gpt",
  "updated_at": "2026-06-25T06:46:24.680762+00:00",
  "schema_version": 1,
  "config_hash": "99914b932bd37a50",
  "project_config_snapshot": {}
}