{
  "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": "검은 인영이 바닥에 쓰러진 한국인 남성의 몸을 위에서 강하게 짓누르고 있는 모습.",
            "based_on_beat": 1,
            "characters": [
              "검은 인영",
              "한국인 남성"
            ],
            "original_description": "검은 인영이 바닥에 쓰러진 한국인 남성의 몸 위에 겹쳐진 채 멈춘 정지 구도.",
            "validator_reason": "정지를 강조하는 불필요한 메타 표현('멈춘 정지 구도')을 제거하고 강압적 접촉 상태를 시각적으로 명확히 묘사함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 2,
        "scene_heading": "S#2. 도시 뒷골목 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "짙은 안개가 깔린 도시 뒷골목, 전봇대 아래에 두 한국인 남녀가 밀착해 있는 실루엣.",
            "based_on_beat": 1,
            "characters": [
              "한국인 남성",
              "한국인 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "붉은 눈동자를 번뜩이며 고개를 숙이고 있는 한국인 남성의 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "한국인 남성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "한국인 남성의 이빨이 한국인 여성의 목 피부를 강하게 파고들며 물어뜯는 순간, 여성의 고개가 무력하게 뒤로 젖혀진 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "한국인 남성",
              "한국인 여성"
            ],
            "original_description": "한국인 남성의 입술이 한국인 여성의 목 피부에 닿은 정지 순간.",
            "validator_reason": "원문에 묘사된 살점을 뜯는 능동적 행위를 모호한 정적 접촉('입술이 닿은')으로 약화시켰으므로, 능동적 힘이 들어간 찰나로 재작성함.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "한국인 여성이 바닥에 엎어진 채 움직임이 멈춘 상태.",
            "based_on_beat": 1,
            "characters": [
              "한국인 여성"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 3,
        "scene_heading": "S#3. 현장 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "노란 폴리스 라인이 쳐진 숲속 현장, 지면을 향해 몸을 숙인 채 증거물을 살피는 여러 명의 한국인 감식반 경찰들의 정면.",
            "based_on_beat": 1,
            "characters": [
              "한국인 감식반 경찰들"
            ],
            "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": []
          }
        ]
      },
      {
        "scene_index": 4,
        "scene_heading": "S#4. 옥탑방 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "어스름한 빛 아래, 인천 변두리의 낡은 빌라 옥탑방 전경이 내려다보이는 부감 쇼트.",
            "based_on_beat": 0,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 5,
        "scene_heading": "S#5. 옥탑방 안 / 실내",
        "shots": [
          {
            "shot_index": 1,
            "description": "창문 틈으로 빛이 비추는 싱크대 수도꼭지 끝에 물방울이 매달린 찰나.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "가스레인지 위 냄비 가장자리로 하얀 김이 피어오르는 정지 구도.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "TV 모니터 불빛을 받으며 화면을 뚫어지게 주시하는 한국인 중년 여성의 심각한 얼굴.",
            "based_on_beat": 1,
            "characters": [
              "한국인 중년 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "방문이 열린 틈 사이로 두 팔을 위로 뻗은 채 서 있는 수리영의 전신.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "한국인 중년 여성의 손가락이 TV 전원 버튼에 닿은 순간.",
            "based_on_beat": 1,
            "characters": [
              "한국인 중년 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영을 향해 고개를 돌린 채 옅은 미소를 띠고 있는 한국인 중년 여성의 정면.",
            "based_on_beat": 1,
            "characters": [
              "한국인 중년 여성",
              "수리영"
            ],
            "original_description": "한국인 중년 여성이 수리영을 향해 고개를 돌려 옅은 미소를 띤 정면.",
            "validator_reason": "'고개를 돌려'라는 동작 진행 표현을 고정된 상태인 '고개를 돌린 채'로 수정하여 단일 찰나로 만들었습니다.",
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "식탁에 앉아 입술을 삐죽이며 정면을 바라보는 수리영의 상반신.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "한국인 중년 여성의 손이 컵을 식탁 위에 올려놓은 채 멈춘 순간.",
            "based_on_beat": 2,
            "characters": [
              "한국인 중년 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "수리영이 컵 가장자리에 입술을 댄 찰나.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "바닥에 놓인 신발에 발을 반쯤 넣은 채 멈춰 선 수리영의 하반신.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "수리영이 한국인 중년 여성의 어깨 부근에 코를 가까이 댄 옆모습.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "한국인 중년 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 12,
            "description": "수리영의 시선 끝에 걸린, 한국인 중년 여성의 손목 피부에 그려진 작은 원 모양의 표식 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "한국인 중년 여성"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 6,
        "scene_heading": "S#6. 해안가 도로 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "짙은 푸른빛이 도는 해안가 도로, 자전거 핸들을 쥐고 앞으로 나아가는 수리영의 상반신, 바람에 머리카락이 뒤로 휘날리고 있다.",
            "based_on_beat": 0,
            "characters": [
              "수리영"
            ],
            "original_description": "짙은 푸른빛이 도는 해안가 도로, 자전거 핸들을 쥔 수리영의 상반신.",
            "validator_reason": "원문의 자전거를 타고 달리는 이동 동작을 보존하기 위해 머리카락이 휘날리는 mid-action 상태로 재작성했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "이어폰을 귀에 꽂은 채 눈을 감고 옅게 미소 지은 수리영의 얼굴 클로즈업.",
            "based_on_beat": 0,
            "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": "한국인 50대 남성이 주사기 바늘을 개의 엉덩이 피부에 찌른 순간.",
            "based_on_beat": 1,
            "characters": [
              "한국인 50대 남성",
              "개"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "철창에 갇힌 개들을 바라보며 한숨을 쉬듯 입을 살짝 벌린 수리영의 상반신.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "개들"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영이 핸드폰을 귀에 바짝 댄 채 앞을 응시하는 정지 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "수리영의 손에 들린 이발기 날이 개의 털에 닿은 순간.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "개"
            ],
            "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": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "마트 입구 밖, 어두운 그림자가 깔린 곳에서 핸드폰 화면을 내려다보는 수리영의 상반신.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 9,
        "scene_heading": "S#9. 해안가 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "짙은 안개와 어둠이 내린 해안도로, 자전거 안장에서 몸을 앞으로 기울인 채 한쪽 무릎을 굽혀 페달을 강하게 밟아 누르는 중간 동작인 수리영의 실루엣.",
            "based_on_beat": 0,
            "characters": [
              "수리영"
            ],
            "original_description": "짙은 안개와 어둠이 내린 해안도로, 자전거 안장에서 몸을 앞으로 기울인 채 멈춘 수리영의 실루엣.",
            "validator_reason": "원문의 이동/추진 동작을 '멈춘' 상태로 잘못 묘사하여, 추진력을 보존하는 mid-pedal 찰나로 재작성함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 10,
        "scene_heading": "S#10. 옥탑방 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "로우키 조명 아래, 옥상 평상 위로 마른 잎사귀 하나가 공중에 떠 있는 찰나.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "어둠 속, 한국인 남성의 검은 구두 코끝에 마른 잎사귀가 닿은 순간.",
            "based_on_beat": 1,
            "characters": [
              "한국인 남성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "철문 현관문 바닥으로 길게 드리워진 남자의 검은 그림자.",
            "based_on_beat": 1,
            "characters": [
              "남자"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "남자의 손가락이 문틈에 끼워진 종이 전단지를 밀어 넣은 채 멈춘 순간.",
            "based_on_beat": 1,
            "characters": [
              "남자"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "어둠 속에서 철문이 살짝 열려 있는 정지 구도.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "푸른빛이 도는 창문 위로, 거대한 형체가 다른 형체를 짓누르고 있는 그림자 실루엣.",
            "based_on_beat": 1,
            "characters": [
              "거대한 형체",
              "다른 형체"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 11,
        "scene_heading": "S#11. 옥탑 방 밖 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "좁은 골목길 코너에서 자전거 페달을 밟으며 달리는 중간 자세, 머리카락이 뒤로 흩날리는 수리영의 정면.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "좁은 골목길 코너에 자전거 바퀴를 튼 채 멈춰 선 수리영의 정면.",
            "validator_reason": "원문의 이동 동작(달리는) 추진력을 누락하고 멈춰 선 상태로 잘못 변환하여 mid-action freeze 규칙을 적용함.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "어두운 다세대 빌라 마당, 자전거를 옆에 세운 채 계단 위를 올려다보는 수리영의 전신.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "옥탑방 계단 중간에서 코를 찡그린 채 멈춰 선 수리영의 상반신.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "반쯤 열린 현관 철문을 굳은 표정으로 주시하는 수리영의 얼굴.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "반쯤 열린 철문 틈 사이로 짙은 어둠만이 내려앉은 내부 구도.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 12,
        "scene_heading": "S#12. 옥탑방 안 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "희미한 스탠드 불빛이 비추는 거실, 시선을 한 곳에 고정한 채 긴장한 자세로 멈춰 서 있는 수리영의 상반신.",
            "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": "켜져 있는 TV 모니터의 푸른 불빛 클로즈업.",
            "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": [
              "수리영"
            ],
            "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": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "부들부들 떨리는 수리영의 손가락이 핸드폰 액정 화면에 닿은 찰나.",
            "validator_reason": "'부들부들 떨리는'이라는 시간 진행 및 연속 동작 표현을 제거하고 정지 상태로 수정했습니다.",
            "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": []
          },
          {
            "shot_index": 17,
            "description": "두 손으로 머리를 감싼 채 입을 크게 벌린 수리영의 얼굴.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 13,
        "scene_heading": "S#13. 옥탑방 외곽 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "옥탑방 계단을 다급히 내려가며 한 발을 계단 아래 허공에 내딛은 mid-action 자세의 수리영 전신.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "옥탑방 계단을 다급히 내려오다 한 발을 내딛은 채 멈춘 수리영의 전신.",
            "validator_reason": "이동 동작을 단순히 멈춘 상태가 아니라 추진력 방향을 보존한 mid-action 찰나로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "계단 아래 다세대 빌라 마당, 붉은 사이렌 불빛이 번쩍이는 경찰차 전경.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "초점을 잃은 눈으로 멍하니 서 있는 수리영의 얼굴.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "수리영을 향해 달려오다 두 발이 허공에 뜬 혜수의 전신.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "혜수를 올려다보며 울먹이는 표정의 수리영 상반신.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "크게 놀라 두 눈이 커진 혜수의 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "계단을 오르며 한쪽 발을 공중에 뻗은 혜수와 김형사의 측면 실루엣.",
            "based_on_beat": 2,
            "characters": [
              "혜수",
              "김형사"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 14,
        "scene_heading": "S#14. 옥탑방 안 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "옥탑방 현관문 밖으로 걸어나오던 중 한 발을 내디딘 채 서 있는 혜수와 김형사의 정면.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "김형사"
            ],
            "original_description": "옥탑방 현관문 밖으로 걸어 나오며 멈춰 선 혜수와 김형사의 정면.",
            "validator_reason": "'걸어 나오며'라는 진행 동작과 '멈춰 선' 정지 상태가 섞여 있어, 걷는 도중의 고정된 순간으로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "허탈한 표정으로 서 있는 김형사의 상반신.",
            "based_on_beat": 1,
            "characters": [
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "옥탑방 안으로 뛰어들어가는 방향으로 몸을 기울인 채 한 발이 공중에 떠 있는 수리영의 뒷모습.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "옥탑방 안으로 뛰어들어가며 한 발을 내민 수리영의 뒷모습.",
            "validator_reason": "'뛰어들어가며'라는 진행형 표현을 제거하고 뛰는 동작의 추진력이 보존된 공중 정지 순간으로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "핏자국이나 시신 없이 깨끗하게 정돈된 수리영 방의 내부 정경.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "하얗게 질린 얼굴로 멍하니 멈춘 수리영의 상반신.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "거실 식탁 앞에 멈춰 선 수리영의 측면.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "깨끗하게 비워진 식탁 위 클로즈업.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "인상을 찌푸린 채 삐딱하게 서 있는 김형사의 상반신.",
            "based_on_beat": 1,
            "characters": [
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "김형사를 날카롭게 째려보는 혜수의 얼굴.",
            "based_on_beat": 2,
            "characters": [
              "혜수",
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "수리영의 양어깨에 두 손을 얹은 채 멈춘 혜수의 상반신.",
            "based_on_beat": 2,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "침울한 표정으로 고개를 푹 숙인 수리영의 정면.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 12,
            "description": "방 한구석, 위치가 미묘하게 틀어진 백팩과 인형이 놓인 바닥 정지 구도.",
            "based_on_beat": 2,
            "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": "멀리서 혜수와 수리영을 엿보는 듯한 1인칭 시점의 어두운 정지 구도.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 16,
        "scene_heading": "S#16. 경찰서 사무실 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "사무실 책상 사이, 핸드폰을 귀에 댄 채 서 있는 혜수의 상반신.",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "의자에 기대앉아 뚱한 표정으로 혜수를 쳐다보는 김형사의 상반신.",
            "based_on_beat": 1,
            "characters": [
              "김형사",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "혜수의 손이 핸드폰 액정 화면을 김형사 눈앞에 바짝 들이민 순간.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "심각하게 눈썹을 찌푸린 혜수의 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 17,
        "scene_heading": "S#17. 옥탑방 / 동틀무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "동이 트는 푸르스름한 새벽, 불이 켜진 옥탑방 창문을 올려다보는 검은 고양이의 측면.",
            "based_on_beat": 1,
            "characters": [
              "검은 고양이"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "검은 고양이가 옥탑방 담벼락 위로 뛰어오른 찰나의 공중 실루엣.",
            "based_on_beat": 1,
            "characters": [
              "검은 고양이"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 18,
        "scene_heading": "S#18. 안방 안 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "안방 침대에 머리를 댄 채 눈을 감고 앉아있는 수리영의 상반신.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "두 눈을 번쩍 뜬 수리영의 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "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": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "욕실 거울을 멍하니 응시하는 수리영의 얼굴 반영.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "거울 속 반영, 수리영의 등 뒤 욕실 벽면에 선명한 붉은 원이 그려져 있는 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "진짜 벽 쪽으로 고개를 완전히 돌린 채 시선을 고정한 수리영의 측면.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "고개를 홱 돌려 진짜 벽을 바라보는 수리영의 측면.",
            "validator_reason": "'고개를 홱 돌려 바라보는'의 순차적 동작을 '돌린 채 시선을 고정한' 단일 정지 상태로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 12,
            "description": "아무 흔적 없이 깨끗한 타일이 드러난 진짜 욕실 벽면 정면.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 13,
            "description": "거실 식탁 앞, 물컵 가장자리에 입술을 댄 수리영의 상반신.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 14,
            "description": "식탁 위에 놓인 사진 속, 환하게 웃는 한국인 중년 여성의 얼굴이 기괴하게 흘러내리는 찰나 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "한국인 중년 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 15,
            "description": "공포에 질려 입을 크게 벌린 수리영의 정면.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 16,
            "description": "자신의 뺨을 강하게 내리치는 순간, 손바닥과 뺨이 충돌하며 피부가 일그러지는 찰나.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영의 손바닥이 자신의 뺨에 닿은 채 멈춘 순간.",
            "validator_reason": "뺨을 치는 원문의 능동적 타격 행위가 약화되지 않도록 충돌 순간의 타격감과 피부 변형을 보존한 찰나로 수정함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 19,
        "scene_heading": "S#19. 마트 / 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": []
          },
          {
            "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": "마트 밖 처마 밑, 벽면 모서리에 매달린 둥근 CCTV 카메라 클로즈업.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "고개를 치켜든 채 CCTV 카메라를 빤히 올려다보는 수리영의 정면.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "고개를 들어 CCTV 카메라를 빤히 올려다보는 수리영의 정면.",
            "validator_reason": "'고개를 들어'라는 순차 동작을 '치켜든 채'라는 고정 자세로 수정하여 찰나를 보존함.",
            "character_ids": []
          },
          {
            "shot_index": 8,
            "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": "화면의 한쪽이 짙은 어둠에 가려진 채 정지된 모니터 속 저해상도 이미지 클로즈업.",
            "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": [
              "혜수",
              "보안 직원"
            ],
            "original_description": "고개를 돌려 보안 직원을 쳐다보는 혜수의 진지한 측면.",
            "validator_reason": "'고개를 돌려 쳐다보는'은 두 동작의 연속으로 보일 수 있어 고개를 돌린 결과 상태로 고정된 자세를 명확히 했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 7,
            "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": [
              "수리영"
            ],
            "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": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "접힌 종이쪽지를 주머니 안에 밀어 넣은 채 멈춘 수리영의 손.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "텅 빈 사무실 문밖으로 한 발을 내디딘 채 멈춘 수리영의 뒷모습.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 22,
        "scene_heading": "S#22. 경찰서 밖 / 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": 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": []
          },
          {
            "shot_index": 4,
            "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": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "바닥의 빗물이 튀어 오른 채 공중에 머문 자전거 앞바퀴 클로즈업.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 25,
        "scene_heading": "S#25. 옥탑방 안 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "해 질 무렵의 어스름한 빛이 비추는 거실, 바닥에 찍힌 흙 묻은 발자국들 클로즈업.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "열린 창문과 바닥에 쓰러져 있는 식탁 의자가 함께 보이는 난장판 거실 정경.",
            "based_on_beat": 1,
            "characters": [],
            "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": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "붉은 원 한가운데 벽에 꽂혀 있는 작은 사진 모서리에 검붉은 핏자국이 묻은 클로즈업.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영의 손가락이 벽에 꽂힌 사진 끝부분을 쥔 찰나.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "낡은 사진 속, 지붕 위에 둥근 원형 조형물이 달린 시골 식당 앞에 앉아 있는 두 어린 한국인 소녀의 흑백 이미지 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "두 어린 한국인 소녀"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "사진을 든 채 충격으로 멍해진 수리영의 측면 얼굴.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "다리에 힘이 풀린 듯 침대 가장자리에 털썩 주저앉은 찰나의 수리영 전신.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "어깨에 백팩을 멘 채 어수선한 방 한쪽을 멍한 눈으로 바라보는 수리영의 상반신.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "어깨에 백팩을 멘 채 어수선한 방 안을 멍한 눈으로 둘러보는 수리영의 상반신.",
            "validator_reason": "방 안을 둘러보는 연속 시선 이동을 한 방향을 바라보는 정지 순간으로 교정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "오른손에 사진을 꽉 쥔 채 열린 현관문 밖으로 한 발을 내민 수리영의 뒷모습.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 26,
        "scene_heading": "S#26. 포구 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "짙은 안개가 자욱하게 깔린 텅 빈 포구 전경.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "어두운 갯바위 위, 무릎을 모아 안은 채 안개 낀 바다를 응시하는 수리영의 실루엣.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영의 손에 쥐어진 핸드폰 액정 화면에 부재중 전화 표시가 떠 있는 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "뿌연 안개 속에서 희미하게 윤곽을 드러낸 채 정박해 있는 낡은 어선 한 척의 정면.",
            "based_on_beat": 2,
            "characters": [],
            "original_description": "뿌연 안개 속에서 윤곽을 드러내며 정박해 있는 낡은 어선 한 척의 정면.",
            "validator_reason": "'윤곽을 드러내며'라는 모호한 진행형 표현을 고정된 상태('드러낸 채')로 수정하여 찰나의 순간을 명확히 함.",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "배 앞머리에서 굵은 밧줄을 쥔 채 바닥을 내려다보는 인우의 상반신.",
            "based_on_beat": 2,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "갯바위에서 배를 향해 걸음을 옮기는 도중 한 발이 공중에 떠 있는 수리영의 전신.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "갯바위에서 일어나 배를 향해 한 발을 내디딘 수리영의 전신.",
            "validator_reason": "'일어나'와 '내디딘'이라는 순차적 동작이 섞여 있어, 이동 중인 찰나(mid-action)의 자세로 교정함.",
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "배 위에서 고개를 돌린 채 수리영을 무심한 눈빛으로 바라보는 인우의 얼굴.",
            "based_on_beat": 3,
            "characters": [
              "인우",
              "수리영"
            ],
            "original_description": "배 위에서 고개를 돌려 수리영을 무심한 눈빛으로 쳐다보는 인우의 얼굴.",
            "validator_reason": "'고개를 돌려'라는 동작 표현을 정지된 상태인 '고개를 돌린 채'로 변경함.",
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "양손을 모아 쥐고 절박한 표정으로 인우를 올려다보는 수리영의 상반신.",
            "based_on_beat": 3,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "턱을 살짝 치켜든 채 미간을 찌푸리며 멈춰 선 인우의 측면.",
            "based_on_beat": 3,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "인우가 밧줄을 묶은 채 멈춘 순간.",
            "based_on_beat": 3,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "바다를 등지고 선 수리영이 핸드폰을 입가에 바짝 댄 찰나의 상반신.",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 12,
            "description": "안개 낀 바다 너머를 바라보며 옅게 미소 짓는 수리영의 얼굴 클로즈업.",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 27,
        "scene_heading": "S#27. 옥탑방 안 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "난장판이 된 거실 한가운데, 핸드폰을 귀에 댄 채 눈이 커진 혜수의 상반신.",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "김형사를 향해 고개를 돌린 혜수의 얼굴.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "주머니에 손을 넣은 채 짝다리를 짚고 서서 입술을 삐죽이는 김형사의 전신.",
            "based_on_beat": 2,
            "characters": [
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "미간을 깊게 찌푸린 채 주먹을 꽉 쥔 혜수의 손 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "어스름한 빛 속, 바람에 반쯤 열린 현관 철문이 삐걱이며 멈춰 있는 황량한 거실 정지 구도.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 28,
        "scene_heading": "S#28. 바다 + 갑판 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "해 질 무렵 바다 위, 멈춰 있는 소형 어선의 외부 전경.",
            "based_on_beat": 0,
            "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": 2,
            "characters": [
              "인우"
            ],
            "original_description": "갑판 바닥에서 몸을 일으키며 어정쩡하게 멈춘 찰나의 인우 전신.",
            "validator_reason": "연속 동작인 '일으키며'를 한 찰나의 고정 상태인 '반쯤 일으킨 채'로 변경함.",
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "조타실을 향해 달려가는 mid-stride 순간, 한 발이 지면에서 떨어져 있고 추진력으로 옷자락이 뒤로 휘날리는 인우의 뒷모습.",
            "based_on_beat": 2,
            "characters": [
              "인우"
            ],
            "original_description": "조타실을 향해 한 발을 허공에 띄운 채 멈춘 인우의 뒷모습.",
            "validator_reason": "원문의 추진력을 보존하기 위해 motion direction을 포함한 mid-action freeze 규칙을 적용함.",
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "인우를 제지하기 위해 팔을 뻗어 인우의 어깨에 손을 대며 체중을 앞으로 싣는 mid-action 순간의 수리영 측면.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "인우"
            ],
            "original_description": "인우를 향해 팔을 뻗은 채 몸을 앞으로 기울인 수리영의 측면.",
            "validator_reason": "원문의 '막으면서'라는 능동적 신체 접촉 동작의 방향성과 힘을 보존하는 active contact freeze 규칙을 적용함.",
            "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": 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": [
              "수리영"
            ],
            "original_description": "눈꺼풀이 반쯤 감긴 채 고개가 무너져 내리는 수리영의 멍한 얼굴.",
            "validator_reason": "'무너져 내리는'이라는 연속적인 동작을 고개가 기울어진 고정 상태로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "수리영의 이마가 인우의 어깨에 닿은 채 몸이 기울어진 상반신 측면.",
            "based_on_beat": 3,
            "characters": [
              "수리영",
              "인우"
            ],
            "original_description": "수리영의 이마가 인우의 어깨에 툭 닿은 찰나의 상반신 측면.",
            "validator_reason": "'툭 닿은 찰나'라는 동작성 표현을 이마가 닿은 채 기울어진 정지 자세로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "어깨에 기대어 쓰러진 수리영을 굳은 표정으로 내려다보는 인우의 얼굴.",
            "based_on_beat": 3,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 30,
        "scene_heading": "S#30. 바다 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "황금빛 노을이 반사되는 텅 빈 바다 한가운데 떠 있는 소형 어선 전경.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "바다 수면 위로 거대한 장벽처럼 짙게 깔린 회색 안개 띠 정지 구도.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "어선의 앞머리가 짙은 안개 속으로 반쯤 파묻힌 찰나의 몽환적인 실루엣.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          }
        ]
      }
    ],
    "total_shots": 201,
    "changed_shots": 32
  },
  "step_id": "shot_validator",
  "run_id": "661c3799-2a7e-41d2-931b-6a56d9666d34",
  "resolved_model": "gemini-pro",
  "updated_at": "2026-06-19T02:15:40.972162+00:00",
  "schema_version": 1,
  "config_hash": "99914b932bd37a50",
  "project_config_snapshot": {}
}