{
  "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": [
              "한국인 남성"
            ],
            "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": "허공에서 쏜살같이 쇄도한 거대한 검은 형체가 한국인 남성의 등을 강하게 덮치며 두 신체가 충돌하는 역동적인 mid-impact 찰나.",
            "based_on_beat": 1,
            "characters": [
              "한국인 남성",
              "검은 형체"
            ],
            "original_description": "허공에서 수직으로 뻗어나온 거대한 검은 형체가 한국인 남성의 등 위로 떨어져 내리기 직전의 찰나.",
            "validator_reason": "원문에 묘사된 능동적 덮침(충돌)을 '직전'으로 약화시키지 않고 힘의 방향과 접촉이 보존된 mid-impact 찰나로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "한국인 남성이 입을 크게 벌린 채 바닥에 꺾여 쓰러진 정적인 컷.",
            "based_on_beat": 1,
            "characters": [
              "한국인 남성"
            ],
            "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": [
              "한국인 남성",
              "한국인 여성"
            ],
            "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": 1,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 5,
        "scene_heading": "S#5. 옥탑방 안 / 실내",
        "shots": [
          {
            "shot_index": 1,
            "description": "창문으로 얇은 햇살이 스며드는 가운데, 싱크대 위에 반쯤 씻긴 약초 잎사귀들이 널브러진 컷.",
            "based_on_beat": 0,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "가스레인지 위 냄비 가장자리로 하얀 수증기가 피어오른 채 멈춘 순간.",
            "based_on_beat": 0,
            "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": "'뻗어 기지개를 켜는'의 연속 동작을 양팔을 뻗은 단일 정지 자세로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "민숙의 손가락이 TV 리모컨의 버튼을 꾹 누른 채 정지된 클로즈업.",
            "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": 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": []
          }
        ]
      },
      {
        "scene_index": 6,
        "scene_heading": "S#6. 해안가 도로 / D",
        "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": []
          }
        ]
      },
      {
        "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": "한국인 중년 남성의 손이 주사기를 쥐고 맹견의 뒷다리에 바늘을 반쯤 찔러넣어 피부가 살짝 눌린 mid-action.",
            "based_on_beat": 1,
            "characters": [
              "한국인 중년 남성"
            ],
            "original_description": "한국인 중년 남성의 손이 주사기 바늘을 맹견의 뒷다리 쪽에 꽂은 정지 순간.",
            "validator_reason": "정지를 강조하는 단어('정지 순간')를 제거하고 주사 바늘이 들어가는 능동적 물리 접촉의 mid-action으로 재작성했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영이 스마트폰을 귓가에 댄 채 시선을 허공에 둔 굳은 표정.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영이 가위를 쥔 손으로 개의 등 위 털을 자르기 위해 가윗날을 반쯤 다문 mid-action.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "가위를 쥔 수리영의 손이 다른 개의 등 위 털에 닿아 있는 멈춘 찰나.",
            "validator_reason": "명시적인 정지 표현('멈춘 찰나')을 제거하고 털을 자르는 동작의 방향성이 드러나는 mid-action으로 교정했습니다.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 8,
        "scene_heading": "S#8. 번화가·대형 마트 / 해질 무렵",
        "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": [
              "수리영"
            ],
            "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": []
          }
        ]
      },
      {
        "scene_index": 9,
        "scene_heading": "S#9. 해안가 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "짙은 어둠이 깔린 해안도로를 배경으로, 수리영이 입술을 꽉 깨문 채 자전거 핸들을 움켜쥐고 몸을 앞으로 숙이며 머리카락이 뒤로 흩날리는 찰나의 굳은 상체.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "짙은 어둠이 깔린 해안도로를 배경으로 수리영이 입술을 꽉 깨문 채 자전거 핸들을 움켜쥔 굳은 상체.",
            "validator_reason": "바삐 자전거를 타고 달리는 추진 동작의 시각적 단서를 보존하기 위해 머리카락이 날리는 mid-action freeze를 적용함.",
            "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": []
          }
        ]
      },
      {
        "scene_index": 11,
        "scene_heading": "S#11. 옥탑 방 밖 / 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": []
          }
        ]
      },
      {
        "scene_index": 12,
        "scene_heading": "S#12. 옥탑방 안 / 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": 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": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 두 팔을 앞으로 뻗은 채 뒤로 주춤거리는 엉거주춤한 전신 컷.",
            "validator_reason": "'주춤거리는'이라는 연속 동작을 뒤로 물러나는 순간의 mid-action 정지 자세로 수정함.",
            "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": 3,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 16,
            "description": "수리영이 두 손으로 머리를 감싸 쥐고 입을 찢어질 듯 벌린 채 경악하는 굳은 표정.",
            "based_on_beat": 3,
            "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": "이동 동작의 추진력을 보존하기 위해 공중에 발이 뜬 mid-action 순간으로 재작성함.",
            "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": "'고개를 들어'라는 진행 동작을 제거하고 고개를 든 고정 상태로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "혜수가 눈을 크게 뜬 채 충격으로 굳어버린 얼굴 쇼트.",
            "based_on_beat": 2,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "혜수의 발과 김형사의 발이 옥탑방을 향한 시멘트 계단 첫 단을 동시에 디딘 로우 앵글.",
            "based_on_beat": 2,
            "characters": [
              "혜수",
              "김형사"
            ],
            "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": 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": [
              "김형사",
              "수리영"
            ],
            "original_description": "김형사가 미간을 잔뜩 찌푸린 채 수리영을 향해 손가락을 까딱이는 정지 순간.",
            "validator_reason": "'까딱이는'이라는 연속 동작을 단일 정지 자세로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "혜수가 날카로운 눈빛으로 옆에 선 김형사를 노려보는 옆얼굴.",
            "based_on_beat": 3,
            "characters": [
              "혜수",
              "김형사"
            ],
            "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": 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": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "혜수가 수리영의 등 뒤를 향해 한쪽 팔을 뻗은 채 입을 벌린 멈춘 컷.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "어두운 그늘 속 망원 구도 너머로, 멀리 가로등 불빛 아래에서 한쪽 다리는 앞으로 굽혀 공중에 띄우고 다른 쪽 발은 땅을 박차고 있는 달리기 중간 자세의 수리영의 작아진 뒷모습.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "멀리 가로등 불빛 아래를 뛰어가는 수리영의 작아진 뒷모습을 어두운 그늘 속에서 바라보는 서늘한 망원 구도.",
            "validator_reason": "동적 동작인 '뛰어가는' 표현을 달리기 중간 자세(mid-stride)의 구체적인 정지 순간 묘사로 변경하여 추진력을 보존함.",
            "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": [
              "김형사",
              "혜수"
            ],
            "original_description": "책상에 기대앉은 김형사가 펜을 입에 문 채 고개를 돌려 혜수를 쳐다보는 상체 컷.",
            "validator_reason": "'고개를 돌려 쳐다보는'은 동작의 시간적 연결을 암시할 수 있어 고개를 돌리고 있는 고정 상태로 수정.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "혜수의 손가락이 스마트폰 액정 화면을 김형사 눈앞으로 뻗은 찰나.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "김형사가 어깨를 으쓱한 채 고개를 삐딱하게 기울이고 있는 뚱한 표정.",
            "based_on_beat": 2,
            "characters": [
              "김형사"
            ],
            "original_description": "김형사가 어깨를 으쓱하며 고개를 삐딱하게 기울인 뚱한 표정.",
            "validator_reason": "'으쓱하며'는 동작의 진행을 나타내므로 '으쓱한 채'의 고정된 결과 상태로 수정.",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "혜수가 미간을 깊게 찌푸린 채 허공을 응시하는 어둡고 불안한 얼굴.",
            "based_on_beat": 2,
            "characters": [
              "혜수"
            ],
            "original_description": "혜수가 미간을 깊게 찌푸리고 허공을 응시하는 어둡고 불안한 얼굴.",
            "validator_reason": "'찌푸리고'라는 연결어 대신 '찌푸린 채'를 사용하여 표정과 시선이 동시에 고정된 한 순간임을 명확히 함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 17,
        "scene_heading": "S#17. 옥탑방 / 동틀무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "푸르스름하고 짙은 안개가 낀 새벽빛 아래, 노란 불이 켜진 옥탑방 창문의 정적인 롱쇼트.",
            "based_on_beat": 0,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "낡은 시멘트 담장 위로 검은 고양이 한 마리가 몸을 웅크린 채 앉아 있는 실루엣.",
            "based_on_beat": 0,
            "characters": [
              "검은 고양이"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "검은 고양이의 네 발이 담장 아래로 떨어지기 직전 허공에 뜬 찰나.",
            "based_on_beat": 0,
            "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": 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": 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": [
              "수리영"
            ],
            "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": "수리영의 펴진 손바닥이 자신의 뺨을 강하게 때리는 mid-impact, 충격으로 뺨이 밀려 일그러진 찰나.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영의 펴진 손바닥이 자신의 뺨에 강하게 밀착된 멈춘 순간.",
            "validator_reason": "능동적 타격의 역동성을 보존하기 위해 모호한 정지 표현을 mid-impact 순간으로 재작성함.",
            "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": [
              "남자 직원",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영이 미간을 찌푸린 채 남자 직원의 눈을 빤히 응시하는 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "남자 직원"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "마트 외부 건물 외벽 구석에 달린 둥근 CCTV 카메라의 정적인 앙각.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "마트 밖 벽에 기댄 수리영이 스마트폰을 귓가에 댄 채 시선을 허공에 둔 굳은 표정.",
            "based_on_beat": 2,
            "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": "어둡고 노이즈 낀 CCTV 모니터 화면 속에 흐릿한 사람 형상 두 개가 서 있는 정적인 클로즈업.",
            "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": []
          }
        ]
      },
      {
        "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": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "다수의 한국인 형사들이 출입문을 향해 발을 내딛으며 걷고 있는 mid-action 뒷모습.",
            "based_on_beat": 1,
            "characters": [
              "형사들"
            ],
            "original_description": "다수의 한국인 형사들이 출입문을 향해 걸음을 멈춘 뒷모습.",
            "validator_reason": "원문의 '몰려 나간다'는 이동 동작이므로, '걸음을 멈춘' 정지 상태가 아닌 걷는 중인(mid-action) 상태로 수정하여 이동 방향을 보존했습니다.",
            "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": "옆자리 빈 책상 위, 켜진 모니터 화면에 'LAST LOCATION'이라는 글자와 좌표가 선명한 클로즈업.",
            "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": []
          },
          {
            "shot_index": 12,
            "description": "수리영의 펜 끝이 노란색 포스트잇 위에 숫자를 꾹 눌러 적은 찰나.",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 13,
            "description": "낡은 백팩을 멘 수리영이 한 손으로 유리문을 밀며 사무실 밖으로 한 발짝 내딛은 mid-action 뒷모습.",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "original_description": "낡은 백팩을 멘 수리영이 텅 빈 사무실 유리문을 밀어 연 채 멈춰 선 뒷모습.",
            "validator_reason": "원문의 '사무실을 나온다'는 이동 동작이므로, '멈춰 선' 정지 상태가 아닌 문을 밀고 걷는 중인(mid-action) 상태로 수정하여 추진 방향을 보존했습니다.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 22,
        "scene_heading": "S#22. 경찰서 밖 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "햇살이 내리쬐는 경찰서 앞, 자전거에 올라탄 수리영의 한쪽 발이 페달을 강하게 밟아 내리는 mid-pedal 찰나.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "햇살이 내리쬐는 경찰서 앞, 수리영의 두 발이 자전거 페달을 강하게 디딘 정지 순간.",
            "validator_reason": "이동 동작에서 '정지 순간'이라는 단어를 제거하고 모션 방향성을 보존하는 mid-action 자세로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "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": "프린터기 배출구로 인쇄된 지도 종이 한 장이 반쯤 빠져나온 멈춘 상태.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영의 손이 여러 번 접힌 지도 뭉치를 낡은 백팩 안으로 깊숙이 밀어 넣은 찰나.",
            "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": "비에 흠뻑 젖은 머리카락이 뺨에 달라붙은 수리영이 눈을 가늘게 뜬 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "해안도로 위, 한쪽 페달을 꾹 밟고 몸을 앞으로 숙인 수리영의 자전거 바퀴 주변으로 거친 물보라가 허공에 튄 채 멈춰 있는 순간.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "해안도로를 달리는 수리영의 자전거 바퀴 주변으로 거친 물보라가 허공에 뜬 정지 순간.",
            "validator_reason": "'달리는'이라는 진행형 표현을 페달을 밟고 몸을 숙인 구체적인 역동적 정지 자세(mid-action) 묘사로 수정함.",
            "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": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "어깨를 크게 들썩이며 가슴에 손을 얹은 채 멈춰 선 수리영의 겁에 질린 상체.",
            "validator_reason": "'들썩이며'는 연속적인 호흡 동작을 의미하므로 어깨가 올라간 단일 정지 상태로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "활짝 열린 방문 너머 침대 위 하얀 벽면 중앙에 붉은색 물감 같은 거대한 원형 자국이 새겨진 정적인 프레임.",
            "based_on_beat": 3,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "붉은 원형 자국 한가운데에 핏자국이 묻은 낡은 사진 한 장이 꽂혀 있는 뚜렷한 클로즈업.",
            "based_on_beat": 3,
            "characters": [],
            "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": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "한 손에 구겨진 사진을 꽉 쥔 수리영이 등 뒤에 백팩을 멘 채 어두운 현관을 향해 한쪽 발을 공중에 띄우고 걷는 자세를 취한 뒷모습.",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "original_description": "한 손에 구겨진 사진을 꽉 쥔 수리영이 등 뒤에 백팩을 멘 채 어두운 현관을 향해 발을 내디딘 뒷모습.",
            "validator_reason": "이동 동작이므로 '발을 내디딘'을 추진력을 보존한 mid-stride(발을 공중에 띄운) 찰나로 구체화함.",
            "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": [],
            "original_description": "짙은 안개 속에서 낡은 어선 한 척의 뱃머리가 서서히 드러난 멈춘 찰나.",
            "validator_reason": "원문에 묘사된 배가 다가오는 추진력과 방향성을 보존하기 위해 이동 동작의 중간 찰나로 수정함.",
            "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": 3,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "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": [
              "혜수",
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "주머니에 양손을 찔러넣은 김형사가 입술을 비틀고 고개를 삐딱하게 기울인 뚱한 표정.",
            "based_on_beat": 2,
            "characters": [
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "열린 창문으로 들어온 바람에 바닥에 떨어진 커튼 자락이 펄럭인 채 허공에 떠 있는 찰나.",
            "based_on_beat": 3,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "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": [
              "수리영",
              "인우"
            ],
            "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": [
              "인우",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "눈을 부릅뜬 수리영이 인우를 빤히 노려보는 강렬한 측면.",
            "based_on_beat": 3,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "갑판 바닥을 박차고 일어난 인우의 상체가 조타실 쪽으로 크게 기울어진 정지 컷.",
            "based_on_beat": 4,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "조타실 문틀을 움켜쥔 인우의 어깨 뒤로 바짝 따라붙은 수리영의 상체가 겹친 멈춘 순간.",
            "based_on_beat": 4,
            "characters": [
              "인우",
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 29,
        "scene_heading": "S#29. 조타실 / 해질 무렵",
        "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": [
              "인우"
            ],
            "original_description": "수리영의 말에 눈썹을 치켜뜨고 동작을 굳힌 인우의 경악스러운 표정.",
            "validator_reason": "비시각적 원인 묘사('수리영의 말에')를 제거하고 눈썹이 올라간 채 정지된 결과 상태로 재작성.",
            "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": [
              "수리영",
              "인우"
            ],
            "original_description": "멍한 표정이 된 수리영의 시선이 인우의 어깨 너머 낡은 벽면으로 고정된 찰나.",
            "validator_reason": "상태 변화('표정이 된') 표현을 제거하고 시선이 완전히 고정된 정적 자세로 수정.",
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "인우의 등 뒤 조타실 낡은 벽면 곳곳에 붉은색 물감 같은 기괴한 원형 자국들이 빼곡히 새겨진 서늘한 프레임.",
            "based_on_beat": 3,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "두려움에 질려 눈을 동그랗게 뜬 수리영의 굳은 얼굴 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 12,
            "description": "눈꺼풀이 반쯤 감긴 수리영의 몸이 앞을 향해 비스듬히 기울어진 멈춘 순간.",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 13,
            "description": "의식을 잃은 수리영의 고개가 인우의 어깨 위에 닿아 있는 정적인 상태.",
            "based_on_beat": 4,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 14,
            "description": "자신의 어깨에 기대어 늘어진 수리영을 곁눈질로 내려다보며 시선을 멈춘 인우의 서늘한 표정.",
            "based_on_beat": 4,
            "characters": [
              "수리영",
              "인우"
            ],
            "original_description": "자신의 어깨에 기대어 늘어진 수리영을 곁눈질로 힐끗 내려다보는 인우의 서늘한 시선.",
            "validator_reason": "짧은 시간의 움직임을 암시하는 부사('힐끗')를 제거하고 시선이 고정된 찰나로 수정.",
            "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": "어선의 뾰족한 뱃머리가 짙은 안개벽 표면을 파고드는 mid-action 순간, 선수 양옆으로 물결이 갈라지는 모습.",
            "based_on_beat": 1,
            "characters": [],
            "original_description": "어선의 뾰족한 뱃머리가 짙은 안개벽 표면에 막 닿은 멈춘 찰나.",
            "validator_reason": "배가 안개 속으로 이동하는 추진 방향을 보존하기 위해 억지로 멈춘 표현을 수정하고 물살 단서를 추가함.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "짙은 안개 속으로 어선의 선체 절반이 가려진 채 나아가는 mid-action 실루엣, 선미 뒤쪽으로 물살이 밀려나는 풍경.",
            "based_on_beat": 1,
            "characters": [],
            "original_description": "짙은 안개 속으로 어선의 선체 절반이 가려진 채 멈춰 선 정적인 실루엣.",
            "validator_reason": "이동 중인 배를 정적인 상태로 잘못 묘사했으므로, 추진력을 나타내는 mid-action 순간으로 수정함.",
            "character_ids": []
          }
        ]
      }
    ],
    "total_shots": 197,
    "changed_shots": 31
  },
  "step_id": "shot_validator",
  "run_id": "322771fd-f9ca-418b-9344-81c9165018be",
  "resolved_model": "gemini-pro",
  "updated_at": "2026-06-30T02:19:49.130819+00:00",
  "schema_version": 1,
  "config_hash": "99914b932bd37a50",
  "project_config_snapshot": {}
}