{
  "status": "completed",
  "completed_count": 30,
  "applicable_count": 30,
  "failed_count": 0,
  "data": {
    "scenes": [
      {
        "scene_index": 1,
        "scene_heading": "S#1. 숲속 / 해 질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "우거진 수풀을 헤치며 달려가는 중간 순간, 눈을 크게 뜨고 입을 벌린 채 겁에 질린 금월산 피해 남자의 상체 정면 구도.",
            "based_on_beat": 1,
            "characters": [
              "금월산 피해 남자"
            ],
            "original_description": "우거진 수풀 사이로 금월산 피해 남자가 눈을 크게 뜨고 입을 벌린 채 굳어있는 상체 정면 구도.",
            "validator_reason": "원문의 이동/추진 동작(도망치는)이 정지 상태(굳어있는)로 약화되어, 추진 방향성을 보존한 mid-action freeze로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "금월산 피해 남자의 허벅지 피부에 커다란 이빨 자국이 깊게 패여 있고 검붉은 피가 맺힌 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "금월산 피해 남자"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "흙바닥에 벗겨진 남성용 구두 한 짝이 떨어져 있는 하단 전경.",
            "based_on_beat": 1,
            "characters": [],
            "original_description": "흙바닥에 벗겨진 남성용 구두 한 짝이 뒹굴고 있는 하단 전경.",
            "validator_reason": "'뒹굴고 있는'이라는 진행형 동작을 시각적인 고정 상태(떨어져 있는)로 명확히 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "정체불명의 습격자(검은 인영·붉은 눈의 남자)가 공중으로 뛰어올라 금월산 피해 남자 위로 짙은 그림자를 드리운 찰나.",
            "based_on_beat": 1,
            "characters": [
              "정체불명의 습격자",
              "금월산 피해 남자"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "정체불명의 습격자의 두 팔이 금월산 피해 남자의 어깨를 강하게 내리누르며 덮치는 충격의 순간, 남자의 상체가 뒤로 무너지는 자세의 구도.",
            "based_on_beat": 1,
            "characters": [
              "정체불명의 습격자",
              "금월산 피해 남자"
            ],
            "original_description": "정체불명의 습격자(검은 인영·붉은 눈의 남자)의 두 팔이 금월산 피해 남자의 어깨를 짓누른 채 멈춘 정지 구도.",
            "validator_reason": "능동적 신체 접촉(덮치는)이 '멈춘 정지 구도'로 약화되었으므로, 힘의 방향과 자세 불균형이 드러나는 mid-impact freeze로 수정함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 2,
        "scene_heading": "S#2. 도시 뒷골목 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "희미한 가로등 불빛 아래 어두운 골목, 콘크리트 전봇대에 정체불명의 습격자(검은 인영·붉은 눈의 남자)와 효장동 피해 여자의 몸이 밀착된 전신 구도.",
            "based_on_beat": 1,
            "characters": [
              "정체불명의 습격자(검은 인영·붉은 눈의 남자)",
              "효장동 피해 여자"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "어둠 속에서 정체불명의 습격자(검은 인영·붉은 눈의 남자)의 붉은 눈동자만이 선명하게 빛나는 눈가 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "정체불명의 습격자(검은 인영·붉은 눈의 남자)"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "정체불명의 습격자(검은 인영·붉은 눈의 남자)의 치아가 효장동 피해 여자의 목덜미 피부를 강하게 물어뜯어 살점이 당겨지는 미드액션 찰나.",
            "based_on_beat": 1,
            "characters": [
              "정체불명의 습격자(검은 인영·붉은 눈의 남자)",
              "효장동 피해 여자"
            ],
            "original_description": "정체불명의 습격자(검은 인영·붉은 눈의 남자)의 입술과 치아가 효장동 피해 여자의 목덜미 피부에 깊숙이 닿은 찰나.",
            "validator_reason": "모호하게 '닿은' 정적 상태 대신, 원문의 '살점을 뜯는' 능동적인 역학과 피부 변형을 보존한 미드액션 순간으로 재작성함.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "효장동 피해 여자가 두 눈을 감은 채 아스팔트 바닥에 축 늘어져 쓰러진 전신 구도.",
            "based_on_beat": 1,
            "characters": [
              "효장동 피해 여자"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 3,
        "scene_heading": "S#3. 현장 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "수풀 앞 노란색 폴리스 라인 뒤로 방진복을 입은 한국인 감식반 경찰관들이 바닥에 쪼그려 앉은 정지 상태.",
            "based_on_beat": 1,
            "characters": [
              "한국인 감식반 경찰관들"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "검은 천으로 덮인 들것을 양손에 단단히 쥔 한국인 경찰관들의 멈춘 동작.",
            "based_on_beat": 1,
            "characters": [
              "한국인 경찰관들"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "혜수가 한국인 형사들 한가운데 서서 집게손가락으로 특정 방향을 가리키며 입을 벌린 상체 정지 구도.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "한국인 형사들"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 4,
        "scene_heading": "S#4. 옥탑방 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "흐린 톤의 낮, 인천 변두리의 낡은 다세대 빌라 옥상 위 평상과 작은 옥탑방 지붕이 내려다보이는 부감 전경.",
            "based_on_beat": 0,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 5,
        "scene_heading": "S#5. 옥탑방 안 / 실내",
        "shots": [
          {
            "shot_index": 1,
            "description": "작은 창문 틈으로 길게 뻗어 들어온 햇살이 스테인리스 싱크대 위 씻다 만 약초(석창포) 잎사귀에 맺힌 실내 전경.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "가스레인지 위에 놓인 금속 냄비 뚜껑 틈새로 하얀 김이 피어오르는 모습.",
            "based_on_beat": 1,
            "characters": [],
            "original_description": "가스레인지 위에 놓인 금속 냄비 뚜껑 틈새로 하얀 김이 피어오르는 정지 구도.",
            "validator_reason": "불필요한 '정지 구도' 메타 표현을 제거하고 시각적 상태만 자연스럽게 묘사함.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "앞치마를 두른 강민숙이 굳고 어두운 표정으로 거실 TV 화면을 뚫어지게 응시하는 상체.",
            "based_on_beat": 1,
            "characters": [
              "강민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "벌어진 방문 틈에 선 수리영이 두 팔을 천장 쪽으로 뻗은 채 눈을 감고 있는 기지개 자세.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "강민숙의 엄지손가락이 TV 리모컨의 전원 버튼을 꾹 누른 찰나의 손 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "강민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영이 턱을 괸 채 식탁 의자에 앉아 있는 무심한 표정.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 턱을 괸 채 식탁 의자에 엉덩이를 붙이고 앉은 무심한 표정의 정지 상태.",
            "validator_reason": "불필요한 '정지 상태'라는 메타 표현을 제거하고 고정된 상태 묘사로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "강민숙의 손에 들린 주전자 입구에서 짙은 색의 약초 달인 물이 유리컵 바닥으로 쏟아지는 순간.",
            "based_on_beat": 2,
            "characters": [
              "강민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "수리영이 컵 가장자리에 입술을 댄 채 미간을 잔뜩 찡그린 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "외출복 차림의 수리영이 좁은 현관 바닥에 서서 한쪽 운동화 뒤축에 발꿈치를 반쯤 밀어 넣은 하반신 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "수리영이 강민숙의 어깨에 코를 묻고 눈을 지그시 감은 채 미소 짓는 측면.",
            "based_on_beat": 3,
            "characters": [
              "수리영",
              "강민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "강민숙이 수리영의 정수리를 향해 옅고 부드러운 미소를 짓고 있는 얼굴.",
            "based_on_beat": 3,
            "characters": [
              "강민숙",
              "수리영"
            ],
            "original_description": "강민숙이 수리영의 정수리를 향해 옅고 부드러운 미소를 지은 채 멈춘 얼굴.",
            "validator_reason": "실제 이동/추진 동작이 아님에도 '멈춘'이라는 단어를 사용하여 인위적이므로 자연스러운 상태 묘사로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 12,
            "description": "강민숙의 손목 안쪽 피부에 선명하게 새겨진 작은 원 형태의 뚜렷한 표식 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "강민숙"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 6,
        "scene_heading": "S#6. 해안가 도로 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "밝은 해안가 도로 위, 수리영이 양쪽 귀에 하얀 이어폰을 꽂은 채 자전거 핸들을 쥐고 정면을 향해 미소 짓는 상체 구도, 주행 바람에 머리카락이 뒤로 날리는 찰나.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "밝은 해안가 도로 위, 수리영이 양쪽 귀에 하얀 이어폰을 꽂은 채 자전거 핸들을 쥐고 정면을 향해 미소 짓는 상체 구도.",
            "validator_reason": "자전거 주행 동작의 방향성과 추진력을 나타내는 시각적 단서(바람에 날리는 머리카락 등)가 누락되어 동적 동사 freeze 규칙에 따라 보완함.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "수리영이 바다 쪽으로 고개를 완전히 돌린 채 한쪽 무릎을 굽혀 자전거 페달을 밟아 내리는 중간(mid-pedal) 자세, 옷자락이 주행 반대 방향으로 펄럭이는 찰나.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 바다 쪽으로 고개를 완전히 돌린 채 자전거 페달에 발을 올린 정지 자세.",
            "validator_reason": "이동 중인 동작임에도 '정지 자세'라는 표현을 사용하여 모션 방향성을 상실하였으므로, mid-action 순간으로 재작성함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 7,
        "scene_heading": "S#7. 유기견 보호원 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "철장 안에서 덩치 큰 검은색 로트와일러 개가 이빨을 흉폭하게 드러내고 두 앞발을 허공에 든 정지 순간.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "수리영이 턱을 당긴 채 매서운 눈빛으로 로트와일러의 두 눈을 똑바로 응시하는 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "기세가 꺾인 로트와일러 개가 시선을 내린 채 바닥에 배를 깔고 얌전히 엎드린 상태.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "50대 한국인 남성 의사의 손에 들린 얇은 주사기 바늘이 로트와일러의 두꺼운 엉덩이 근육에 박힌 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "50대 한국인 남성 의사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영이 갇혀 있는 유기견 철장들을 바라보며 입술을 살짝 벌린 채 어깨를 늘어뜨린 상체 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영이 오른쪽 귀에 스마트폰을 바짝 밀착한 채 미간을 찌푸리고 입을 굳게 다문 측면 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "비닐 앞치마를 두른 한국인 보호원 도우미가 수리영을 향해 한쪽 팔을 허공에 번쩍 들어 올린 자세.",
            "based_on_beat": 2,
            "characters": [
              "한국인 보호원 도우미",
              "수리영"
            ],
            "original_description": "비닐 앞치마를 두른 한국인 보호원 도우미가 수리영을 향해 한쪽 팔을 크게 흔드는 정지 동작.",
            "validator_reason": "'흔드는'이라는 연속 동작 표현을 배제하고 팔을 들어 올린 고정된 자세로 수정하여 한 찰나의 원칙을 준수함.",
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "수리영의 양손에 쥐어진 이발기(바리캉) 끝부분이 작은 개의 등 털 더미에 닿은 찰나.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 8,
        "scene_heading": "S#8. 번화가·대형 마트 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "어스름한 저녁 네온사인이 켜진 길거리 포장마차 사이 도로, 수리영이 자전거 안장에 앉아 한쪽 무릎을 아래로 굽혀 페달을 밟아 누른 채 앞을 예리하게 주시하는 전신 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "어스름한 저녁 네온사인이 켜진 길거리 포장마차 사이 도로, 수리영이 자전거 안장에 앉아 앞을 예리하게 주시하는 전신 구도.",
            "validator_reason": "자전거를 타는 이동 동작의 방향성과 추진력을 보존하기 위해 페달을 밟는 mid-action 찰나로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "밝게 조명이 켜진 대형 마트 입구 유리문 옆 벽면에 수리영의 자전거가 비스듬히 세워져 있는 상태.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "마트 내부의 상품 진열대 사이에서 수리영이 고개를 옆으로 돌린 채 누군가를 찾는 듯한 상체 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "마트 내부의 상품 진열대 사이에서 수리영이 고개를 옆으로 돌려 누군가를 찾는 듯한 상체 구도.",
            "validator_reason": "시간의 경과로 읽힐 수 있는 '돌려'를 정지된 결과 상태인 '돌린 채'로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "마트 유니폼을 입은 한국인 중년 여직원이 손에 캔 상품을 든 채 수리영을 바라보며 입을 반쯤 벌린 정지 순간.",
            "based_on_beat": 1,
            "characters": [
              "여직원",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영이 눈을 동그랗게 뜨고 혼란스러워하는 표정을 지은 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "양손으로 큰 종이 박스를 가슴 높이까지 들어 올린 마트 남자 직원이 수리영을 향해 고개를 돌린 측면.",
            "based_on_beat": 1,
            "characters": [
              "남자 직원",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "어두운 마트 밖 거리, 수리영이 한 손에 스마트폰을 쥔 채 액정 화면을 심각하게 내려다보는 정지 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 9,
        "scene_heading": "S#9. 해안가 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어둠이 짙게 깔린 해안도로 위, 상체를 굽힌 채 한쪽 자전거 페달에 체중을 실어 내리밟는 수리영의 mid-action, 옷자락이 주행 반대 방향으로 휘날리는 찰나.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "어둠이 짙게 깔린 해안도로 위, 수리영이 상체를 굽힌 채 자전거 페달에 체중을 실어 강하게 밟는 긴박한 정지 포즈.",
            "validator_reason": "주행 중이므로 '정지 포즈'라는 표현을 제거하고, 옷자락이 날리는 motion direction 단서를 더해 동적인 mid-action 순간으로 재작성함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 10,
        "scene_heading": "S#10. 옥탑방 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 옥상 평상 위, 바싹 말린 약초(석창포) 잎사귀 여러 개가 바람에 흩날려 허공에 떠 있는 찰나.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "공중에 떠 있던 마른 잎사귀 하나가 정체불명의 습격자(검은 인영·붉은 눈의 남자)의 낡고 검은 구두 코끝에 닿은 하반신 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "정체불명의 습격자(검은 인영·붉은 눈의 남자)"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "정체불명의 습격자(검은 인영·붉은 눈의 남자)가 굳게 닫힌 옥탑방 철문 현관 앞에 우뚝 선 짙은 실루엣의 뒷모습.",
            "based_on_beat": 1,
            "characters": [
              "정체불명의 습격자(검은 인영·붉은 눈의 남자)"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "정체불명의 습격자(검은 인영·붉은 눈의 남자)의 뭉툭한 손가락 끝이 빳빳한 종이 전단지를 철문 틈새의 잠금쇠 부분으로 깊숙이 밀어 넣은 손 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "정체불명의 습격자(검은 인영·붉은 눈의 남자)"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "무거운 옥탑방 철문이 손가락 두 마디 정도 미세하게 열려 실내의 어두운 틈새를 드러낸 정면 구도.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "희미한 불이 켜진 옥탑방 창문 유리에 두 사람의 상체가 거칠게 겹쳐진 실루엣 그림자.",
            "based_on_beat": 2,
            "characters": [
              "두 사람"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "정체불명의 습격자(검은 인영·붉은 눈의 남자)의 드러난 이빨이 강민숙의 어깨 피부를 강하게 파고들며 짓누르는 찰나.",
            "based_on_beat": 2,
            "characters": [
              "정체불명의 습격자(검은 인영·붉은 눈의 남자)",
              "강민숙"
            ],
            "original_description": "정체불명의 습격자(검은 인영·붉은 눈의 남자)의 크게 벌어진 입이 강민숙의 어깨 피부에 거칠게 닿은 찰나.",
            "validator_reason": "원문의 능동적 폭력(물어뜯는)을 '닿은' 정적 모먼트로 약화시켰으므로 능동성을 보존한 mid-impact로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "강민숙이 입을 크게 벌리고 눈동자를 위로 치켜뜬 채 극심한 고통으로 일그러진 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "강민숙"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 11,
        "scene_heading": "S#11. 옥탑 방 밖 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "비좁고 어두운 골목길 안으로 자전거 앞바퀴를 심하게 튼 채 안장에 앉아 페달을 밟고 있는 mid-action 상태의 수리영.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "비좁고 어두운 골목길 안으로 자전거 앞바퀴를 심하게 비틀어 진입한 수리영의 정지 구도.",
            "validator_reason": "자전거로 진입하는 이동 동작의 추진력을 보존하기 위해 mid-action 찰나로 명확히 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "낡은 다세대 빌라 마당 구석의 시멘트 벽면에 수리영의 자전거가 아무렇게나 눕혀진 상태.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "옥상으로 이어지는 가파르고 비좁은 계단을 뛰어오르는 mid-stride 찰나, 한쪽 무릎을 높게 굽혀 공중에 띄운 수리영의 전신 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 옥상으로 이어지는 가파르고 비좁은 계단을 뛰어오르다 한쪽 무릎을 높게 굽힌 채 멈춘 전신 구도.",
            "validator_reason": "계단을 뛰어오르는 추진력과 방향성을 보존하기 위해 mid-stride 순간으로 재작성함.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "옥상 바닥에 두 발을 딛고 선 수리영이 불쾌감에 코끝을 찡그리고 미간을 잔뜩 좁힌 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영의 시야 정면 끝에 놓인 옥탑방 현관 철문이 반쯤 열린 채 캄캄한 실내 공간을 스산하게 드러낸 정지 구도.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 12,
        "scene_heading": "S#12. 옥탑방 안 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 옥탑방 거실, 켜진 TV와 희미한 스탠드 불빛 아래 수리영이 멈춰 선 채 거실 한 켠으로 고개를 돌려 시선을 고정한 상체 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "어두운 옥탑방 거실, 켜진 TV와 희미한 스탠드 불빛 아래 수리영이 멈춰 서서 주위를 둘러보는 상체 구도.",
            "validator_reason": "'둘러보는'이라는 연속적인 시선 이동 동작을 특정 방향으로 고개를 돌려 시선을 고정한 단일 정지 순간으로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "가스레인지 위 끓다 식은 냄비 클로즈업.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "식탁 위 두 개의 찻잔 중 하나가 바닥을 향해 엎어져 있는 정지 구도.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "수리영의 손이 굳게 닫힌 방문 손잡이를 쥔 찰나의 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "열린 방문 너머 방바닥에 흥건한 검붉은 혈흔과 핏빛 발자국이 찍혀 있는 하단 전경.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영이 입을 벌린 채 크게 놀란 눈으로 바닥을 내려다보는 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "바닥의 피 묻은 발자국이 창문을 가린 천 커튼 밑단으로 이어져 있는 정지 구도.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "수리영의 손이 피 묻은 커튼 끝자락을 강하게 쥐고 있는 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "젖혀진 커튼 뒤로 강민숙이 방바닥에 앉은 채 고개를 푹 수그리고 굳어있는 전신.",
            "based_on_beat": 2,
            "characters": [
              "강민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "강민숙의 어깨와 쇄골 부위에 짐승에게 물어뜯긴 듯 살점이 깊게 패이고 피가 맺혀 있는 끔찍한 상처 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "강민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "수리영이 두 눈을 부릅뜨고 입을 떡 벌린 채 그 자리에 뻣뻣하게 굳은 전신 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 12,
            "description": "수리영이 두 팔을 앞으로 뻗은 채 한쪽 발을 뒤로 뺀 정지 포즈.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 13,
            "description": "수리영의 떨리는 손가락이 스마트폰 액정 화면의 번호를 누른 찰나의 손 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 14,
            "description": "수리영이 스마트폰을 귀에 바짝 댄 채 공포에 질려 눈물을 글썽이는 측면 얼굴.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 15,
            "description": "바닥에 늘어진 강민숙의 창백한 손바닥 안에 구겨진 사진 한 장이 쥐어져 있는 클로즈업.",
            "based_on_beat": 4,
            "characters": [
              "강민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 16,
            "description": "강민숙의 손목 안쪽 피부에 새겨진 작은 원 형태의 표식이 붉은색으로 짙게 물들어 있는 클로즈업.",
            "based_on_beat": 4,
            "characters": [
              "강민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 17,
            "description": "침대 위 빈 벽면 한가운데에 붉은색 원형 표식이 붓으로 그린 듯 뚜렷하게 새겨져 있는 정지 구도.",
            "based_on_beat": 4,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 18,
            "description": "수리영이 양손으로 머리를 감싸 쥐고 천장을 향해 턱을 치켜든 채 비명 짓는 상체.",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 13,
        "scene_heading": "S#13. 옥탑방 외곽 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "수리영이 어두운 옥탑방 외부의 가파른 시멘트 계단 중간에서 한쪽 발을 아래로 내딛기 위해 허공에 뻗은 미드 액션의 전신 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 어두운 옥탑방 외부의 가파른 시멘트 계단 중간에서 한쪽 발을 허공에 뻗은 채 멈춘 전신 구도.",
            "validator_reason": "실제로는 계단을 내려가는 동작이므로 '멈춘'과 같이 정지를 강조하는 표현을 삭제하고 미드 액션으로 재작성했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "혜수가 열린 경찰차 문짝을 한 손으로 짚은 채 계단 쪽을 올려다보는 상체 구도.",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "초점을 잃은 수리영이 계단 아래 시멘트 바닥에 두 팔을 늘어뜨리고 멍하니 서 있는 전신.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "혜수가 수리영의 양어깨를 두 손으로 강하게 움켜쥔 채 굳은 표정으로 마주 보는 정면 구도.",
            "based_on_beat": 2,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영이 고개를 들어 혜수의 얼굴을 올려다보며 입술을 살짝 뗀 측면 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "혜수가 두 눈을 크게 뜨고 입을 반쯤 벌린 채 충격받은 얼굴 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "혜수와 김형사가 가파른 옥탑방 외부 계단을 뛰어오르며 한쪽 무릎을 굽히고 발이 공중에 뜬 미드 액션의 뒷모습.",
            "based_on_beat": 3,
            "characters": [
              "혜수",
              "김형사"
            ],
            "original_description": "혜수와 김형사가 가파른 옥탑방 외부 계단 위에서 한쪽 무릎을 굽히고 공중에 뜬 정지 상태의 뒷모습.",
            "validator_reason": "계단을 뛰어올라가는 추진 동작이므로 '정지 상태의'라는 단어를 삭제하고 역동적인 미드 액션을 보존하도록 수정했습니다.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 14,
        "scene_heading": "S#14. 옥탑방 안 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "옥탑방 거실 한가운데 선 김형사가 허리춤에 양손을 얹고 혀를 차는 듯한 굳은 표정의 상체.",
            "based_on_beat": 1,
            "characters": [
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "수리영이 어깨를 잔뜩 웅크린 채 현관문 턱을 넘어 방 안으로 다급하게 발을 내디딘 찰나.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "핏자국 하나 없이 깨끗한 장판 바닥과 단정하게 닫혀 있는 커튼이 보이는 수리영 방안 전경.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "침대 위 빈 벽면에 아무런 자국 없이 하얀 벽지만 드러난 정지 구도.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영의 얼굴이 창백하게 질린 채 커튼 쪽을 멍하니 응시하는 측면 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영이 거실 식탁 앞에 선 채 두 손바닥으로 깨끗한 식탁 표면을 짚고 있는 상체 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "김형사가 미간을 잔뜩 구긴 채 손가락으로 수리영을 가리키며 입을 비스듬히 벌린 정지 동작.",
            "based_on_beat": 2,
            "characters": [
              "김형사",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "혜수가 눈꼬리를 치켜뜨고 김형사의 옆얼굴을 날카롭게 노려보는 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "혜수",
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "혜수의 손바닥이 수리영의 둥근 어깨 위에 얹혀 있는 찰나.",
            "based_on_beat": 3,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "수리영 방안 구석 바닥에 백팩과 작은 인형이 비스듬히 눕혀져 있는 하단 전경.",
            "based_on_beat": 3,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 15,
        "scene_heading": "S#15. 해안가. 버스정류장 부근 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 밤바다를 배경으로 수리영이 버스정류장 벤치에 허리를 굽히고 앉아 멍하니 앞을 응시하는 측면 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "혜수의 손에 들린 차가운 캔 음료가 수리영의 무릎 위 허공에 멈춰 있는 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영이 벤치에서 일어서서 주먹을 꽉 쥔 채 멈춘 전신 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "수리영이 해안가 도로를 따라 한쪽 다리를 공중에 띄운 채 앞으로 몸을 기울인 역동적인 정지 포즈의 뒷모습.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "혜수가 한 손을 입가에 모으고 수리영의 뒷모습을 향해 입을 크게 벌린 정지 상태.",
            "based_on_beat": 2,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "정류장 기둥 뒤편의 어두운 그림자 속에서 혜수와, 한쪽 발을 내딛고 몸을 앞으로 기울인 달리기 중간 자세의 수리영을 멀리서 담아낸 거칠고 스산한 시점 쇼트.",
            "based_on_beat": 2,
            "characters": [
              "혜수",
              "수리영"
            ],
            "original_description": "정류장 기둥 뒤편의 어두운 그림자 속에서 혜수와 뛰어가는 수리영의 모습을 멀리서 담아낸 거칠고 스산한 시점 쇼트.",
            "validator_reason": "연속 동작인 '뛰어가는'을 motion direction이 보존된 mid-action 순간으로 구체화했습니다.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 16,
        "scene_heading": "S#16. 경찰서 사무실 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "형사과 사무실 유리문을 반쯤 민 상태로 멈춰 선 혜수가 한 손에 스마트폰을 쥔 채 굳은 표정을 지은 상체.",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "책상에 다리를 올리고 의자에 기댄 김형사가 고개를 돌려 혜수를 바라보는 정지 자세.",
            "based_on_beat": 1,
            "characters": [
              "김형사",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "혜수가 김형사의 얼굴 코앞에 스마트폰 액정 화면을 들이밀고 있는 손 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "김형사가 입술을 삐죽 내밀고 귀찮은 듯 눈을 가늘게 뜬 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "혜수가 두 손으로 책상 모서리를 짚은 채 고개를 숙이고 심각하게 인상을 쓴 상체 구도.",
            "based_on_beat": 2,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 17,
        "scene_heading": "S#17. 옥탑방 / 동틀무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "어스름한 새벽빛이 스며드는 낡은 옥탑방 마당 담벼락 위에 검은 고양이 한 마리가 웅크리고 앉아 불 켜진 창문을 향해 고개를 돌린 정지 구도.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "검은 고양이가 담벼락 밖으로 몸을 던져 허공에 떠 있는 찰나의 실루엣.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 18,
        "scene_heading": "S#18. 안방 안 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "동이 튼 방 안, 수리영이 침대 매트리스에 이마를 기댄 채 눈을 감고 웅크린 상체 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "수리영이 침대에서 고개를 치켜든 채 두 눈을 동그랗게 뜬 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 침대에서 고개를 번쩍 들고 두 눈을 동그랗게 뜬 얼굴 클로즈업.",
            "validator_reason": "동작 진행을 암시하는 표현('번쩍 들고')을 고정된 결과 상태('치켜든 채')로 수정하여 찰나를 명확히 함",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영이 굳게 닫힌 자기 방 문고리를 두 손으로 조심스럽게 잡고 있는 정지 자세.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "창문으로 밝은 햇살이 들어오는 수리영 방 안, 바닥과 침대가 깨끗하게 비워진 전경.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영이 한 손에 스마트폰을 쥐고 화들짝 놀라 어깨를 움츠린 찰나.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영이 스마트폰을 귀에 댄 채 입술을 질끈 깨물고 눈썹을 찌푸린 측면.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "수리영이 한 손으로 백팩 끈을 쥔 채 방 밖으로 걸음을 내딛는 중간 동작(mid-stride), 한 발은 공중에 떠 있고 몸의 중심이 앞으로 쏠린 측면 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 한 손으로 백팩 끈을 쥔 채 방을 나서는 정지 구도.",
            "validator_reason": "모호한 정지 구도 대신 이동 동작('나서는')의 모션 방향과 추진력을 보존하는 mid-action 찰나로 구체화",
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "수리영이 세면대 거울 앞에서 물기 젖은 얼굴로 멍하게 거울 속 자신을 응시하는 정면 상체.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "거울에 비친 욕실 타일 벽면에 붉은색 원 형태의 뚜렷한 표식이 새겨져 있는 찰나.",
            "based_on_beat": 3,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "수리영이 등 뒤를 향해 어깨너머로 고개를 완전히 돌린 채, 텅 빈 하얀 욕실 타일 벽을 바라보는 고정된 측면 구도.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 고개를 뒤로 확 돌려 텅 빈 하얀 욕실 타일 벽을 바라보는 측면 구도.",
            "validator_reason": "연속 동작을 암시하는 표현('확 돌려')을 최종적으로 정지된 결과 상태('완전히 돌린 채')로 변환",
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "거실 식탁에 놓인 액자 속 강민숙의 활짝 웃는 얼굴 형상이 마치 진흙처럼 아래로 기괴하게 흘러내리는 찰나.",
            "based_on_beat": 3,
            "characters": [
              "강민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 12,
            "description": "수리영의 오른손 손바닥이 자신의 뺨에 강하게 밀착된 순간의 찡그린 얼굴 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 19,
        "scene_heading": "S#19. 마트 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "아침의 한산한 마트 외부, 수리영이 자전거 앞바퀴를 벽면에 비스듬히 세워둔 찰나.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "마트 내부, 상품 진열대 사이에서 고개를 돌린 수리영이 마트 남자 직원을 바라보는 측면 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "마트 남자 직원"
            ],
            "original_description": "마트 내부, 수리영이 상품 진열대 사이에서 마트 남자 직원을 발견하고 고개를 돌린 측면 구도.",
            "validator_reason": "직원을 발견하는 순간과 고개를 돌리는 동작이 순차적으로 연결되어 있어, 고개가 돌아간 단일 자세로 고정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "마트 남자 직원이 빈 박스를 옆구리에 낀 채 수리영을 바라보는 상체.",
            "based_on_beat": 1,
            "characters": [
              "마트 남자 직원",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "수리영이 미간을 찌푸린 채 마트 남자 직원을 향해 한 걸음 다가선 정지 포즈.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "마트 남자 직원"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "마트 남자 직원이 턱을 긁적이며 입을 반쯤 벌린 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "마트 남자 직원"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영이 입술을 굳게 다물고 마트 천장 모서리를 가리키는 손끝 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "마트 남자 직원"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "마트 남자 직원이 고개를 치켜든 채 수리영의 손끝과 같은 방향을 바라보는 측면.",
            "based_on_beat": 2,
            "characters": [
              "마트 남자 직원",
              "수리영"
            ],
            "original_description": "마트 남자 직원이 수리영의 손끝을 따라 고개를 치켜든 측면.",
            "validator_reason": "수리영의 손끝을 따라가는 시선과 고개를 치켜드는 동작이 시간적으로 연결되어 있어, 올려다보는 단일 자세로 고정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "마트 외부, 천장 구석에 매달린 둥근 CCTV 카메라 렌즈 클로즈업.",
            "based_on_beat": 3,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "수리영이 한 손으로 햇빛을 가린 채 위를 올려다보는 얼굴 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "수리영이 스마트폰을 오른쪽 귀에 바짝 댄 채 입을 벌린 상체 구도.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 20,
        "scene_heading": "S#20. 마트 총무과 / 실내",
        "shots": [
          {
            "shot_index": 1,
            "description": "책상 위 사각 모니터 화면 속 어두운 픽셀 무리가 가득한 정지 구도.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "한국인 남자 보안직원이 모니터 앞 의자에 앉아 고개를 옆으로 갸우뚱하게 기울인 뒷모습.",
            "based_on_beat": 1,
            "characters": [
              "한국인 남자 보안직원"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영이 혜수와 한국인 남자 보안직원 뒤에 서서 두 손을 모아 꽉 쥔 채 굳은 표정으로 모니터를 응시하는 상체.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "혜수",
              "한국인 남자 보안직원"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "혜수가 모니터를 향해 상체를 깊이 숙이고 눈을 가늘게 뜬 측면 얼굴.",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영이 어깨를 움츠린 채 아랫입술을 질끈 깨문 불안한 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "혜수가 상체를 곧게 세운 채 한국인 남자 보안직원을 향해 손바닥을 펴 보인 고정 자세.",
            "based_on_beat": 2,
            "characters": [
              "혜수",
              "한국인 남자 보안직원"
            ],
            "original_description": "혜수가 상체를 세우고 한국인 남자 보안직원을 향해 손바닥을 펴 보인 정지 동작.",
            "validator_reason": "'상체를 세우고'와 '펴 보인'이라는 시간 간격이 있는 연속 동작을 피하기 위해 단일 고정 상태로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "한국인 남자 보안직원이 혜수를 향해 고개를 살짝 숙인 채 멈춘 측면 얼굴.",
            "based_on_beat": 2,
            "characters": [
              "한국인 남자 보안직원",
              "혜수"
            ],
            "original_description": "한국인 남자 보안직원이 혜수를 향해 고개를 살짝 끄덕인 찰나.",
            "validator_reason": "'끄덕인'이라는 움직임 표현을 고개를 숙이고 멈춘 고정 상태로 수정함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 21,
        "scene_heading": "S#21. 경찰서 안 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "혜수와 수리영이 복잡한 형사과 사무실 유리문 안쪽으로 발을 들이민 정지 포즈.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "김형사가 한 손에 서류철을 든 채 삐딱한 자세로 혜수를 노려보는 상체.",
            "based_on_beat": 1,
            "characters": [
              "김형사",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "혜수가 김형사를 향해 허리를 살짝 굽힌 정지 상태.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "김형사가 종이 서류를 혜수 앞 책상 위로 거칠게 내리치는 찰나의 손 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "김형사",
              "혜수"
            ],
            "original_description": "김형사가 종이 서류를 혜수 앞 책상 위로 거칠게 내려놓은 손 클로즈업.",
            "validator_reason": "결과 상태와 부사('거칠게 내려놓은')가 충돌하므로, 힘이 실린 능동적 접촉의 중간 찰나(mid-impact)로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "사무실 안 수많은 한국인 형사들이 우르르 출입구 쪽으로 몸을 튼 찰나의 전경.",
            "based_on_beat": 1,
            "characters": [
              "한국인 형사들"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영이 혜수의 빈 책상 앞 의자에 앉아 멍하니 시선을 내린 상체.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "책상 위에 어지럽게 흩어진 살인사건 현장 확대 사진들 클로즈업.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "수리영이 손가락 끝으로 살인사건 사진 모서리를 짚은 찰나.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "수리영이 눈을 동그랗게 뜨고 입을 떡 벌린 채 충격에 굳은 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "빈자리 책상 위 켜진 모니터 화면 한가운데에 위치 좌표 알림 창이 떠 있는 정지 구도.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "수리영이 고개를 돌린 채 김형사의 빈 책상 모니터를 응시하는 측면.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 고개를 돌려 김형사의 빈 책상 모니터를 응시하는 측면.",
            "validator_reason": "고개를 돌리는 동작과 응시하는 동작이 시간 순서로 연결되어 있어, 고개를 돌린 결과 상태로 고정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 12,
            "description": "모니터 화면 앞에 선 채 마우스 위에 손을 얹은 수리영의 상체.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 모니터 화면 앞까지 다가가 마우스 위에 손을 얹은 상체.",
            "validator_reason": "다가가는 동작과 손을 얹는 동작의 연속을 피하기 위해 다가간 후의 고정 자세로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 13,
            "description": "모니터 화면 속 해상 지도 위 특정 좌표에 붉은색 마커가 찍혀 있는 클로즈업.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 14,
            "description": "턱 근육이 경직된 채 사색이 된 수리영의 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 턱을 부들부들 떨며 사색이 된 얼굴 클로즈업.",
            "validator_reason": "떨고 있는 연속적인 상태('부들부들 떨며')를 순간의 긴장된 고정 상태로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 15,
            "description": "수리영의 오른손이 노란색 포스트잇 위로 볼펜 끝을 강하게 꾹 누른 찰나의 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 16,
            "description": "수리영이 반으로 접힌 작은 메모지를 꽉 쥔 손 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 17,
            "description": "수리영이 접힌 메모지를 바지 주머니 틈새로 반쯤 밀어 넣은 정지 동작.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 18,
            "description": "텅 빈 경찰서 사무실 출입문 밖으로 고개를 튼 채 멈춰선 수리영의 뒷모습.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 텅 빈 경찰서 사무실 출입문 밖으로 고개를 휙 돌린 뒷모습.",
            "validator_reason": "행동의 속도를 묘사하는 표현('휙 돌린') 대신, 방향을 보존한 정지 자세로 수정했습니다.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 22,
        "scene_heading": "S#22. 경찰서 밖 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "맑은 낮 경찰서 건물 앞, 수리영이 자전거 안장에 엉덩이를 뗀 채 한쪽 페달을 강하게 밟아 누른 역동적인 정지 포즈.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 23,
        "scene_heading": "S#23. 어느 PC방 / 실내",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 PC방 내부, 모니터 불빛에 비친 수리영이 마우스를 쥔 채 화면을 뚫어지게 응시하는 상체.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "PC방 모니터 화면에 바다 지도의 상세 위성 사진이 띄워져 있는 클로즈업.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "여러 번 접힌 A4 용지 지도 뭉치가 수리영의 열린 백팩 지퍼 틈 사이로 절반쯤 들어간 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 24,
        "scene_heading": "S#24. 해안가 / 소나기",
        "shots": [
          {
            "shot_index": 1,
            "description": "먹구름이 짙게 깔린 잿빛 하늘 아래, 굵은 빗방울들이 해안가 아스팔트 바닥에 부딪혀 산산이 부서지는 찰나의 전경.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "세찬 비를 맞으며 상체를 잔뜩 굽힌 수리영이 자전거 안장에 앉아 한쪽 페달을 힘껏 밟아 누르며 빗속을 뚫고 나아가는 mid-action 찰나.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "세찬 비를 맞으며 상체를 잔뜩 굽힌 수리영이 자전거 핸들을 강하게 움켜쥔 정지 구도.",
            "validator_reason": "실제 정지 상태가 아님에도 '정지 구도'라고 표현하여 추진력이 누락되었으므로, 페달을 밟는 mid-action 순간으로 수정해 방향성을 보존함.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영의 머리카락과 얼굴이 빗물에 흠뻑 젖은 채 앞을 매섭게 노려보는 측면 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 25,
        "scene_heading": "S#25. 옥탑방 안 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "어스름한 해 질 녘 옥탑방 현관, 바닥 장판 위에 진흙이 묻은 거친 발자국 여러 개가 선명하게 찍혀 있는 하단 전경.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "현관에 선 수리영이 입을 벌린 채 가슴을 부여잡고 굳은 상체 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "거실 식탁 의자가 바닥에 아무렇게나 나뒹굴고 창문이 활짝 열려 있는 어수선한 실내 전경.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "수리영 방의 열린 문틈 너머로 하얀 벽면 한가운데 붉은색 원형 표식이 뚜렷하게 그려진 정지 구도.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "붉은 원형 표식 정중앙에 핏자국이 묻은 낡은 사진 한 장이 핀으로 꽂혀 있는 클로즈업.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영의 떨리는 손가락 끝이 벽에 꽂힌 사진 모서리를 막 움켜쥔 찰나.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "피가 묻고 구겨진 낡은 사진 속, 둥근 원이 달린 지붕 아래 두 어린 여자아이가 앉아 있는 흑백 이미지 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "두 어린 여자아이"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "수리영이 동공이 커진 채 사진을 눈앞에 바짝 들고 굳어버린 얼굴.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "수리영이 엉덩이를 침대 매트리스에 댄 채 상체를 푹 숙인 정지 포즈.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "등에 백팩을 멘 수리영이 현관문을 등지고 고개를 돌려 엉망이 된 거실을 뒤돌아보는 측면.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "수리영이 피 묻은 사진을 주먹 안에 꽉 쥐어 구겨진 손 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 26,
        "scene_heading": "S#26. 포구 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "비가 그친 후 짙은 안개가 자욱하게 깔린 텅 빈 포구의 차갑고 고요한 전경.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "수리영이 젖은 갯바위 위에 웅크리고 앉아 안개 낀 바다를 멍하니 응시하는 측면 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "갯바위에 놓인 수리영의 스마트폰 액정 화면에 '혜수이모'라는 발신자 이름이 떠 있는 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "짙은 회색 안개 너머로 낡은 소형 어선의 앞머리가 서서히 윤곽을 드러낸 찰나.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영이 갯바위 위에 선 채 배 쪽으로 고개를 쭉 빼고 응시하는 전신 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 갯바위에서 벌떡 일어나 배 쪽으로 고개를 쭉 뺀 전신 구도.",
            "validator_reason": "일어나는 동작과 고개를 빼는 동작이 시간 순서로 섞여 있어, 선 채 고개를 뺀 단일 고정 자세로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "인우가 뱃머리에서 시멘트 선착장 바닥으로 도약해 공중에 떠 있는 mid-action 찰나.",
            "based_on_beat": 2,
            "characters": [
              "인우"
            ],
            "original_description": "인우가 뱃머리에서 뛰어내려 시멘트 선착장 바닥에 두 발을 딛은 정지 포즈.",
            "validator_reason": "뛰어내리는 동작과 두 발을 딛는 착지 동작이 섞여 있어, 추진력을 보존한 공중 체공 찰나로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "인우의 굵은 손이 밧줄을 쇠기둥에 단단히 감아쥔 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "수리영이 인우 앞에 마주 선 채 두 손을 모으고 절박한 눈빛으로 올려다보는 상체 구도.",
            "based_on_beat": 3,
            "characters": [
              "수리영",
              "인우"
            ],
            "original_description": "수리영이 인우 앞까지 다가가 두 손을 모은 채 절박한 눈빛으로 올려다보는 상체 구도.",
            "validator_reason": "다가가는 동작과 올려다보는 상태가 이어져 있어, 다가가 멈춰 선 고정 상태로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "인우가 고개를 돌린 채 한쪽 눈썹을 치켜올리고 텅 빈 바다를 쳐다보는 측면 얼굴.",
            "based_on_beat": 3,
            "characters": [
              "인우"
            ],
            "original_description": "인우가 한쪽 눈썹을 치켜올린 채 고개를 돌려 텅 빈 바다를 힐끗 쳐다보는 측면 얼굴.",
            "validator_reason": "고개를 돌리는 동작과 쳐다보는 상태의 시간 간격을 없애고 고개를 돌린 채 멈춘 자세로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "인우가 수리영을 향해 무심하게 턱을 살짝 치켜든 정지 찰나.",
            "based_on_beat": 3,
            "characters": [
              "인우",
              "수리영"
            ],
            "original_description": "인우가 수리영을 향해 무심하게 턱을 까딱거린 찰나.",
            "validator_reason": "왕복 동작인 '까딱거린'을 단일 정지 상태인 '치켜든' 찰나로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "수리영이 바다를 향해 선 채 스마트폰을 입가에 바짝 가져다 댄 정지 상태.",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 12,
            "description": "수리영이 눈을 지그시 감은 채 옅은 미소를 띤 얼굴 클로즈업.",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 27,
        "scene_heading": "S#27. 옥탑방 안 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "어스름한 옥탑방 거실, 혜수가 한 손에 든 스마트폰을 뚫어지게 내려다보는 굳은 상체.",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "고개를 치켜든 채 옆에 선 김형사를 향해 두 눈을 크게 뜬 혜수의 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "김형사"
            ],
            "original_description": "혜수가 고개를 번쩍 들어 옆에 선 김형사를 향해 두 눈을 크게 뜬 얼굴 클로즈업.",
            "validator_reason": "'고개를 번쩍 들어'라는 연속 동작을 '고개를 치켜든 채'라는 결과 상태의 고정된 자세로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "양손을 허리춤에 얹은 채 미간을 찌푸리고 고개를 한쪽으로 돌린 김형사의 정지 자세.",
            "based_on_beat": 2,
            "characters": [
              "김형사"
            ],
            "original_description": "김형사가 양손을 허리춤에 얹은 채 미간을 찌푸리고 고개를 젓는 정지 자세.",
            "validator_reason": "'고개를 젓는'이라는 반복 동작을 한쪽으로 고개가 돌아간 찰나의 자세로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "입술 한쪽을 비죽 올린 김형사의 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "김형사"
            ],
            "original_description": "김형사가 혀를 차며 입술 한쪽을 비죽 올린 얼굴 클로즈업.",
            "validator_reason": "'혀를 차며'라는 소리/동작 과정을 제거하고 입술을 비죽 올린 찰나의 표정만 남겼습니다.",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "텅 빈 옥탑방 현관의 낡은 철문이 바람에 의해 틈새가 미세하게 벌어진 정지 구도.",
            "based_on_beat": 3,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "엉망이 된 빈 거실에 짙은 그림자만이 길게 드리워진 쓸쓸한 실내 전경.",
            "based_on_beat": 3,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 28,
        "scene_heading": "S#28. 바다 + 갑판 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "해 질 무렵 황금빛 바다 위, 뱃머리에 부딪힌 하얀 물보라가 공중에 멈춰 있는 낡은 소형 어선의 측면 전경.",
            "based_on_beat": 1,
            "characters": [],
            "original_description": "해 질 무렵 황금빛이 감도는 바다 위를 가로지르는 낡은 소형 어선의 측면 전경.",
            "validator_reason": "'가로지르는'이라는 이동 진행 표현을 뱃머리의 물보라가 멈춘 정지 찰나로 재작성.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "어선의 갑판 위, 수리영이 바닥에 엉덩이를 대고 홀로 앉아 앞을 응시하는 정지 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영이 펼쳐진 종이 지도를 향해 팔을 쭉 뻗은 채 멈춘 손 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "인우가 미간을 깊게 찌푸린 채 지도를 내려다보는 굳은 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영의 손가락 끝이 낡은 사진 표면을 짚은 채 인우 눈앞 허공에 멈춰 있는 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "인우가 두 눈을 크게 뜨고 입을 살짝 벌린 채 당황한 표정의 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "수리영이 사진을 쥔 손을 인우의 가슴 쪽으로 바짝 들이민 정지 포즈.",
            "based_on_beat": 3,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "갑판 바닥에서 두 발이 살짝 떨어진 채 상체를 일으키는 중간 자세로 허공에 멈춘 인우의 전신.",
            "based_on_beat": 3,
            "characters": [
              "인우"
            ],
            "original_description": "인우가 갑판 바닥에서 두 발을 떼고 몸을 일으키려 허공에 뜬 찰나의 전신.",
            "validator_reason": "'몸을 일으키려'라는 의도적 동작 흐름을 제거하고 몸이 뜬 찰나의 시각적 상태만 묘사.",
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "인우가 조타실 문을 향해 거칠게 상체를 기울인 채 멈춘 역동적인 뒷모습.",
            "based_on_beat": 3,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "인우의 뒤에서 조타실 문턱 위로 한쪽 발을 높이 들어 올려 내디딘 순간의 수리영 정지 구도.",
            "based_on_beat": 3,
            "characters": [
              "수리영",
              "인우"
            ],
            "original_description": "수리영이 인우의 뒤를 쫓아 조타실 문턱에 한쪽 발을 높이 내디딘 정지 구도.",
            "validator_reason": "'뒤를 쫓아'라는 연속 동작 단서를 제거하고 문턱을 넘는 중간 자세의 공간적 상태로 재작성.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 29,
        "scene_heading": "S#29. 조타실 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "좁은 조타실 내부, 조타기를 향해 한 팔을 뻗은 인우와 두 팔을 양옆으로 뻗어 그의 앞을 가로막은 수리영의 정지 자세.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "인우"
            ],
            "original_description": "좁은 조타실 내부, 수리영이 두 팔을 양옆으로 뻗어 조타기를 잡으려는 인우의 앞을 가로막은 정지 포즈.",
            "validator_reason": "'잡으려는'이라는 의도 및 미래 동작을 실제 눈에 보이는 정지 자세로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "수리영이 미간을 잔뜩 찌푸리고 입을 크게 벌린 채 눈을 부릅뜬 분노한 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "인우가 턱을 살짝 치켜든 채 어두운 표정으로 수리영을 빤히 내려다보는 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "인우",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "수리영의 집게손가락 끝이 낡은 사진 속 어린 여자아이의 흑백 얼굴 위를 강하게 짚고 있는 손 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "어린 여자아이"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "입술을 살짝 벌린 채 핏기가 가신 사색이 된 얼굴로 굳어 있는 인우의 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "인우"
            ],
            "original_description": "인우가 입술을 파르르 떨며 핏기가 가신 사색이 된 얼굴 클로즈업.",
            "validator_reason": "'파르르 떨며'라는 연속 동작 묘사를 시각적인 고정 상태로 변경함.",
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영이 인우의 어깨너머 조타실 뒤쪽 벽면을 향해 시선을 고정한 측면 얼굴.",
            "based_on_beat": 3,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "낡은 조타실 내부 벽면에 크고 작은 검은색 원들이 어지럽게 붓칠된 정지 전경.",
            "based_on_beat": 3,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "검은색 원들 사이에 뚜렷하게 그려진 붉은색 원형 표식 클로즈업.",
            "based_on_beat": 3,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "수리영이 눈꺼풀을 반쯤 감은 채 상체가 앞으로 크게 기울어져 쓰러지는 찰나의 측면 구도.",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 눈꺼풀을 반쯤 감은 채 다리에 힘이 풀려 상체가 푹 꺾인 측면 구도.",
            "validator_reason": "시간의 인과를 나타내는 '힘이 풀려'를 제거하고 쓰러지는 mid-action 모먼트로 재작성함.",
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "수리영의 창백한 이마가 인우의 단단한 어깨 위에 닿은 채 멈춘 찰나.",
            "based_on_beat": 4,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "인우가 눈꼬리를 매섭게 내리깔고 자신의 어깨에 쓰러진 수리영을 싸늘하게 노려보는 측면 얼굴 클로즈업.",
            "based_on_beat": 4,
            "characters": [
              "인우",
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 30,
        "scene_heading": "S#30. 바다 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "붉게 물든 해 질 녘 바다 위로 노을빛이 황금색으로 길게 부서져 반짝이는 고요한 수면 전경.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "짙은 회색 안개가 거대한 벽처럼 수면 위에 두꺼운 띠를 두른 채 멈춰 있는 바다 전경.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "낡은 소형 어선의 앞머리가 짙고 탁한 안개 덩어리 속으로 절반쯤 밀려 들어간 찰나의 멈춘 구도.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          }
        ]
      }
    ],
    "total_shots": 211,
    "changed_shots": 47
  },
  "step_id": "shot_validator",
  "run_id": "3c97f375-2229-4718-b038-1aaa923c1c39",
  "resolved_model": "gemini-pro",
  "updated_at": "2026-07-16T16:20:15.019279+00:00",
  "schema_version": 1,
  "config_hash": "99914b932bd37a50",
  "project_config_snapshot": {}
}