{
  "status": "completed",
  "completed_count": 6,
  "applicable_count": 6,
  "failed_count": 0,
  "data": {
    "shots": [
      {
        "scene_index": 1,
        "shot_index": 3,
        "framing_scale": "close",
        "perspective": "observer",
        "pov_character": "",
        "perception_mode": "direct",
        "camera_direction": "From the prescribed interior three-quarter position at Yeonhee’s chest height, the camera continues a restrained dolly-in and tightens on her hunched upper body, slightly below her shoulders and offset toward her sightline to Minsu. Yeonhee occupies the center-left, her wet yellow-raincoat shoulders drawn upward and her torso pitched toward frame right as her fully open mouth catches the urgent appeal; the workshop remains only as soft context behind her.",
        "lighting_mood": "The single overhead fluorescent light gives restrained, naturalistic evening illumination with muted color and gentle contrast.",
        "character_angles": [
          {
            "character": "연희",
            "angle": "three_quarter_right",
            "body_pose": "shoulders hunched, leaning forward",
            "gaze_direction_kind": "looks_at_character",
            "gaze_target_id": "C01",
            "subject_state": "alive"
          }
        ],
        "key_bg_elements": [
          {
            "element": "기름때 묻은 작업대",
            "state": "기름때가 묻어 있음",
            "orientation": "The upper edge is seen obliquely behind Yeonhee.",
            "camera_use": "Soft background context that places her urgent entrance inside the cramped workshop.",
            "directionality_class": "directional_3d"
          },
          {
            "element": "거꾸로 세운 낡은 자전거",
            "state": "거꾸로 세워져 있음",
            "orientation": "Only an oblique portion of the inverted frame is visible near the background edge.",
            "camera_use": "Defocused spatial cue without competing with Yeonhee’s face.",
            "directionality_class": "directional_3d"
          }
        ],
        "frame_spatial_contract": null,
        "subject_reference_policy": []
      },
      {
        "scene_index": 1,
        "shot_index": 5,
        "framing_scale": "insert",
        "perspective": "observer",
        "pov_character": "",
        "perception_mode": "direct",
        "camera_direction": "At the low starting point of the crane move, the camera hovers just above workbench height at a steep side three-quarter angle from the open toolbox, holding nearly still as the wrench first touches the stained surface. The wrench occupies less than the lower third beside the toolbox, while Minsu’s withdrawing oil-marked fingers and partially seen torso beyond the near edge provide scale and show his weight beginning to rise.",
        "lighting_mood": "The overhead fluorescent light keeps the workbench action plainly legible in a muted, gently contrasted evening interior.",
        "character_angles": [
          {
            "character": "민수",
            "angle": "three_quarter_left",
            "body_pose": "torso rising, hand withdrawing",
            "gaze_direction_kind": "down",
            "gaze_target_id": null,
            "subject_state": "alive"
          }
        ],
        "key_bg_elements": [
          {
            "element": "렌치",
            "state": "민수의 손을 떠나 작업대에 막 닿음",
            "orientation": "Its long side lies diagonally across the camera-facing top plane of the workbench.",
            "camera_use": "Primary action detail in the lower center, kept below forty percent of the frame.",
            "directionality_class": "directional_3d"
          },
          {
            "element": "열린 공구 상자",
            "state": "열려 있음",
            "orientation": "The open top and one side face the camera at a steep oblique angle.",
            "camera_use": "Immediate spatial anchor beside the wrench.",
            "directionality_class": "directional_3d"
          },
          {
            "element": "기름때 묻은 작업대",
            "state": "기름때가 묻어 있음",
            "orientation": "The top plane is exposed to the steep camera angle, with the near edge crossing the lower frame.",
            "camera_use": "Contact surface that makes the wrench’s touchdown readable.",
            "directionality_class": "directional_3d"
          },
          {
            "element": "거꾸로 세운 낡은 자전거",
            "state": "거꾸로 세워져 있음",
            "orientation": "A partial side of the inverted bicycle remains visible beyond Minsu.",
            "camera_use": "Background scale reference for the close workbench detail.",
            "directionality_class": "directional_3d"
          }
        ],
        "frame_spatial_contract": {
          "reason": "required_background_position",
          "constraints": [
            {
              "target_kind": "prop",
              "target_id": "P01",
              "label": "wrench",
              "screen_zone": "lower_center",
              "depth_plane": "foreground",
              "gesture_action": "none",
              "gesture_target_label": ""
            },
            {
              "target_kind": "background",
              "target_id": "",
              "label": "open toolbox",
              "screen_zone": "middle_left",
              "depth_plane": "midground",
              "gesture_action": "none",
              "gesture_target_label": ""
            }
          ]
        },
        "subject_reference_policy": [
          {
            "subject_id": "C01",
            "policy_type": "identity_reference",
            "policy": "base_id_required",
            "reason": "Only Minsu’s withdrawing hand and a partial rising torso are visible, so a full outlook reference would not align reliably with the insert framing."
          }
        ]
      },
      {
        "scene_index": 2,
        "shot_index": 3,
        "framing_scale": "medium",
        "perspective": "observer",
        "pov_character": "",
        "perception_mode": "direct",
        "camera_direction": "Beside Yeonhee at waist height, the camera finishes its dolly-in along the three-quarter line of her extended arm, looking past the flashlight toward the old man’s closed face. Yeonhee’s cropped body anchors the middle-left, her straight arm and flashlight cross the frame diagonally, and the beam terminates on the old man’s face in the lower-right while a narrow patch of wet ground preserves their physical separation.",
        "lighting_mood": "The flashlight beam carefully isolates the old man’s face against the subdued, flickering streetlight illumination reflected from the wet ground.",
        "character_angles": [
          {
            "character": "연희",
            "angle": "three_quarter_right",
            "body_pose": "leaning forward, arm extended",
            "gaze_direction_kind": "looks_at_character",
            "gaze_target_id": "C03",
            "subject_state": "alive"
          },
          {
            "character": "노인",
            "angle": "profile_left",
            "body_pose": "lying on one side",
            "gaze_direction_kind": "closed_eyes",
            "gaze_target_id": null,
            "subject_state": "unconscious"
          }
        ],
        "key_bg_elements": [
          {
            "element": "손전등",
            "state": "켜져 노인의 얼굴을 비추고 있음",
            "orientation": "Its beam end points diagonally from Yeonhee’s hand toward the old man’s face.",
            "camera_use": "Connects the two figures as a continuous directional line without occupying more than a small part of the frame.",
            "directionality_class": "directional_3d"
          },
          {
            "element": "젖은 바닥",
            "state": "젖어 있고 불빛이 길게 번져 있음",
            "orientation": "The visible patch reflects an elongated trace of the flickering streetlight beneath the figures.",
            "camera_use": "Ground plane separating Yeonhee from the prone old man and supporting the diagonal composition.",
            "directionality_class": "reflective_surface"
          },
          {
            "element": "지팡이",
            "state": "노인의 곁 바닥에 떨어져 있음",
            "orientation": "It lies at an oblique angle near the outer edge of the prone figure.",
            "camera_use": "Peripheral evidence of the old man’s collapse, kept secondary to his illuminated face.",
            "directionality_class": "directional_3d"
          }
        ],
        "frame_spatial_contract": {
          "reason": "looks_to_anchor",
          "constraints": [
            {
              "target_kind": "character",
              "target_id": "C02",
              "label": "Yeonhee",
              "screen_zone": "middle_left",
              "depth_plane": "midground",
              "gesture_action": "looks_toward",
              "gesture_target_label": "old man's face"
            },
            {
              "target_kind": "character",
              "target_id": "C03",
              "label": "old man",
              "screen_zone": "lower_right",
              "depth_plane": "foreground",
              "gesture_action": "none",
              "gesture_target_label": ""
            }
          ]
        },
        "subject_reference_policy": []
      },
      {
        "scene_index": 2,
        "shot_index": 5,
        "framing_scale": "close",
        "perspective": "observer",
        "pov_character": "",
        "perception_mode": "direct",
        "camera_direction": "The track settles at ground-adjacent height beside the old man’s upper body, oblique to Minsu and looking across his forearms toward the shoulders he grips. Minsu’s bent profile is clipped at the upper-left while his tense hands and forearms run into the center; the old man’s gray-coated shoulders and a fragment of his closed face remain visible beyond them so the instant of applied force reads without exaggeration.",
        "lighting_mood": "Flickering streetlight and the already active flashlight provide restrained, uneven evening illumination over the close physical contact.",
        "character_angles": [
          {
            "character": "민수",
            "angle": "three_quarter_right",
            "body_pose": "kneeling, forearms locked forward",
            "gaze_direction_kind": "looks_at_character",
            "gaze_target_id": "C03",
            "subject_state": "alive"
          },
          {
            "character": "노인",
            "angle": "profile_left",
            "body_pose": "lying on one side",
            "gaze_direction_kind": "closed_eyes",
            "gaze_target_id": null,
            "subject_state": "unconscious"
          }
        ],
        "key_bg_elements": [
          {
            "element": "젖은 바닥",
            "state": "젖어 있고 불빛이 번져 있음",
            "orientation": "The ground beside the bodies carries a partial reflection of the available street illumination.",
            "camera_use": "Narrow ground-level context around the old man’s shoulder and Minsu’s knee.",
            "directionality_class": "reflective_surface"
          }
        ],
        "frame_spatial_contract": null,
        "subject_reference_policy": [
          {
            "subject_id": "C01",
            "policy_type": "identity_reference",
            "policy": "base_id_required",
            "reason": "Minsu is identified mainly through a clipped profile, hands, and forearms in the tight contact detail."
          }
        ]
      },
      {
        "scene_index": 3,
        "shot_index": 2,
        "framing_scale": "wide",
        "perspective": "observer",
        "pov_character": "",
        "perception_mode": "direct",
        "camera_direction": "From seated-eye height beside the old man’s lower body, the static camera looks slightly downward from Minsu’s front three-quarter side and contains his entire compact crouch. Minsu occupies the center-right with his knees gathered and attention fixed on the old man, whose blanket-covered body extends across the lower-left; the cleared floor and displaced workbench remain visible without drawing focus.",
        "lighting_mood": "The overhead fluorescent light supplies subdued night-interior illumination with muted color and gentle contrast.",
        "character_angles": [
          {
            "character": "민수",
            "angle": "three_quarter_left",
            "body_pose": "squatting with knees together",
            "gaze_direction_kind": "looks_at_character",
            "gaze_target_id": "C03",
            "subject_state": "alive"
          },
          {
            "character": "노인",
            "angle": "profile_right",
            "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 recedes obliquely along the rear of the cleared area.",
            "camera_use": "Defines the improvised open space around the two figures.",
            "directionality_class": "directional_3d"
          },
          {
            "element": "담요",
            "state": "누워 있는 노인을 덮고 있음",
            "orientation": "It follows the length of the old man’s body across the lower-left portion of the frame.",
            "camera_use": "Clarifies the old man’s protected, motionless condition while preserving human scale.",
            "directionality_class": "directional_3d"
          },
          {
            "element": "비워 둔 바닥 공간",
            "state": "작업대를 옮겨 자리가 마련되어 있음",
            "orientation": "",
            "camera_use": "Negative space around Minsu’s full crouched figure and the prone old man.",
            "directionality_class": "non_directional"
          }
        ],
        "frame_spatial_contract": {
          "reason": "shared_space_relation",
          "constraints": [
            {
              "target_kind": "character",
              "target_id": "C01",
              "label": "Minsu",
              "screen_zone": "middle_right",
              "depth_plane": "midground",
              "gesture_action": "none",
              "gesture_target_label": ""
            },
            {
              "target_kind": "character",
              "target_id": "C03",
              "label": "old man",
              "screen_zone": "lower_left",
              "depth_plane": "midground",
              "gesture_action": "none",
              "gesture_target_label": ""
            },
            {
              "target_kind": "background",
              "target_id": "",
              "label": "cleared floor beside displaced workbench",
              "screen_zone": "middle_center",
              "depth_plane": "background",
              "gesture_action": "none",
              "gesture_target_label": ""
            }
          ]
        },
        "subject_reference_policy": []
      },
      {
        "scene_index": 3,
        "shot_index": 3,
        "framing_scale": "close",
        "perspective": "observer",
        "pov_character": "",
        "perception_mode": "direct",
        "camera_direction": "Inside the garage at Yeonhee’s shoulder height, the static camera sits nearly perpendicular to her gaze and tightens on her side profile while preserving the closed door’s inner edge. Yeonhee occupies the middle-left with one shoulder pressed close beside the door, her thumb working the flashlight switch as she stares toward the off-screen alley at frame right; the vertical door edge forms a tense boundary rather than a frontal portrait.",
        "lighting_mood": "Subdued overhead fluorescent illumination holds Yeonhee’s profile in a muted night-interior palette with restrained contrast.",
        "character_angles": [
          {
            "character": "연희",
            "angle": "profile_right",
            "body_pose": "shoulder pressed beside door",
            "gaze_direction_kind": "off_screen",
            "gaze_target_id": null,
            "subject_state": "alive"
          }
        ],
        "key_bg_elements": [
          {
            "element": "정비소 문",
            "state": "닫혀 있음",
            "orientation": "The inner face and vertical edge angle slightly away from the camera beside Yeonhee’s profile.",
            "camera_use": "A narrow frame-right boundary showing how closely Yeonhee keeps to the door.",
            "directionality_class": "directional_3d"
          },
          {
            "element": "손전등",
            "state": "연희가 껐다 켰다 하고 있음",
            "orientation": "Its side is visible near her hand, with the beam end aimed toward the off-screen alley direction.",
            "camera_use": "Small hand-held action cue reinforcing her anxious vigil without becoming the main subject.",
            "directionality_class": "directional_3d"
          }
        ],
        "frame_spatial_contract": {
          "reason": "required_background_position",
          "constraints": [
            {
              "target_kind": "character",
              "target_id": "C02",
              "label": "Yeonhee",
              "screen_zone": "middle_left",
              "depth_plane": "foreground",
              "gesture_action": "looks_toward",
              "gesture_target_label": "off-screen alley"
            },
            {
              "target_kind": "background",
              "target_id": "",
              "label": "closed garage door edge",
              "screen_zone": "middle_right",
              "depth_plane": "midground",
              "gesture_action": "none",
              "gesture_target_label": ""
            }
          ]
        },
        "subject_reference_policy": []
      }
    ],
    "total": 6,
    "failed_batches": 0
  },
  "config_hash": "0c9d0b8082b44321",
  "step_id": "shot_staging",
  "run_id": "9838f4c9-fe0e-4a8c-940d-9f1026b4e9ef",
  "resolved_model": "gpt",
  "updated_at": "2026-08-28T03:49:09.850735+00:00",
  "schema_version": 6,
  "project_config_snapshot": {}
}