{
  "status": "completed",
  "completed_count": 29,
  "applicable_count": 29,
  "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 찰나로 수정함."
          },
          {
            "shot_index": 2,
            "description": "어두운 숲속, 검은 인영이 공중에 뜬 상태로 한국인 남자의 상체 위로 두 팔을 뻗은 측면 구도.",
            "based_on_beat": 1,
            "characters": []
          },
          {
            "shot_index": 3,
            "description": "검은 인영의 형체가 바닥에 쓰러진 한국인 남자 위로 몸을 겹친 상태로 멈춘 정지 순간.",
            "based_on_beat": 1,
            "characters": []
          }
        ]
      },
      {
        "scene_index": 2,
        "scene_heading": "S#2. 도시 뒷골목 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "안개가 낀 희미한 가로등 불빛 아래 뒷골목 전봇대, 한국인 남자와 한국인 여자의 상체가 서로 밀착된 상태로 멈춘 측면 구도.",
            "based_on_beat": 1,
            "characters": []
          },
          {
            "shot_index": 2,
            "description": "눈동자가 붉은 한국인 남자의 날카로운 이빨이 한국인 여자의 목에 깊이 박힌 클로즈업.",
            "based_on_beat": 1,
            "characters": []
          },
          {
            "shot_index": 3,
            "description": "한국인 여자의 몸이 바닥에 축 늘어진 상태로 멈춰있는 정지 순간.",
            "based_on_beat": 1,
            "characters": []
          }
        ]
      },
      {
        "scene_index": 3,
        "scene_heading": "S#3. 현장 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "잿빛 하늘 아래 폴리스 라인이 쳐진 현장, 경찰복을 입은 한국인 경찰들이 훼손된 시신 주변에 멈춰 선 정지 구도.",
            "based_on_beat": 1,
            "characters": []
          },
          {
            "shot_index": 2,
            "description": "현장 한가운데서 무전기를 쥔 상태로 입을 반쯤 벌린 혜수의 상체 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ]
          }
        ]
      },
      {
        "scene_index": 4,
        "scene_heading": "S#4. 옥탑방 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "낮 시간대, 차분한 회색조의 인천 변두리에 위치한 오래된 다세대 빌라 옥탑방과 주변 전경이 넓게 펼쳐진 부감 구도.",
            "based_on_beat": 1,
            "characters": []
          }
        ]
      },
      {
        "scene_index": 5,
        "scene_heading": "S#5. 옥탑방 안 / 실내",
        "shots": [
          {
            "shot_index": 1,
            "description": "작은 창으로 가느다란 햇살이 들어오는 옥탑방 거실, 앞치마를 두른 민숙이 낡은 TV 화면을 향해 굳은 표정으로 시선을 고정한 정지 구도.",
            "based_on_beat": 1,
            "characters": [
              "민숙"
            ]
          },
          {
            "shot_index": 2,
            "description": "방문이 활짝 열린 상태로, 수리영이 두 팔을 위로 뻗은 기지개 자세로 멈춘 전신 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 3,
            "description": "민숙의 손가락이 TV 리모컨의 전원 버튼을 꾹 누른 상태로 멈춘 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "민숙"
            ]
          },
          {
            "shot_index": 4,
            "description": "수리영이 식탁 의자에 앉아 입술을 삐죽 내민 상태로 멈춘 상체 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 5,
            "description": "민숙의 손이 검은 약초 달인 물이 담긴 유리컵을 쥔 채 수리영 앞 식탁 표면에 맞닿은 찰나.",
            "based_on_beat": 2,
            "characters": [
              "민숙",
              "수리영"
            ],
            "original_description": "민숙의 손이 검은 약초 달인 물이 담긴 유리컵을 수리영 앞 식탁 위에 내려놓은 직후의 멈춘 순간.",
            "validator_reason": "'~직후'라는 시간 연결 표현을 제거하고, 컵이 식탁에 닿은 시각적 정지 상태로 수정했습니다."
          },
          {
            "shot_index": 6,
            "description": "수리영이 컵 가장자리를 입에 댄 상태로 눈을 질끈 감은 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 7,
            "description": "현관 앞에서 수리영이 한쪽 발을 운동화에 반쯤 넣은 상태로 멈춘 전신 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 8,
            "description": "수리영이 민숙의 어깨에 코를 파묻은 상태로 눈을 감고 멈춘 측면 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "민숙"
            ]
          },
          {
            "shot_index": 9,
            "description": "민숙의 피부 위로 붉은색의 작은 원형 표식이 뚜렷하게 드러난 팔목 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "민숙"
            ]
          }
        ]
      },
      {
        "scene_index": 6,
        "scene_heading": "S#6. 해안가 도로 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "잿빛 구름이 낀 해안가 도로, 이어폰을 낀 수리영이 한쪽 자전거 페달을 밟아 내리는 중간 동작으로, 바람에 머리카락이 뒤로 날리며 정면을 향해 미소 짓고 있는 찰나.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "잿빛 구름이 낀 해안가 도로, 이어폰을 낀 수리영이 자전거 페달 위에 발을 얹은 자세로 정면을 향해 미소 지은 정지 순간.",
            "validator_reason": "달리는 동작의 추진력을 보존하기 위해 페달을 밟는 중간 동작과 머리카락이 날리는 묘사를 추가하고, '정지 순간'이라는 정적인 표현을 수정했습니다."
          },
          {
            "shot_index": 2,
            "description": "자전거 핸들을 꽉 쥔 채 고개를 한쪽으로 돌려 눈을 크게 뜨고 있는 수리영의 측면 구도, 옷깃이 주행 반대 방향으로 펄럭이는 상태.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 자전거 핸들을 꽉 쥔 상태로 고개를 한쪽으로 돌려 눈을 크게 뜬 측면 구도.",
            "validator_reason": "'돌려'라는 연속적 동작 표현을 '돌린 채'의 고정 상태로 수정하고, 주행 중의 속도감을 살리기 위해 펄럭이는 옷깃 묘사를 추가했습니다."
          }
        ]
      },
      {
        "scene_index": 7,
        "scene_heading": "S#7. 유기견 보호원 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "철창 안, 입을 크게 벌리고 앞발을 허공에 치켜든 상태로 멈춘 덩치 큰 검은색 로트와일러의 정면 구도.",
            "based_on_beat": 1,
            "characters": []
          },
          {
            "shot_index": 2,
            "description": "수리영이 철창 앞쪽으로 상체를 기울인 상태로 로트와일러의 눈을 매섭게 응시하는 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 3,
            "description": "로트와일러가 바닥에 배를 깔고 엎드린 상태로 시선을 아래로 내린 정지 구도.",
            "based_on_beat": 1,
            "characters": []
          },
          {
            "shot_index": 4,
            "description": "50대 한국인 수의사의 손이 주사기 바늘을 로트와일러의 엉덩이에 꽂아넣은 상태로 멈춘 클로즈업.",
            "based_on_beat": 1,
            "characters": []
          },
          {
            "shot_index": 5,
            "description": "수리영이 철창 안의 개들을 바라보며 입술을 살짝 벌린 상태로 멈춘 상체 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 6,
            "description": "수리영의 손가락이 불이 켜진 휴대폰 화면 표면에 닿아있는 손 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 7,
            "description": "수리영이 한 손에 가위를 쥔 상태로 강아지의 털 위에 가위날을 맞댄 측면 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ]
          }
        ]
      },
      {
        "scene_index": 8,
        "scene_heading": "S#8. 번화가·대형 마트 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "해 질 무렵 네온사인이 켜진 포구 앞 번화가, 수리영이 자전거 앞바퀴를 마트 입구 유리문 옆에 붙인 상태로 멈춰 선 전신 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 2,
            "description": "마트 안, 수리영이 매장 진열대 사이에서 고개를 앞으로 길게 뺀 자세로 멈춘 상체 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 3,
            "description": "수리영이 한국인 여성 마트 직원 앞에 서서 입을 벌린 상태로 멈춘 측면 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 4,
            "description": "남자 직원이 양손에 종이 상자를 든 상태로 수리영 쪽으로 고개를 돌린 정지 순간.",
            "based_on_beat": 1,
            "characters": [
              "남자 직원"
            ]
          },
          {
            "shot_index": 5,
            "description": "마트 밖 실외를 배경으로, 수리영이 휴대폰을 귀에 댄 상태로 미간을 찌푸리고 있는 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 마트 자동문 밖으로 나와 휴대폰을 귀에 댄 상태로 미간을 찌푸린 얼굴 클로즈업.",
            "validator_reason": "'~밖으로 나와'라는 표현이 이동 완료 후 이어지는 시간 경과를 암시할 수 있어, 배경 묘사와 단일 정지 상태만 남도록 수정했습니다."
          }
        ]
      },
      {
        "scene_index": 9,
        "scene_heading": "S#9. 해안가 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "짙은 안개와 어둠이 깔린 밤 해안도로, 수리영이 상체를 굽힌 채 자전거 핸들을 꽉 쥐고 페달을 밟아 한쪽 무릎이 아래로 향한 찰나, 옷자락과 머리카락이 뒤로 흩날리는 측면 구도.",
            "based_on_beat": 0,
            "characters": [
              "수리영"
            ],
            "original_description": "짙은 안개와 어둠이 깔린 밤 해안도로, 수리영이 상체를 굽힌 자세로 자전거 핸들을 꽉 쥔 상태의 측면 구도.",
            "validator_reason": "원문의 '바삐 달려가는' 이동 동작을 살리기 위해 동적 동사 freeze 규칙을 적용하여 페달을 밟는 mid-action 자세와 추진 방향(흩날리는 옷자락 등)을 추가했습니다."
          }
        ]
      },
      {
        "scene_index": 10,
        "scene_heading": "S#10. 옥탑방 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 밤의 옥탑방 옥상, 바람에 날린 마른 석창포 잎이 거친 질감의 낡은 구두 코에 닿은 상태로 멈춘 바닥 클로즈업.",
            "based_on_beat": 1,
            "characters": []
          },
          {
            "shot_index": 2,
            "description": "굳게 닫힌 옥탑방 낡은 철문 현관, 문틈에 꽂힌 전단지 끝에 낯선 남자의 굵은 손가락이 닿아있는 손 클로즈업.",
            "based_on_beat": 1,
            "characters": []
          },
          {
            "shot_index": 3,
            "description": "어두운 옥탑방 철문이 아주 미세하게 열린 틈 사이로 컴컴한 실내의 일부가 보이는 정지 구도.",
            "based_on_beat": 1,
            "characters": []
          },
          {
            "shot_index": 4,
            "description": "옥탑방 유리창 위로, 거대한 낯선 남자의 짙은 실루엣이 민숙의 그림자 위로 겹쳐진 정지 컷.",
            "based_on_beat": 1,
            "characters": [
              "민숙"
            ]
          }
        ]
      },
      {
        "scene_index": 11,
        "scene_heading": "S#11. 옥탑 방 밖 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 다세대 빌라 마당 구석, 수리영의 두 손이 자전거 핸들에서 막 떨어진 상태의 전신 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 2,
            "description": "수리영이 옥탑방으로 이어지는 가파른 시멘트 계단 중간에서, 한쪽 발이 공중에 들린 채 윗계단을 향해 급히 오르는 역동적인 mid-action 자세의 측면 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 옥탑방으로 이어지는 가파른 시멘트 계단 중간에서, 한쪽 발을 윗계단에 올린 상태로 동작을 멈춘 측면 구도.",
            "validator_reason": "급히 오르는 추진 동작 중 실제로 멈춘 상황이 아님에도 '동작을 멈춘'이라는 정지 강조 표현을 사용하여 동적 동사 freeze 규칙을 위반함."
          },
          {
            "shot_index": 3,
            "description": "수리영이 코끝을 찡그린 상태로 눈을 동그랗게 뜬 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 4,
            "description": "옥상에 올라선 수리영의 시선 끝, 옥탑방 철문이 반쯤 열린 상태로 멈춰 있는 정면 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ]
          }
        ]
      },
      {
        "scene_index": 12,
        "scene_heading": "S#12. 옥탑방 안 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 거실 스탠드 불빛 아래, 수리영이 옥탑방 현관에 선 채 실내를 응시하는 정지 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 2,
            "description": "낡은 거실 식탁 위, 엎어진 찻잔 한 개와 똑바로 놓인 찻잔 한 개가 덩그러니 놓인 클로즈업.",
            "based_on_beat": 1,
            "characters": []
          },
          {
            "shot_index": 3,
            "description": "수리영의 굳은 손이 닫힌 방문의 쇠 손잡이를 꽉 움켜쥔 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 4,
            "description": "방바닥에 흥건한 핏자국과 붉은 발자국 무리가 닫힌 창문 커튼 쪽으로 이어진 실내 바닥.",
            "based_on_beat": 1,
            "characters": []
          },
          {
            "shot_index": 5,
            "description": "수리영의 두 손이 굳게 닫힌 커튼 가장자리를 꽉 거머쥔 상체 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 6,
            "description": "수리영이 양옆으로 활짝 젖힌 커튼을 붙잡은 채 눈을 크게 뜬 정지 순간.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 7,
            "description": "커튼 뒤 공간, 머리를 아래로 푹 숙인 민숙이 방바닥에 축 늘어진 채 주저앉은 전신 구도.",
            "based_on_beat": 1,
            "characters": [
              "민숙"
            ]
          },
          {
            "shot_index": 8,
            "description": "수리영이 바닥의 민숙을 향해 두 팔을 뻗은 채 입을 크게 벌린 정지 순간.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "민숙"
            ]
          },
          {
            "shot_index": 9,
            "description": "거칠게 뜯겨진 살점과 붉은 피가 흥건한 민숙의 어깨 부위 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "민숙"
            ]
          },
          {
            "shot_index": 10,
            "description": "두 팔을 몸에 바짝 붙인 수리영이 뒤로 한 걸음 물러나는 도중 뒷발이 바닥에 닿기 직전의 mid-action 자세로 굳어버린 전신 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "두 팔을 몸에 바짝 붙인 수리영이 뒤로 한 걸음 물러선 자세로 굳어버린 전신 구도.",
            "validator_reason": "원문의 뒤로 주춤하며 물러나는 추진/이동 동작을 보존하기 위해 mid-action freeze 규칙을 적용함"
          },
          {
            "shot_index": 11,
            "description": "수리영이 떨리는 두 손으로 휴대폰을 귀에 바짝 밀착한 측면 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 12,
            "description": "축 늘어진 민숙의 손아귀에 구겨진 낡은 사진 한 장이 꽉 쥐어진 손 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "민숙"
            ]
          },
          {
            "shot_index": 13,
            "description": "수리영의 손가락 끝이 민숙의 손에 들린 구겨진 사진 가장자리에 닿은 정지 순간.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "민숙"
            ]
          },
          {
            "shot_index": 14,
            "description": "민숙의 손목 피부 위로 붉은색 문신 표식이 선명하게 드러난 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "민숙"
            ]
          },
          {
            "shot_index": 15,
            "description": "침대 위쪽 벽면에 붓으로 그린 듯한 검붉은 원형 표식이 뚜렷하게 새겨진 정지 구도.",
            "based_on_beat": 2,
            "characters": []
          },
          {
            "shot_index": 16,
            "description": "수리영이 양손으로 자신의 머리를 감싸 쥔 채 입을 크게 벌린 상체 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ]
          }
        ]
      },
      {
        "scene_index": 13,
        "scene_heading": "S#13. 옥탑방 외곽 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "옥탑방 밖 가파른 시멘트 계단 위, 수리영이 입을 크게 벌린 채 한쪽 발을 허공에 띄운 미드-스트라이드(mid-stride) 전신 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "옥탑방 밖 가파른 시멘트 계단 위, 수리영이 입을 크게 벌린 상태로 멈춘 전신 구도.",
            "validator_reason": "계단을 내려가는 동적 추진력을 반영하여 '멈춘' 표현을 빼고 mid-stride 자세로 수정함."
          },
          {
            "shot_index": 2,
            "description": "수리영의 운동화 한 짝이 좁은 계단 중간을 딛고, 반대쪽 발은 아직 공중에 머문 미드-스텝(mid-step) 찰나.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영의 운동화 한 짝이 좁은 계단 중간을 위태롭게 딛은 찰나의 멈춘 순간.",
            "validator_reason": "정지를 강조하는 대신 계단을 내려오는 방향성과 추진력을 보존한 미드-스텝 자세로 수정함."
          },
          {
            "shot_index": 3,
            "description": "붉은 경광등이 켜진 경찰차 문 옆, 혜수가 계단 쪽을 향해 시선을 고정한 전신 구도.",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ]
          },
          {
            "shot_index": 4,
            "description": "혜수가 수리영의 코앞에 마주 서 있는 측면 구도.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "수리영"
            ],
            "original_description": "혜수가 수리영의 코앞까지 다가가 마주 선 측면 구도.",
            "validator_reason": "'다가가 마주 선'이라는 두 가지 연속 동작을 '마주 서 있는' 단일 결과 상태로 수정함."
          },
          {
            "shot_index": 5,
            "description": "초점을 잃은 수리영이 혜수의 얼굴을 올려다보는 상체 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "혜수"
            ],
            "original_description": "초점을 잃은 수리영이 고개를 들어 혜수의 얼굴을 올려다보는 상체 구도.",
            "validator_reason": "'고개를 들어'라는 선행 동작을 삭제하고 '올려다보는' 단일 정지 자세만 남김."
          },
          {
            "shot_index": 6,
            "description": "혜수가 눈을 동그랗게 뜬 채 미간을 심하게 찌푸린 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ]
          },
          {
            "shot_index": 7,
            "description": "혜수와 김형사가 옥탑방으로 향하는 계단에 한쪽 발을 딛고 반대쪽 발은 허공에 띄운 뛰어오르는 미드-액션(mid-action) 구도.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "김형사"
            ],
            "original_description": "혜수와 김형사가 옥탑방으로 향하는 계단에 한쪽 발을 올린 정지 순간.",
            "validator_reason": "원문의 뛰어 올라가는 추진력을 보존하기 위해 '정지 순간'이라는 단어 대신 미드-액션 자세로 구체화함."
          }
        ]
      },
      {
        "scene_index": 14,
        "scene_heading": "S#14. 옥탑방 안 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "옥탑방 현관문 앞, 김형사가 팔짱을 낀 채 굳은 표정으로 선 상체 구도.",
            "based_on_beat": 2,
            "characters": [
              "김형사"
            ]
          },
          {
            "shot_index": 2,
            "description": "혜수가 현관 안쪽에서 고개를 돌려 바깥의 수리영을 바라보는 측면 구도.",
            "based_on_beat": 2,
            "characters": [
              "혜수"
            ]
          },
          {
            "shot_index": 3,
            "description": "수리영이 한쪽 발로 활짝 열린 자기 방 문턱을 넘은 상태의 정지 순간.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 4,
            "description": "핏자국 하나 없이 깨끗하게 정돈된 수리영의 방안과 활짝 젖혀진 커튼 전경.",
            "based_on_beat": 1,
            "characters": []
          },
          {
            "shot_index": 5,
            "description": "창백한 얼굴의 수리영이 방 한가운데 멍하니 선 상체 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 6,
            "description": "수리영이 깨끗한 거실 식탁을 향해 곧은 손가락을 가리킨 전신 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 7,
            "description": "김형사가 미간을 구긴 채 고개를 옆으로 튼 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "김형사"
            ]
          },
          {
            "shot_index": 8,
            "description": "혜수가 김형사를 향해 날카롭게 눈을 치켜뜬 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "혜수"
            ]
          },
          {
            "shot_index": 9,
            "description": "혜수의 손바닥이 수리영의 어깨 위에 다정하게 얹힌 정지 순간.",
            "based_on_beat": 2,
            "characters": [
              "혜수",
              "수리영"
            ]
          },
          {
            "shot_index": 10,
            "description": "수리영의 방바닥 한쪽에 백팩과 인형이 덩그러니 놓인 멈춘 컷.",
            "based_on_beat": 1,
            "characters": []
          }
        ]
      },
      {
        "scene_index": 15,
        "scene_heading": "S#15. 해안가",
        "shots": [
          {
            "shot_index": 1,
            "description": "짙은 어둠이 깔린 해안가 버스정류장 벤치, 수리영이 초점 잃은 눈으로 바다를 응시하는 정지 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 2,
            "description": "혜수의 손이 캔 음료를 수리영의 가슴 앞까지 내민 손 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ]
          },
          {
            "shot_index": 3,
            "description": "수리영이 주먹을 꽉 쥔 채 벤치에서 몸을 벌떡 일으켜 세운 정지 순간.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 4,
            "description": "어두운 도로를 향해 달리는 수리영의 뒷모습 전신 구도, 한 발이 바닥에서 막 떨어지고 상체가 앞으로 기울어진 mid-stride 순간.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 어두운 도로를 향해 뛰어가는 뒷모습 전신 구도.",
            "validator_reason": "뛰어가는 이동 동작의 추진력을 보존하기 위해 mid-action freeze 상태로 명확히 수정함."
          },
          {
            "shot_index": 5,
            "description": "혜수가 캔 음료를 든 채 수리영의 뒷모습을 향해 입을 크게 벌린 상체 구도.",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ]
          },
          {
            "shot_index": 6,
            "description": "바람에 한쪽으로 쏠린 나뭇잎 너머로, 도로를 향해 달리는 mid-stride 자세의 수리영과 그 자리에 선 혜수가 담긴 관찰자 시점 구도.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "수리영"
            ],
            "original_description": "흔들리는 나뭇잎 너머로 멀어지는 수리영과 그 자리에 선 혜수의 모습이 담긴 관찰자 시점 구도.",
            "validator_reason": "'흔들리는', '멀어지는'과 같은 시간 진행형 표현을 정지된 결과 상태 및 mid-action 자세로 수정함."
          }
        ]
      },
      {
        "scene_index": 16,
        "scene_heading": "S#16. 경찰서 사무실 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "경찰서 사무실의 열린 문 앞에 선 채 귀에 휴대폰을 대고 있는 혜수의 정지 구도.",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "original_description": "경찰서 사무실 문을 열고 들어온 혜수가 귀에 휴대폰을 댄 상태로 멈춘 정지 구도.",
            "validator_reason": "'문을 열고 들어온'이라는 순차적 동작 뉘앙스를 제거하고 한 찰나의 결과 상태인 '열린 문 앞에 선 채'로 수정했습니다."
          },
          {
            "shot_index": 2,
            "description": "밝은 사무실 안, 책상 앞에 앉은 김형사가 출입문 쪽으로 고개를 돌린 상체 구도.",
            "based_on_beat": 1,
            "characters": [
              "김형사"
            ]
          },
          {
            "shot_index": 3,
            "description": "혜수가 불이 켜진 휴대폰 화면을 김형사의 얼굴 쪽으로 뻗은 측면 구도.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "김형사"
            ]
          }
        ]
      },
      {
        "scene_index": 17,
        "scene_heading": "S#17. 옥탑방 / 동틀무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "동이 트는 푸르스름한 새벽빛 아래, 검은 고양이가 옥탑방 담벼락 위에 선 채 불 켜진 방을 응시하는 정지 구도.",
            "based_on_beat": 1,
            "characters": []
          },
          {
            "shot_index": 2,
            "description": "검은 고양이가 네 발을 허공으로 뻗은 채 공중에 떠 있는 찰나의 정지 순간.",
            "based_on_beat": 1,
            "characters": []
          }
        ]
      },
      {
        "scene_index": 18,
        "scene_heading": "S#18. 안방 안 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "환한 아침 햇살이 드는 안방 침대 가장자리, 머리를 기댄 수리영이 두 눈을 감고 앉은 정지 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 2,
            "description": "수리영이 침대에서 고개를 번쩍 든 채 눈을 동그랗게 뜬 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 3,
            "description": "수리영이 굳게 닫힌 자기 방 문을 향해 시선을 고정한 상체 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 4,
            "description": "수리영의 손이 닫힌 방문 쇠 손잡이를 꽉 움켜쥔 손 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 5,
            "description": "수리영이 창가에 서서 커튼을 양옆으로 활짝 펼친 전신 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 6,
            "description": "침대 위 화면이 밝게 켜진 휴대폰 옆으로, 수리영이 화들짝 놀라 어깨를 잔뜩 움츠린 찰나의 정지 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "침대 위 화면이 밝게 켜진 휴대폰 옆으로 수리영의 어깨가 움찔거리는 정지 순간.",
            "validator_reason": "'움찔거리는'은 반복/연속적인 움직임을 뜻하므로 단일 정지 상태로 수정함."
          },
          {
            "shot_index": 7,
            "description": "수리영이 휴대폰을 귀에 댄 채 미간을 잔뜩 구긴 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 8,
            "description": "수리영이 낡은 인형이 매달린 백팩을 한쪽 어깨에 걸친 채 현관에 선 전신 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 9,
            "description": "물기가 맺힌 얼굴의 수리영이 욕실 거울 속 자신을 빤히 바라보는 상체 구도.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 10,
            "description": "거울 속 반사된 타일 벽면에 붉은 원형 표식이 선명하게 떠오른 정지 구도.",
            "based_on_beat": 3,
            "characters": []
          },
          {
            "shot_index": 11,
            "description": "수리영이 하얀 타일 벽면을 향해 고개를 휙 돌리는 mid-action 찰나, 머리카락이 회전 반대 방향으로 흩날리는 측면 구도.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 고개를 휙 돌려 아무 흔적 없는 하얀 타일 벽면을 응시하는 측면 구도.",
            "validator_reason": "돌리고 응시하는 연속 동작을 피하고, 고개를 돌리는 동작의 회전 방향성을 살려 mid-action freeze로 재작성함."
          },
          {
            "shot_index": 12,
            "description": "거실 식탁 앞에 선 수리영이 물이 담긴 유리컵을 손에 든 상체 구도.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 13,
            "description": "식탁 위 액자 속, 민숙의 얼굴 형체가 기괴하게 뭉개져 아래로 흘러내린 사진 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "민숙"
            ]
          },
          {
            "shot_index": 14,
            "description": "수리영이 양손으로 머리를 쥐어뜯은 채 입을 크게 벌린 정면 구도.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 15,
            "description": "수리영의 두 손바닥이 자신의 양쪽 뺨에 강하게 밀착된 찰나의 정지 구도.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ]
          }
        ]
      },
      {
        "scene_index": 19,
        "scene_heading": "S#19. 마트 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "한산한 마트 안, 수리영이 자전거 앞바퀴를 마트 입구 유리문 옆에 댄 상태로 멈춘 전신 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 2,
            "description": "진열대 사이 통로에서 수리영이 앞으로 나아가는 중간 자세로 상체를 살짝 기울이고 고개를 앞으로 길게 뺀 상체 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 진열대 사이를 지나며 고개를 앞으로 길게 뺀 자세로 멈춘 상체 구도.",
            "validator_reason": "‘지나며’가 이동 동작과 자세를 시간적으로 연결하고, ‘멈춘’ 표현이 원문의 이동 방향성을 약화해 mid-action 한 찰나로 재작성했습니다."
          },
          {
            "shot_index": 3,
            "description": "남자 직원이 양손에 종이 상자를 든 상태로 수리영 쪽으로 고개를 돌린 정지 순간.",
            "based_on_beat": 1,
            "characters": [
              "남자 직원",
              "수리영"
            ]
          },
          {
            "shot_index": 4,
            "description": "수리영이 남자 직원을 올려다본 채 입을 살짝 벌린 측면 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "남자 직원"
            ]
          },
          {
            "shot_index": 5,
            "description": "마트 밖, 수리영이 마트 건물 외벽 모서리에 매달린 회색 CCTV 카메라를 향해 고개를 치켜든 전신 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 6,
            "description": "수리영이 귀에 휴대폰을 밀착한 채 미간을 잔뜩 찌푸린 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ]
          }
        ]
      },
      {
        "scene_index": 20,
        "scene_heading": "S#20. 마트 총무과 / 실내",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 사무실 안, 한국인 보안직원이 책상 위 모니터 화면을 향해 고개를 쭉 뺀 상체 구도.",
            "based_on_beat": 1,
            "characters": []
          },
          {
            "shot_index": 2,
            "description": "혜수가 모니터 옆에 선 채 화면으로 시선을 고정한 정지 구도.",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ]
          },
          {
            "shot_index": 3,
            "description": "수리영이 혜수 등 뒤에서 두 손을 꽉 쥔 채 모니터 화면 쪽을 노려보는 상체 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "혜수"
            ]
          },
          {
            "shot_index": 4,
            "description": "모니터 화면 속, 어두운 화질의 검은 인영 두 개가 흐릿하게 겹쳐진 정지 컷.",
            "based_on_beat": 1,
            "characters": []
          },
          {
            "shot_index": 5,
            "description": "혜수가 한국인 보안직원을 향해 고개를 돌린 측면 구도.",
            "based_on_beat": 2,
            "characters": [
              "혜수"
            ]
          }
        ]
      },
      {
        "scene_index": 21,
        "scene_heading": "S#21. 경찰서 안 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "밝은 경찰서 사무실 안, 혜수가 김형사 자리 앞에 선 채 고개를 살짝 숙인 정지 구도.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "김형사"
            ]
          },
          {
            "shot_index": 2,
            "description": "김형사가 미간을 구긴 채 서류 뭉치를 혜수 쪽으로 내민 손 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "김형사",
              "혜수"
            ]
          },
          {
            "shot_index": 3,
            "description": "김형사가 사무실 출입문을 향해 몸을 반쯤 돌린 전신 구도.",
            "based_on_beat": 1,
            "characters": [
              "김형사"
            ]
          },
          {
            "shot_index": 4,
            "description": "혜수가 빈 의자에 앉은 수리영을 향해 손바닥을 펴 보인 상체 구도.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "수리영"
            ]
          },
          {
            "shot_index": 5,
            "description": "사무실에 홀로 남은 수리영이 혜수의 책상 위 널브러진 서류와 사진들을 내려다본 채 멈춘 상체 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 6,
            "description": "책상 위, 거칠게 뜯겨진 살점과 붉은 피가 선명한 시신 사진이 놓인 클로즈업.",
            "based_on_beat": 1,
            "characters": []
          },
          {
            "shot_index": 7,
            "description": "수리영이 두 눈을 크게 뜬 채 입술을 꽉 깨문 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 8,
            "description": "옆자리 빈 책상 위 모니터 화면 중앙에 붉은색 알림 팝업 창이 뜬 정지 구도.",
            "based_on_beat": 2,
            "characters": []
          },
          {
            "shot_index": 9,
            "description": "수리영이 켜진 모니터 쪽으로 상체를 기울인 채 마우스 위에 손을 얹은 측면 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 10,
            "description": "모니터 화면 속, 어두운 해상 지도 위에 붉은색 핀 기호와 좌표 숫자가 선명하게 떠 있는 클로즈업.",
            "based_on_beat": 2,
            "characters": []
          },
          {
            "shot_index": 11,
            "description": "수리영의 펜 쥔 손이 노란색 메모지 위에 좌표 숫자들을 눌러쓴 상태로 멈춘 손 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 12,
            "description": "수리영이 반으로 접힌 메모지를 바지 주머니 입구에 반쯤 밀어넣은 찰나의 구도.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 좌표가 적힌 메모지를 반으로 접어 바지 주머니 입구에 반쯤 넣은 찰나의 구도.",
            "validator_reason": "'접어 넣은'은 두 동작의 연속을 암시할 수 있으므로, 이미 접힌 메모지를 주머니에 넣는 단일 찰나의 상태로 수정함."
          },
          {
            "shot_index": 13,
            "description": "수리영이 경찰서 출입문 손잡이를 움켜쥔 채 뒤를 돌아본 상체 구도.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ]
          }
        ]
      },
      {
        "scene_index": 22,
        "scene_heading": "S#22. 경찰서 밖 / D\nS#23. 어느 PC방 / 실내",
        "shots": [
          {
            "shot_index": 1,
            "description": "대낮의 경찰서 앞, 수리영이 자전거 안장에 앉아 한쪽 페달을 강하게 내리누르는 자세로, 옷자락이 뒤로 휘날리는 전신 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "대낮의 경찰서 앞, 수리영이 자전거 안장에 앉아 페달을 강하게 밟은 직후의 전신 구도.",
            "validator_reason": "'~한 직후'라는 시간적 경과를 삭제하고, 자전거를 타고 나아가는 방향의 추진력을 보여주는 mid-action 찰나로 수정함."
          },
          {
            "shot_index": 2,
            "description": "어두컴컴한 PC방 안, 모니터 불빛이 수리영의 얼굴에 비친 채 화면에 시선을 고정한 상체 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "어두컴컴한 PC방 안, 수리영이 모니터 불빛을 얼굴에 맞으며 화면에 시선을 고정한 상체 구도.",
            "validator_reason": "'맞으며'라는 연속적 느낌의 연결어를 고정된 시각적 상태인 '비친 채'로 수정함."
          },
          {
            "shot_index": 3,
            "description": "PC방 모니터 화면 속, 위성 지도 위 해상 특정 위치에 마우스 커서가 멈춰 있는 클로즈업.",
            "based_on_beat": 1,
            "characters": []
          },
          {
            "shot_index": 4,
            "description": "프린터기 토출구 밖으로 해상 지도가 인쇄된 A4 용지가 반쯤 밀려나온 정지 구도.",
            "based_on_beat": 1,
            "characters": []
          },
          {
            "shot_index": 5,
            "description": "반으로 접힌 인쇄된 지도 여러 장을 백팩 지퍼 틈새로 반쯤 밀어 넣은 채 쥐고 있는 수리영의 손 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 인쇄된 지도 여러 장을 반으로 접어 백팩 지퍼 틈새로 밀어 넣은 손 클로즈업.",
            "validator_reason": "'접어'와 '밀어 넣은'의 순차적 동작을 '반으로 접힌'이라는 결과 상태를 활용하여 하나의 고정된 찰나로 변경함."
          }
        ]
      },
      {
        "scene_index": 23,
        "scene_heading": "S#24. 해안가 / 소나기",
        "shots": [
          {
            "shot_index": 1,
            "description": "먹구름이 낀 어두운 해안가 도로, 번개가 번쩍인 순간 굵은 빗방울이 공중에 멈춘 풍경 구도.",
            "based_on_beat": 1,
            "characters": []
          },
          {
            "shot_index": 2,
            "description": "세찬 빗줄기 속, 수리영이 상체를 굽힌 채 한쪽 무릎을 뻗어 자전거 페달을 밟아 누르는 중간 동작으로 핸들을 꽉 움켜쥔 측면 전신 구도, 빗물이 주행 반대 방향으로 흩날리는 상태.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "세찬 빗줄기 속, 수리영이 상체를 굽힌 채 자전거 핸들을 꽉 움켜쥔 측면 전신 구도.",
            "validator_reason": "자전거로 달리는 이동 동작의 추진력을 보존하기 위해 페달을 밟는 mid-action 순간과 빗물이 뒤로 흩날리는 방향성을 추가함."
          },
          {
            "shot_index": 3,
            "description": "물기가 흥건한 수리영의 얼굴 위로 빗물이 맺힌 채 눈을 부릅뜬 정면 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ]
          }
        ]
      },
      {
        "scene_index": 24,
        "scene_heading": "S#25. 옥탑방 안 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "어스름한 옥탑방 거실, 바닥에 나뒹구는 가재도구들과 쓰러진 식탁 의자들이 널브러진 정지 구도.",
            "based_on_beat": 1,
            "characters": []
          },
          {
            "shot_index": 2,
            "description": "수리영이 거실 한가운데 선 채 멍한 표정으로 엉망이 된 방바닥을 내려다본 전신 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 3,
            "description": "활짝 열린 수리영의 방문 너머, 벽면에 짙고 검붉은 둥근 원이 거칠게 그려진 정지 컷.",
            "based_on_beat": 2,
            "characters": []
          },
          {
            "shot_index": 4,
            "description": "검붉은 원의 한가운데, 끝부분에 핏자국이 묻은 낡은 사진이 벽지에 깊게 꽂혀 있는 클로즈업.",
            "based_on_beat": 2,
            "characters": []
          },
          {
            "shot_index": 5,
            "description": "수리영의 손가락 끝이 벽에 꽂힌 낡은 사진 가장자리에 닿은 순간의 손 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 6,
            "description": "침대 가장자리에 주저앉은 수리영이 뽑아낸 낡은 사진을 눈높이까지 들어 올린 채 멈춘 상체 구도.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 7,
            "description": "수리영의 손아귀에 구겨진 낡은 흑백 사진이 꽉 쥐어진 손 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 8,
            "description": "백팩을 멘 수리영이 열린 낡은 현관문 밖으로 나서는 mid-step 전신 구도, 한쪽 발은 문턱 밖에 내려앉고 몸은 바깥쪽으로 기울어진 자세.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "백팩을 멘 수리영이 열린 낡은 현관문 밖으로 한쪽 발을 내디딘 상태로 멈춘 전신 구도.",
            "validator_reason": "밖으로 나가는 이동 동작을 정지 상태로 표현해 추진 방향이 약해져 mid-action 자세로 재작성했습니다."
          }
        ]
      },
      {
        "scene_index": 25,
        "scene_heading": "S#26. 포구 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "짙은 안개가 깔린 해 질 무렵의 텅 빈 포구, 수리영이 갯바위 위에 웅크리고 앉은 전신 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 2,
            "description": "수리영이 손에 든 휴대폰 액정 화면에 혜수의 이름과 부재중 전화 알림이 떠 있는 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 3,
            "description": "짙은 안개 속에서 윤곽을 드러낸 낡은 어선 한 척이 방파제 앞에 멈춰 선 정지 구도.",
            "based_on_beat": 1,
            "characters": []
          },
          {
            "shot_index": 4,
            "description": "인우가 뱃머리에서 굵은 밧줄을 쥔 채 방파제 기둥 쪽으로 팔을 뻗은 상체 구도.",
            "based_on_beat": 1,
            "characters": [
              "인우"
            ]
          },
          {
            "shot_index": 5,
            "description": "방파제 위, 인우의 코앞에 선 수리영이 고개를 치켜든 채 눈을 부릅뜬 측면 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "인우"
            ],
            "original_description": "수리영이 방파제 위 인우의 코앞까지 다가가 고개를 치켜든 채 눈을 부릅뜬 측면 구도.",
            "validator_reason": "'다가가'라는 이동 표현이 시간 진행을 내포하므로, 다가간 직후 코앞에 멈춰 선 고정 상태로 수정했습니다."
          },
          {
            "shot_index": 6,
            "description": "인우가 미간을 구긴 채 안개 낀 바다 쪽으로 고개를 돌린 정지 순간.",
            "based_on_beat": 1,
            "characters": [
              "인우"
            ]
          },
          {
            "shot_index": 7,
            "description": "뱃머리에 선 수리영이 휴대폰을 귀에 바짝 댄 채 안개 낀 바다를 응시하는 측면 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ]
          }
        ]
      },
      {
        "scene_index": 26,
        "scene_heading": "S#27. 옥탑방 안 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "어둠이 내린 난장판 옥탑방 거실, 혜수가 귀에 휴대폰을 댄 채 눈을 동그랗게 뜬 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ]
          },
          {
            "shot_index": 2,
            "description": "혜수가 곁에 선 김형사를 향해 고개를 돌린 채 시선을 고정한 상체 구도.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "김형사"
            ],
            "original_description": "혜수가 곁에 선 김형사를 향해 고개를 홱 돌린 상체 구도.",
            "validator_reason": "'홱 돌린'은 속도감을 동반한 움직임을 내포하므로 고개를 돌려 시선을 맞춘 정지된 상태로 수정함."
          },
          {
            "shot_index": 3,
            "description": "김형사가 팔짱을 낀 채 입꼬리를 비틀어 올린 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "김형사"
            ]
          },
          {
            "shot_index": 4,
            "description": "반쯤 열려 있는 낡은 현관문 틈으로 어두운 옥상 풍경이 내다보이는 정지 구도.",
            "based_on_beat": 2,
            "characters": [],
            "original_description": "바람에 흔들려 반쯤 열린 낡은 현관문 틈으로 어두운 옥상 풍경이 내다보이는 정지 구도.",
            "validator_reason": "'바람에 흔들려'라는 연속적인 움직임 묘사를 제거하고 반쯤 열린 상태의 한 순간으로 수정함."
          }
        ]
      },
      {
        "scene_index": 27,
        "scene_heading": "S#28. 바다 + 갑판 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "해 질 무렵 황금빛 노을이 반사되는 바다 한가운데, 낡은 소형 어선 한 척이 떠 있는 원경 구도.",
            "based_on_beat": 1,
            "characters": []
          },
          {
            "shot_index": 2,
            "description": "어선 갑판 위, 수리영의 손이 해상 지도를 인우의 가슴 앞까지 뻗은 상태로 멈춘 상체 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "인우"
            ]
          },
          {
            "shot_index": 3,
            "description": "인우가 미간을 깊게 찌푸린 채 수리영의 손에 들린 지도를 내려다보는 정지 순간.",
            "based_on_beat": 1,
            "characters": [
              "인우"
            ]
          },
          {
            "shot_index": 4,
            "description": "수리영의 손이 구겨진 낡은 흑백 사진을 인우의 눈앞에 바짝 들이민 측면 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "인우"
            ]
          },
          {
            "shot_index": 5,
            "description": "수리영의 손에 들린 낡은 사진 귀퉁이에 작게 적힌 '금월'이라는 글씨 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 6,
            "description": "인우가 입을 반쯤 벌린 채 두 눈을 크게 뜬 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "인우"
            ]
          },
          {
            "shot_index": 7,
            "description": "수리영이 고개를 빳빳하게 든 채 인우의 얼굴을 매섭게 노려보는 정지 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 8,
            "description": "인우의 엉덩이가 갑판 바닥에서 반쯤 허공에 뜬 찰나의 정지 순간.",
            "based_on_beat": 3,
            "characters": [
              "인우"
            ]
          },
          {
            "shot_index": 9,
            "description": "인우의 두 손이 조타실 출입문 모서리를 강하게 움켜쥔 손 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "인우"
            ]
          },
          {
            "shot_index": 10,
            "description": "수리영이 조타실 입구를 등진 채 두 팔을 양옆으로 활짝 벌린 전신 구도.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 11,
            "description": "수리영의 두 손이 인우의 양쪽 팔뚝을 꽉 움켜쥔 정지 구도.",
            "based_on_beat": 3,
            "characters": [
              "수리영",
              "인우"
            ]
          }
        ]
      },
      {
        "scene_index": 28,
        "scene_heading": "S#29. 조타실 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "붉은 노을빛이 스며든 좁은 조타실 안, 수리영이 인우를 향해 목핏대를 세운 채 입을 벌린 측면 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "인우"
            ]
          },
          {
            "shot_index": 2,
            "description": "인우가 턱에 힘을 꽉 준 채 붉게 상기된 얼굴로 멈춰 선 상체 구도.",
            "based_on_beat": 1,
            "characters": [
              "인우"
            ]
          },
          {
            "shot_index": 3,
            "description": "수리영의 검지 끝이 낡은 사진 속 한 아이의 얼굴 부위에 닿은 손 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 4,
            "description": "인우의 얼굴 전체가 창백하게 질린 채 시선이 낡은 사진에 고정된 정지 순간.",
            "based_on_beat": 2,
            "characters": [
              "인우"
            ]
          },
          {
            "shot_index": 5,
            "description": "굳어버린 인우의 어깨너머 조타실 낡은 벽면 곳곳에 기괴한 붉은색 원형 표식들이 선명하게 그려진 정지 구도.",
            "based_on_beat": 3,
            "characters": [
              "인우"
            ]
          },
          {
            "shot_index": 6,
            "description": "수리영의 동공이 작아진 채 눈꺼풀이 위로 크게 치켜올라간 얼굴 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영의 동공이 작아지고 눈꺼풀이 위로 크게 치켜올라간 얼굴 클로즈업.",
            "validator_reason": "'~고' 연결어를 '~채'로 수정하여 두 상태가 동시에 존재하는 고정된 찰나로 명확히 함."
          },
          {
            "shot_index": 7,
            "description": "눈을 감은 수리영의 상체가 바닥을 향해 앞으로 비스듬히 기울어진 찰나의 전신 구도.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ]
          },
          {
            "shot_index": 8,
            "description": "수리영의 머리가 인우의 넓은 어깨 위에 툭 얹혀 축 늘어진 정지 구도.",
            "based_on_beat": 3,
            "characters": [
              "수리영",
              "인우"
            ]
          },
          {
            "shot_index": 9,
            "description": "인우의 두 손이 쓰러진 수리영의 등 뒤 허공에 엉거주춤하게 떠 있는 측면 구도.",
            "based_on_beat": 3,
            "characters": [
              "인우",
              "수리영"
            ]
          },
          {
            "shot_index": 10,
            "description": "인우가 고개를 살짝 숙인 채 자신의 어깨에 기댄 수리영의 정수리를 서늘하게 내려다보는 정지 구도.",
            "based_on_beat": 3,
            "characters": [
              "인우",
              "수리영"
            ]
          }
        ]
      },
      {
        "scene_index": 29,
        "scene_heading": "S#30. 바다 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "수평선 너머로 반쯤 가라앉은 태양이 짙푸른 바다 표면 위로 붉고 짙은 황금빛 그림자를 길게 늘어뜨린 풍경 구도.",
            "based_on_beat": 1,
            "characters": []
          },
          {
            "shot_index": 2,
            "description": "거대한 회색빛 안개벽이 세상의 경계를 지우듯 바다 위를 가로막은 채 높게 솟아오른 정지 컷.",
            "based_on_beat": 1,
            "characters": []
          },
          {
            "shot_index": 3,
            "description": "인우의 낡은 소형 어선 뱃머리가 짙은 안개벽의 경계선에 막 닿은 찰나의 원경 구도.",
            "based_on_beat": 1,
            "characters": []
          },
          {
            "shot_index": 4,
            "description": "어선의 절반 이상이 짙고 탁한 회색 안개 속으로 완전히 잠긴 측면 구도.",
            "based_on_beat": 1,
            "characters": []
          },
          {
            "shot_index": 5,
            "description": "어선의 모습이 흔적 없이 사라진 채, 매캐한 잿빛 안개만 바다 전체를 빽빽하게 채운 정지 순간.",
            "based_on_beat": 1,
            "characters": [],
            "original_description": "어선의 모습은 흔적 없이 사라지고 매캐한 잿빛 안개만 바다 전체를 빽빽하게 채운 정지 순간.",
            "validator_reason": "'~고'라는 연결어가 순차적 상황으로 읽힐 소지가 있어 동시 상태를 명확히 하는 '~은 채'로 수정함."
          }
        ]
      }
    ],
    "total_shots": 177,
    "changed_shots": 30
  },
  "step_id": "shot_validator",
  "run_id": "33b55951-fbf2-41c0-af5c-3e262c129f4f",
  "resolved_model": "gemini-pro",
  "updated_at": "2026-05-05T05:04:19.623334+00:00",
  "schema_version": 1,
  "config_hash": "99914b932bd37a50",
  "project_config_snapshot": {}
}