{
  "status": "completed",
  "completed_count": 7,
  "applicable_count": 7,
  "failed_count": 0,
  "data": {
    "shots": [
      {
        "scene_index": 1,
        "shot_index": 2,
        "framing_scale": "medium",
        "perspective": "observer",
        "pov_character": "",
        "perception_mode": "direct",
        "camera_direction": "From inside the garage at chest height and offset beside the doorway, track with Yeonhee in a tight upper-body three-quarter view as she pushes the door with one hand and transfers her weight through her first step. Keep her door hand at the left edge and the flashlight low in the opposite hand, while her face and gaze angle past the camera toward Minsu deeper inside the garage.",
        "lighting_mood": "Restrained, slightly desaturated ambient light appropriate to the evening garage, with moderate low-key contrast and clear texture on Yeonhee's wet shoulder.",
        "character_angles": [
          {
            "character": "연희",
            "angle": "three_quarter_right",
            "body_pose": "weight crossing the threshold",
            "gaze_direction_kind": "looks_at_character",
            "gaze_target_id": "C01",
            "subject_state": "alive"
          }
        ],
        "key_bg_elements": [
          {
            "element": "정비소 문",
            "state": "연희가 밀어 열고 있는 상태",
            "orientation": "The interior-facing edge and partially opened door plane angle away from the camera toward the entrance.",
            "camera_use": "Frames the left side of Yeonhee's upper body and preserves the threshold she is crossing.",
            "directionality_class": "directional_3d"
          },
          {
            "element": "기름때 묻은 작업대와 열린 공구 상자",
            "state": "작업대에 기름때가 묻어 있고 공구 상자가 열려 있음",
            "orientation": "The work surface and the open interior of the toolbox are visible deeper inside the garage.",
            "camera_use": "Provides a restrained background reference for Yeonhee's eyeline into the workspace.",
            "directionality_class": "directional_3d"
          },
          {
            "element": "거꾸로 세워진 낡은 자전거",
            "state": "낡았으며 거꾸로 세워져 있음",
            "orientation": "Its inverted frame is seen obliquely beyond Yeonhee rather than square to camera.",
            "camera_use": "Adds depth without obstructing Yeonhee's face or forward step.",
            "directionality_class": "directional_3d"
          }
        ],
        "frame_spatial_contract": {
          "reason": "movement_direction",
          "constraints": [
            {
              "target_kind": "character",
              "target_id": "C02",
              "label": "연희",
              "screen_zone": "middle_center",
              "depth_plane": "midground",
              "gesture_action": "moves_toward",
              "gesture_target_label": "garage interior"
            },
            {
              "target_kind": "background",
              "target_id": "",
              "label": "open garage doorway",
              "screen_zone": "middle_left",
              "depth_plane": "background",
              "gesture_action": "none",
              "gesture_target_label": ""
            }
          ]
        },
        "subject_reference_policy": []
      },
      {
        "scene_index": 1,
        "shot_index": 4,
        "framing_scale": "medium",
        "perspective": "over_shoulder",
        "pov_character": "",
        "perception_mode": "direct",
        "camera_direction": "Hold static at Yeonhee's shoulder height just behind and beside her, using only her near shoulder as a soft foreground edge while leaving Minsu's lifted face unobstructed across the narrow garage. Minsu remains bent near the bicycle in the midground, chin raised and eyes locked on Yeonhee, so the changed emphasis is their shared eyeline rather than a change in camera distance.",
        "lighting_mood": "Restrained, slightly desaturated evening-interior illumination maintains moderate low-key contrast across Minsu's lifted face and Yeonhee's near shoulder.",
        "character_angles": [
          {
            "character": "민수",
            "angle": "three_quarter_left",
            "body_pose": "paused over bicycle chain",
            "gaze_direction_kind": "looks_at_character",
            "gaze_target_id": "C02",
            "subject_state": "alive"
          },
          {
            "character": "연희",
            "angle": "over_shoulder",
            "body_pose": "weight held on front foot",
            "gaze_direction_kind": "looks_at_character",
            "gaze_target_id": "C01",
            "subject_state": "alive"
          }
        ],
        "key_bg_elements": [
          {
            "element": "거꾸로 세워진 낡은 자전거",
            "state": "낡았으며 거꾸로 세워져 있음",
            "orientation": "The bicycle is viewed from an oblique side, with its chain area nearest Minsu.",
            "camera_use": "Locates Minsu in his interrupted repair posture beneath his lifted face.",
            "directionality_class": "directional_3d"
          },
          {
            "element": "기름때 묻은 작업대와 열린 공구 상자",
            "state": "작업대에 기름때가 묻어 있고 공구 상자가 열려 있음",
            "orientation": "The work surface and open toolbox interior face partly toward the camera behind Minsu.",
            "camera_use": "Supports the depth of the narrow garage while leaving the eyeline corridor clear.",
            "directionality_class": "directional_3d"
          },
          {
            "element": "정비소 문",
            "state": "연희가 들어선 뒤 열린 상태",
            "orientation": "The doorway plane sits immediately beside Yeonhee, with the opening extending behind her.",
            "camera_use": "Defines Yeonhee's position at the entrance without blocking Minsu.",
            "directionality_class": "directional_3d"
          }
        ],
        "frame_spatial_contract": {
          "reason": "shared_space_relation",
          "constraints": [
            {
              "target_kind": "character",
              "target_id": "C02",
              "label": "연희",
              "screen_zone": "middle_left",
              "depth_plane": "foreground",
              "gesture_action": "looks_toward",
              "gesture_target_label": "민수 across the garage"
            },
            {
              "target_kind": "character",
              "target_id": "C01",
              "label": "민수",
              "screen_zone": "middle_right",
              "depth_plane": "midground",
              "gesture_action": "looks_toward",
              "gesture_target_label": "연희 at the doorway"
            }
          ]
        },
        "subject_reference_policy": []
      },
      {
        "scene_index": 2,
        "shot_index": 1,
        "framing_scale": "wide",
        "perspective": "omniscient",
        "pov_character": "",
        "perception_mode": "direct",
        "camera_direction": "Hold an elevated oblique wide view from above one corner of the four-way intersection before beginning the crane descent, placing the elderly man as a small isolated figure at the exact visual center. The four roads spread toward the frame edges while his side-lying body and fallen cane remain clearly separated against the wet pavement beneath the flickering streetlamp.",
        "lighting_mood": "The flickering streetlamp casts unstable evening light that stretches across the wet pavement in a restrained, slightly desaturated low-key palette.",
        "character_angles": [
          {
            "character": "노인",
            "angle": "three_quarter_left",
            "body_pose": "lying curled on one side",
            "gaze_direction_kind": "closed_eyes",
            "gaze_target_id": null,
            "subject_state": "unconscious"
          }
        ],
        "key_bg_elements": [
          {
            "element": "네 갈래 사거리",
            "state": "네 방향으로 갈라져 있음",
            "orientation": "The four branches radiate from the elderly man's central position toward separate frame edges.",
            "camera_use": "Creates the wide geometric isolation around the small central figure.",
            "directionality_class": "directional_3d"
          },
          {
            "element": "젖은 바닥",
            "state": "젖어 있으며 가로등 불빛이 길게 번져 있음",
            "orientation": "The surface reflects the flickering streetlamp light in an elongated patch around and beyond the elderly man.",
            "camera_use": "Separates the body from the surrounding road through reflected light.",
            "directionality_class": "reflective_surface"
          },
          {
            "element": "가로등",
            "state": "켜진 채 깜빡이고 있음",
            "orientation": "Its upright form is seen obliquely above the central area of the intersection.",
            "camera_use": "Anchors the elderly man's position within the wide intersection.",
            "directionality_class": "directional_3d"
          },
          {
            "element": "떨어진 지팡이",
            "state": "노인 곁 바닥에 떨어져 있음",
            "orientation": "The cane lies at an oblique angle beside the elderly man's body.",
            "camera_use": "Provides a small secondary marker that clarifies the figure's vulnerability.",
            "directionality_class": "directional_3d"
          }
        ],
        "frame_spatial_contract": null,
        "subject_reference_policy": []
      },
      {
        "scene_index": 2,
        "shot_index": 3,
        "framing_scale": "close",
        "perspective": "observer",
        "pov_character": "",
        "perception_mode": "direct",
        "camera_direction": "Dolly in from knee height beside the elderly man's upper body, looking diagonally across his closed face toward Yeonhee beyond him. Hold the circular flashlight beam precisely over his closed eyes and face; his head occupies the lower foreground while Yeonhee leans forward in the upper background with her extended hand and flashlight kept at a realistic relative scale.",
        "lighting_mood": "The flashlight creates a localized circle across the elderly man's face while the flickering streetlamp and its reflection provide subdued evening context.",
        "character_angles": [
          {
            "character": "연희",
            "angle": "three_quarter_left",
            "body_pose": "leaning forward, arm extended",
            "gaze_direction_kind": "looks_at_character",
            "gaze_target_id": "C03",
            "subject_state": "alive"
          },
          {
            "character": "노인",
            "angle": "profile_right",
            "body_pose": "lying curled on one side",
            "gaze_direction_kind": "closed_eyes",
            "gaze_target_id": null,
            "subject_state": "unconscious"
          }
        ],
        "key_bg_elements": [
          {
            "element": "젖은 사거리 바닥",
            "state": "젖어 있으며 가로등 불빛이 번져 있음",
            "orientation": "The surface reflects subdued streetlamp light around the elderly man's head and shoulder.",
            "camera_use": "Provides a close-range ground plane and scale reference behind the illuminated face.",
            "directionality_class": "reflective_surface"
          },
          {
            "element": "떨어진 지팡이",
            "state": "노인 곁 바닥에 떨어져 있음",
            "orientation": "Only an oblique portion of the cane remains visible farther from his upper body.",
            "camera_use": "Retains continuity with the wider intersection without competing with the face.",
            "directionality_class": "directional_3d"
          }
        ],
        "frame_spatial_contract": {
          "reason": "shared_space_relation",
          "constraints": [
            {
              "target_kind": "character",
              "target_id": "C03",
              "label": "노인",
              "screen_zone": "lower_center",
              "depth_plane": "foreground",
              "gesture_action": "none",
              "gesture_target_label": ""
            },
            {
              "target_kind": "character",
              "target_id": "C02",
              "label": "연희",
              "screen_zone": "upper_right",
              "depth_plane": "background",
              "gesture_action": "looks_toward",
              "gesture_target_label": "노인의 illuminated face"
            }
          ]
        },
        "subject_reference_policy": []
      },
      {
        "scene_index": 2,
        "shot_index": 6,
        "framing_scale": "close",
        "perspective": "observer",
        "pov_character": "",
        "perception_mode": "direct",
        "camera_direction": "At ground level beside the elderly man's head, hold a static perpendicular side view across the narrow gap between his face and Minsu's lowered profile. Minsu kneels with his torso folded close to the pavement and his mouth near the elderly man's face as he speaks, while both faces share the central band of the frame without overlapping.",
        "lighting_mood": "Flickering streetlamp light and the localized flashlight illumination retain restrained low-key contrast on the two close profiles and the wet ground.",
        "character_angles": [
          {
            "character": "민수",
            "angle": "profile_left",
            "body_pose": "kneeling, torso folded low",
            "gaze_direction_kind": "looks_at_character",
            "gaze_target_id": "C03",
            "subject_state": "alive"
          },
          {
            "character": "노인",
            "angle": "profile_right",
            "body_pose": "lying curled on one side",
            "gaze_direction_kind": "closed_eyes",
            "gaze_target_id": null,
            "subject_state": "unconscious"
          }
        ],
        "key_bg_elements": [
          {
            "element": "젖은 사거리 바닥",
            "state": "젖어 있으며 가로등 불빛이 번져 있음",
            "orientation": "The ground reflects broken streetlamp light beneath and behind the two profiles.",
            "camera_use": "Forms the immediate ground-level background and emphasizes Minsu's lowered posture.",
            "directionality_class": "reflective_surface"
          }
        ],
        "frame_spatial_contract": null,
        "subject_reference_policy": []
      },
      {
        "scene_index": 3,
        "shot_index": 1,
        "framing_scale": "wide",
        "perspective": "observer",
        "pov_character": "",
        "perception_mode": "direct",
        "camera_direction": "From beside the displaced workbench at a slightly elevated oblique angle, hold a medium-wide view looking diagonally down across crouching Minsu toward the elderly man under the fluorescent light. Place Minsu in the lower foreground and the blanket-covered elderly man across the midground, preserving enough cleared floor around them to show how the workspace has been rearranged.",
        "lighting_mood": "The fluorescent light gives the night interior a restrained, slightly desaturated illumination with moderate low-key contrast and a tense but compassionate stillness.",
        "character_angles": [
          {
            "character": "민수",
            "angle": "three_quarter_right",
            "body_pose": "crouched beside the blanket",
            "gaze_direction_kind": "looks_at_character",
            "gaze_target_id": "C03",
            "subject_state": "alive"
          },
          {
            "character": "노인",
            "angle": "profile_left",
            "body_pose": "lying beneath the blanket",
            "gaze_direction_kind": "closed_eyes",
            "gaze_target_id": null,
            "subject_state": "unconscious"
          }
        ],
        "key_bg_elements": [
          {
            "element": "한쪽으로 밀린 작업대",
            "state": "자리를 만들기 위해 한쪽으로 밀려 있음",
            "orientation": "Its long side angles away beside the camera position, leaving an open floor area toward the elderly man.",
            "camera_use": "Frames one edge of the reorganized workspace and reveals the cleared area.",
            "directionality_class": "directional_3d"
          },
          {
            "element": "천장 형광등",
            "state": "불빛이 켜져 있음",
            "orientation": "The hanging fixture is seen above the area where the elderly man lies.",
            "camera_use": "Provides a visible overhead spatial anchor without occupying the center of the composition.",
            "directionality_class": "directional_3d"
          },
          {
            "element": "담요",
            "state": "노인의 몸을 덮고 있음",
            "orientation": "",
            "camera_use": "Defines the elderly man's resting area and separates his form from the cleared floor.",
            "directionality_class": "non_directional"
          }
        ],
        "frame_spatial_contract": {
          "reason": "shared_space_relation",
          "constraints": [
            {
              "target_kind": "character",
              "target_id": "C01",
              "label": "민수",
              "screen_zone": "lower_left",
              "depth_plane": "foreground",
              "gesture_action": "looks_toward",
              "gesture_target_label": "노인 beside him"
            },
            {
              "target_kind": "character",
              "target_id": "C03",
              "label": "노인",
              "screen_zone": "middle_right",
              "depth_plane": "midground",
              "gesture_action": "none",
              "gesture_target_label": ""
            },
            {
              "target_kind": "background",
              "target_id": "",
              "label": "displaced workbench",
              "screen_zone": "upper_left",
              "depth_plane": "background",
              "gesture_action": "none",
              "gesture_target_label": ""
            }
          ]
        },
        "subject_reference_policy": []
      },
      {
        "scene_index": 3,
        "shot_index": 2,
        "framing_scale": "close",
        "perspective": "observer",
        "pov_character": "",
        "perception_mode": "direct",
        "camera_direction": "The track settles just inside the open doorway at Yeonhee's shoulder height, close to her interior-side profile and slightly behind her, with her face occupying the left half and a narrow corridor of the alley remaining visible on the right. Her thumb pauses over the flashlight switch while her weight inclines toward the opening, but her eyes remain fixed beyond the doorway rather than toward the camera.",
        "lighting_mood": "Fluorescent interior light outlines Yeonhee against the dark alley in a restrained, slightly desaturated low-key composition.",
        "character_angles": [
          {
            "character": "연희",
            "angle": "profile_right",
            "body_pose": "weight forward, thumb poised",
            "gaze_direction_kind": "off_screen",
            "gaze_target_id": null,
            "subject_state": "alive"
          }
        ],
        "key_bg_elements": [
          {
            "element": "열린 정비소 문",
            "state": "열린 상태",
            "orientation": "The interior edge of the open doorway runs beside Yeonhee, revealing a narrow view outward.",
            "camera_use": "Frames her profile and channels her eyeline into the alley.",
            "directionality_class": "directional_3d"
          },
          {
            "element": "문 밖 골목",
            "state": "어두운 상태",
            "orientation": "",
            "camera_use": "Remains as a narrow background strip along Yeonhee's fixed gaze.",
            "directionality_class": "non_directional"
          }
        ],
        "frame_spatial_contract": {
          "reason": "looks_to_anchor",
          "constraints": [
            {
              "target_kind": "character",
              "target_id": "C02",
              "label": "연희",
              "screen_zone": "middle_left",
              "depth_plane": "foreground",
              "gesture_action": "looks_toward",
              "gesture_target_label": "alley beyond the open doorway"
            },
            {
              "target_kind": "background",
              "target_id": "",
              "label": "alley beyond the open doorway",
              "screen_zone": "middle_right",
              "depth_plane": "background",
              "gesture_action": "none",
              "gesture_target_label": ""
            }
          ]
        },
        "subject_reference_policy": []
      }
    ],
    "total": 7,
    "failed_batches": 0
  },
  "config_hash": "0c9d0b8082b44321",
  "step_id": "shot_staging",
  "run_id": "1e7d1723-91bd-4aaa-ba9d-7b8ca7c74895",
  "resolved_model": "gpt",
  "updated_at": "2026-08-25T11:19:46.044156+00:00",
  "schema_version": 6,
  "project_config_snapshot": {}
}