{
  "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": [
              "검은 실루엣",
              "한국인 남성"
            ],
            "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": [
              "한국인 남성",
              "한국인 여성"
            ],
            "original_description": "한국인 남성의 입이 한국인 여성의 목덜미에 닿은 채 멈춘 정지 순간",
            "validator_reason": "원문의 격렬한 행위(살점을 뜯는)를 정적 접촉(닿은)으로 약화시켰으므로, 능동적 접촉의 순간으로 재작성함.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "목이 꺾인 채 바닥을 향해 기울어져 몸이 허공에 떠 있는 한국인 여성의 찰나",
            "based_on_beat": 1,
            "characters": [
              "한국인 여성"
            ],
            "original_description": "목이 꺾인 채 바닥을 향해 고꾸라진 한국인 여성의 몸이 허공에 뜬 찰나",
            "validator_reason": "결과 상태(고꾸라진)와 진행 상태(허공에 뜬)가 섞여 있어, 바닥으로 쓰러지는 도중의 일관된 mid-action 순간으로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "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": []
          }
        ]
      },
      {
        "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": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "식탁 위에 놓인 민숙의 손목 부위에 선명하게 드러난 붉은색 원형 표식 클로즈업",
            "based_on_beat": 2,
            "characters": [
              "민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "무심한 표정을 지은 채 정면을 응시하는 수리영의 얼굴 클로즈업",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "표식에서 시선을 거두고 무심한 표정을 지은 수리영의 얼굴 정면",
            "validator_reason": "'시선을 거두고'는 시간 흐름을 나타내는 연속 동작이므로, 무심한 표정으로 정지해 있는 단일 순간으로 수정함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 6,
        "scene_heading": "S#6. 해안가 도로 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "푸른 바다와 안개가 깔린 해안가 도로, 자전거 페달을 밟은 채 허공에 뜬 수리영의 다리",
            "based_on_beat": 0,
            "characters": [
              "수리영"
            ],
            "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": "맹견의 엉덩이에 주사기 바늘을 꽂은 채 멈춘 한국인 남성의 거친 손 클로즈업",
            "based_on_beat": 1,
            "characters": [
              "한국인 남성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "휴대전화를 귀에 댄 채 미간을 찌푸린 수리영의 상체",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "가위를 든 손을 앞으로 뻗은 채 멈춘 한국인 여성의 정지 순간",
            "based_on_beat": 2,
            "characters": [
              "한국인 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "강아지의 목덜미에 거품을 묻힌 채 활짝 웃는 수리영의 미소",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "강아지"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 8,
        "scene_heading": "S#8. 번화가·대형 마트 / 해질 무렵",
        "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": [
              "수리영",
              "한국인 여성"
            ],
            "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": 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-action 자세와 바람에 날리는 단서를 추가함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 10,
        "scene_heading": "S#10. 옥탑방 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어둠 속 평상 위, 말린 석창포 잎 하나가 허공에 떠 있는 정지 순간",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "바닥에 닿기 직전의 석창포 잎과 그 위로 뻗은 낯선 남자의 낡은 구두 끝자락",
            "based_on_beat": 1,
            "characters": [
              "낯선 남자"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "희미한 조명 아래 바닥으로 길게 늘어진 낯선 남자의 짙은 그림자",
            "based_on_beat": 1,
            "characters": [
              "낯선 남자"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "철문 문틈에 꽂힌 전단지에 닿은 낯선 남자의 손가락 클로즈업",
            "based_on_beat": 1,
            "characters": [
              "낯선 남자"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "전단지가 문틈 사이로 절반쯤 밀려 들어간 채 멈춘 정지 구도",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "반쯤 열린 철문 틈 사이로 한쪽 발을 들이민 낯선 남자의 발치",
            "based_on_beat": 1,
            "characters": [
              "낯선 남자"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "불 꺼진 창문 위로 두 개의 실루엣이 하나로 겹쳐진 순간의 그림자",
            "based_on_beat": 2,
            "characters": [
              "실루엣"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "창문에 비친 그림자 중 하나가 다른 그림자의 목 부위로 꺾여 들어간 찰나의 형상",
            "based_on_beat": 2,
            "characters": [
              "그림자"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "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": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "열린 철문을 향해 눈을 크게 뜬 채 얼어붙은 수리영의 얼굴 클로즈업",
            "based_on_beat": 2,
            "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": "가스레인지 위 끓다 식은 냄비와 켜져 있는 TV의 희미한 푸른빛 정지 샷",
            "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": "'지나'라는 연속적인 공간 이동 묘사를 제거하고 한 순간의 고정된 상태로 교정함",
            "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": "시신을 보고 뒤로 체중이 쏠려 물러서다 멈칫한 mid-action 자세로 굳은 수리영의 겁에 질린 얼굴",
            "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": 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": "벽의 붉은 원을 보며 입을 크게 벌리고 비명을 지르는 수리영의 굳은 얼굴",
            "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": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "경찰차 옆에 서서 수리영 쪽으로 고개를 확 돌린 혜수의 놀란 상체",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "혜수 앞에 초점을 잃고 멍하니 멈춰 선 수리영의 넋 나간 얼굴",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "수리영을 올려다보며 양손을 내민 채 굳어버린 혜수의 정지 순간",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "충격을 받아 눈을 동그랗게 뜬 혜수의 얼굴 클로즈업",
            "based_on_beat": 2,
            "characters": [
              "혜수"
            ],
            "original_description": "수리영의 말을 듣고 충격을 받아 눈을 동그랗게 뜬 혜수의 얼굴 클로즈업",
            "validator_reason": "'말을 듣고'라는 시간적 선후·인과 관계를 나타내는 표현을 제거하여 단일 찰나의 상태만 남김",
            "character_ids": []
          },
          {
            "shot_index": 6,
            "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": [
              "수리영",
              "혜수",
              "김형사"
            ],
            "original_description": "김형사 뒤에서 허둥지둥 뛰어오는 수리영을 향해 고개를 돌린 혜수의 정지 샷",
            "validator_reason": "수리영이 뛰어오는 이동 동작의 mid-action 추진력을 명시적으로 보존함.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "방 안으로 들어가려 한 발을 공중에 띄운 채 문턱에서 몸이 굳어버린 수리영의 정면 전신",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "방 안으로 뛰어들어가다 문턱에서 몸이 굳어버린 수리영의 정면 전신",
            "validator_reason": "뛰어들어가는 추진력을 보존하기 위해 mid-action 자세를 구체화함.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "핏자국이나 시신 없이 지나치게 깨끗하게 정돈된 방 안의 정적 구도",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "텅 빈 커튼 뒤 공간을 바라보며 얼굴이 하얗게 질린 수리영의 표정",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "식탁 앞에 서서 아무것도 없는 빈 식탁을 멍하니 응시하는 수리영의 옆모습",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "미간을 찌푸린 채 수리영을 향해 삿대질하며 멈춘 김형사의 짜증 섞인 얼굴",
            "based_on_beat": 2,
            "characters": [
              "김형사",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "김형사를 매섭게 노려보며 눈을 부릅뜬 혜수의 옆얼굴",
            "based_on_beat": 2,
            "characters": [
              "혜수",
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "수리영의 어깨에 두 손을 얹은 채 다정한 눈빛으로 멈춘 혜수의 상체",
            "based_on_beat": 3,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "혜수의 손길에도 허공을 응시하며 굳어 있는 수리영의 초점 잃은 눈동자",
            "based_on_beat": 3,
            "characters": [
              "수리영",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "방 안 한구석, 원래와 미세하게 다른 위치에 놓인 백팩과 인형의 정지 구도",
            "based_on_beat": 3,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 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": [
              "수리영"
            ],
            "original_description": "자리에서 벌떡 일어나며 한쪽 발이 바닥에서 떨어진 수리영의 굳은 자세",
            "validator_reason": "'일어나며'라는 연속 동작 표현을 제거하고 몸을 일으키는 도중의 한 찰나로 고정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "수리영 쪽으로 고개를 돌린 채 굳어있는 혜수의 놀란 표정",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "수리영"
            ],
            "original_description": "수리영이 달려가는 방향으로 고개를 돌린 채 멈춘 혜수의 놀란 표정",
            "validator_reason": "'달려가는'이라는 연속 동작 암시를 제거하고 고정된 상태로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "한쪽 발이 공중에 뜬 채 달려가는 자세인 수리영의 뒷모습을 향해, 두 손을 입가에 모으고 입을 크게 벌린 혜수의 상체",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "수리영"
            ],
            "original_description": "멀어지는 수리영의 뒷모습을 향해 두 손을 입가에 모으고 소리치는 혜수의 상체",
            "validator_reason": "'멀어지는'과 '소리치는'이라는 진행 동작을 제거하고 mid-action 자세와 입을 벌린 찰나 상태로 재작성했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "멀리 떨어진 어두운 곳에서 정류장의 혜수와 수리영을 지켜보는 정지된 시점 쇼트",
            "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": [
              "혜수"
            ],
            "original_description": "경찰서 사무실 안, 휴대전화를 귓가에 댄 채 걸음을 멈춘 혜수의 불안한 표정",
            "validator_reason": "대본의 이동 동작(들어오면서)이 정지 상태로 잘못 묘사되어 motion direction을 보존한 mid-stride 자세로 수정함.",
            "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": 17,
        "scene_heading": "S#17. 옥탑방 / 동틀무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "푸르스름한 새벽빛 아래, 불이 켜진 옥탑방 창문을 올려다보는 검은 고양이의 정지 샷",
            "based_on_beat": 1,
            "characters": [
              "검은 고양이"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "담장 위로 뛰어올라 네 발이 허공에 뜬 검은 고양이의 날렵한 실루엣",
            "based_on_beat": 1,
            "characters": [
              "검은 고양이"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 18,
        "scene_heading": "S#18. 안방 안 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "침대 헤드에 머리를 기댄 채 두 눈을 감고 졸고 있는 수리영의 상체",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "고양이 울음소리에 놀라 두 눈을 크게 치켜뜬 채 멈춘 수리영의 얼굴 클로즈업",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "고양이 울음소리에 번쩍 눈을 크게 뜬 수리영의 놀란 얼굴 클로즈업",
            "validator_reason": "'번쩍 눈을 뜬'이라는 동작 변화를 눈을 치켜뜬 고정된 결과 상태로 수정",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "굳게 닫힌 자신의 방문 앞에 멈춰 선 수리영의 긴장한 뒷모습",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "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": 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": [
              "수리영"
            ],
            "original_description": "거울에서 고개를 휙 돌려 실제 벽을 바라보며 멈춘 수리영의 긴장된 옆모습",
            "validator_reason": "'고개를 휙 돌려'라는 선행 동작의 시간 연결을 제거하고 고정된 시선의 상태로 수정",
            "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": []
          }
        ]
      },
      {
        "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": "입술을 꽉 다문 채 남자 직원을 마주 보고 선 수리영의 옆얼굴.",
            "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": 1,
            "characters": [
              "수리영",
              "남자 직원"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "미간을 찌푸린 채 휴대전화를 귀에 대고 멈춘 수리영의 상체.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 20,
        "scene_heading": "S#20. 마트 총무과 / 실내",
        "shots": [
          {
            "shot_index": 1,
            "description": "사람의 흐릿한 실루엣이 떠 있는 어두운 CCTV 모니터 화면 클로즈업.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "의자에 앉은 한국인 남성의 등받이를 꽉 쥔 채 하얗게 질린 얼굴로 멈춰 선 수리영의 상체.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "한국인 남성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "모니터의 푸른빛을 받은 채 고개를 갸웃하고 굳어버린 한국인 남성의 옆얼굴.",
            "based_on_beat": 1,
            "characters": [
              "한국인 남성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "심각한 표정으로 모니터 화면에 시선을 고정한 채 우뚝 선 혜수의 전신.",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "불안한 눈빛으로 흐릿한 화면을 뚫어지게 응시하는 수리영의 굳은 얼굴.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "책상에 짚은 손을 그대로 둔 채, 한국인 남성 쪽으로 고개를 돌려 시선을 고정한 혜수의 상체.",
            "based_on_beat": 2,
            "characters": [
              "혜수",
              "한국인 남성"
            ],
            "original_description": "책상 짚은 손을 그대로 둔 채 한국인 남성 쪽으로 고개를 확 돌린 혜수의 정지 찰나.",
            "validator_reason": "'확 돌린'이라는 동작성 강조 표현과 '정지 찰나'라는 메타적 표현을 제거하고 완전한 시각적 고정 상태로 수정함.",
            "character_ids": []
          }
        ]
      },
      {
        "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": "시신의 핏자국과 상처가 선명하게 찍힌 채 책상 위에 어지럽게 널려 있는 살인사건 현장 사진들.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "현장 사진들을 내려다보며 충격에 빠져 두 눈을 크게 뜬 수리영의 굳은 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "바다 위 붉은색 좌표 점이 선명하게 떠 있는 김형사 자리의 모니터 화면.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "상체를 살짝 틀어 빈 사무실의 한 곳을 향해 경계하듯 시선을 고정한 수리영의 긴장된 표정.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "상체를 살짝 튼 채 아무도 없는 빈 사무실을 둘러보는 수리영의 긴장된 표정.",
            "validator_reason": "'둘러보는'은 여러 곳을 보는 연속 동작이므로, 한 방향으로 시선을 고정한 단일 찰나로 수정함.",
            "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": []
          }
        ]
      },
      {
        "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": []
          }
        ]
      },
      {
        "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": [
              "수리영"
            ],
            "original_description": "비에 흠뻑 젖은 머리카락에서 빗물이 맺힌 채 굳은 표정으로 자전거에 매달린 수리영의 얼굴 클로즈업.",
            "validator_reason": "자전거를 타고 달리는 이동 동작의 추진력을 보존하기 위해 머리카락이 뒤로 흩날리는 mid-action 모먼트로 수정했습니다.",
            "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": [],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "엉망이 된 거실을 멍하니 바라보며 입을 반쯤 벌린 채 현관에 얼어붙은 수리영의 굳은 전신.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "자신의 방 문턱에 서서 정면의 벽을 뚫어지게 응시하는 수리영의 옆모습.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "벽면에 거칠게 그려진 붉은 원 중앙에 꽂혀 있는 피 묻은 낡은 사진 클로즈업.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "붉은 피가 묻은 사진의 가장자리를 꽉 움켜쥔 수리영의 굳은 손가락 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "붉은 피가 묻은 사진의 가장자리를 꽉 움켜쥔 수리영의 떨리는 손가락 정지 샷.",
            "validator_reason": "사진에서는 보이지 않는 '떨리는' 상태 묘사를 제거하고 '굳은' 정지 자세로 한 찰나를 명확히 했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "둥근 표식이 세워진 시골 식당 지붕 아래, 두 명의 어린 여자아이가 앉아 있는 모습이 담긴 낡은 사진.",
            "based_on_beat": 2,
            "characters": [
              "어린 여자아이들"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "어깨를 축 늘어뜨린 채 침대 가장자리에 주저앉아 있는 수리영의 넋 나간 전신.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "어깨를 축 늘어뜨린 채 침대 가장자리에 털썩 주저앉아 멈춘 수리영의 넋 나간 전신.",
            "validator_reason": "'털썩 주저앉아 멈춘'이라는 동작이 섞인 모호한 표현을 '주저앉아 있는'이라는 명확한 결과 정지 상태로 변경했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "한쪽 어깨에 백팩을 걸친 채 초점 없는 눈으로 허공을 응시하며 우뚝 선 수리영의 정면.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "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": [],
            "original_description": "비가 그친 뒤 짙은 안개가 자욱하게 깔린 텅 빈 포구와 젖은 갯바위의 정적 구도.",
            "validator_reason": "'비가 그친 뒤'라는 비시각적 시간 흐름을 시각적인 젖은 상태 묘사로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "축축한 갯바위 위에 무릎을 모아 안고 웅크린 채 앉아 있는 수리영의 전신.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "손안에서 밝게 빛나는 휴대전화 화면을 멍하니 내려다보는 수리영의 지친 얼굴.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "짙은 흰 안개를 뚫고 모습을 드러낸 작은 낡은 배의 뱃머리가 멈춘 정지 찰나.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "배에서 내려 포구 바닥을 디딘 채 굵은 닻줄을 꽉 쥔 인우의 정지 자세.",
            "based_on_beat": 2,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "인우의 앞을 가로막고 서서 간절한 눈빛으로 그를 올려다보는 수리영의 옆얼굴.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "고개를 살짝 돌린 채 안개가 낀 텅 빈 바다로 시선을 고정한 인우의 무심한 표정.",
            "based_on_beat": 2,
            "characters": [
              "인우"
            ],
            "original_description": "고개를 살짝 돌려 안개가 낀 텅 빈 바다로 시선을 고정한 인우의 무심한 표정.",
            "validator_reason": "'돌려'라는 동작 진행을 '돌린 채'라는 고정 상태로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "한 손을 뒷목에 얹은 채 난감한 얼굴로 수리영을 힐끗 내려다보는 인우의 상체.",
            "based_on_beat": 2,
            "characters": [
              "인우",
              "수리영"
            ],
            "original_description": "뒷목을 긁적이며 난감한 얼굴로 수리영을 힐끗 내려다보는 인우의 상체.",
            "validator_reason": "'긁적이며'라는 연속 동작을 고정된 찰나의 자세로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "안개 낀 바다를 향해 휴대전화를 입가에 댄 채 멈춰 선 수리영의 뒷모습.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 27,
        "scene_heading": "S#27. 옥탑방 안 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "엉망이 된 옥탑방 한가운데 서서 휴대전화를 귓가에 댄 채 하얗게 질린 혜수의 정면 구도.",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "팔짱을 낀 채 삐딱하게 서서 못마땅한 표정으로 입술을 비죽이는 김형사의 상체.",
            "based_on_beat": 1,
            "characters": [
              "김형사"
            ],
            "original_description": "팔짱을 낀 채 혀를 차며 삐딱하게 선 김형사의 상체.",
            "validator_reason": "청각적이고 연속적인 동작인 '혀를 차며'를 단일 시각적 순간의 표정으로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "눈을 크게 부릅뜬 채 김형사 쪽으로 고개를 확 돌린 혜수의 놀란 얼굴 클로즈업.",
            "based_on_beat": 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": 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": 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": 3,
            "characters": [
              "인우"
            ],
            "original_description": "갑판 바닥을 발로 차고 일어나며 몸이 허공에 붕 뜬 인우의 전신 찰나",
            "validator_reason": "'일어나며'라는 순차적 동작 표현을 제거하고 허공에 뜬 상태의 단일 찰나로 수정.",
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "조타실을 향해 다급하게 몸을 숙인 채 달려가는 자세로 굳은 인우의 뒷모습",
            "based_on_beat": 3,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "인우의 뒤를 쫓아 갑판 위를 질주하는 mid-stride 순간, 한 발이 막 허공에 들려 있는 수리영의 다리 정지 샷",
            "based_on_beat": 4,
            "characters": [
              "인우",
              "수리영"
            ],
            "original_description": "인우의 뒤를 쫓아 갑판을 박차고 달리는 수리영의 다리 정지 샷",
            "validator_reason": "달리는 동작을 시각적인 mid-stride 자세 묘사로 구체화하여 방향성과 추진력을 보존함.",
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "조타실 입구에서 조타기를 향해 한 손을 뻗은 인우의 앞을 가로막은 채 두 팔을 팽팽하게 벌린 수리영의 굳은 상체",
            "based_on_beat": 4,
            "characters": [
              "인우",
              "수리영"
            ],
            "original_description": "조타실 입구에서 조타기를 잡으려는 인우의 앞을 가로막은 채 두 팔을 벌린 수리영의 굳은 상체",
            "validator_reason": "'잡으려는'이라는 비시각적 의도를 '손을 뻗은'이라는 구체적인 정지 자세로 수정.",
            "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": 2,
            "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": 3,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수많은 원들 사이에서 선명한 핏빛으로 칠해진 붉은 원의 뚜렷한 표식 클로즈업",
            "based_on_beat": 3,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "벽면의 붉은 원을 향해 시선을 고정한 채, 극도의 공포에 휩싸여 눈을 부릅뜬 수리영의 굳은 얼굴",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "original_description": "벽면의 붉은 원을 발견하고 극도의 공포에 휩싸여 눈을 부릅뜬 수리영의 굳은 얼굴",
            "validator_reason": "'발견하고'라는 순차적 동작 연결어를 제거하고, 시선을 고정한 상태의 정적 묘사로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "인우를 향해 시선을 고정한 채 다리에 힘이 풀려 몸이 크게 기울어진 수리영의 상체 찰나",
            "based_on_beat": 4,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "눈을 감은 채 인우의 어깨 위에 완전히 엎어져 멈춘 수리영의 정지 구도",
            "based_on_beat": 4,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "어깨에 기대어 쓰러진 수리영을 서늘하고 무표정한 눈빛으로 곁눈질하는 인우의 싸늘한 옆얼굴",
            "based_on_beat": 5,
            "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": [],
            "original_description": "자욱한 안개벽 속으로 뱃머리가 절반쯤 파묻힌 채 멈춘 낡은 소형어선의 정지 찰나",
            "validator_reason": "이동 중인 배를 '멈춘' 상태로 잘못 프리즈하여 추진력 단서가 소거되었으므로, 물살을 가르는 mid-action 상태로 재작성함",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "짙은 안개 사이로 희미하게 비치는 조타실 창문 너머 인우의 검은 실루엣 정지 샷",
            "based_on_beat": 1,
            "characters": [
              "인우"
            ],
            "character_ids": []
          }
        ]
      }
    ],
    "total_shots": 191,
    "changed_shots": 34
  },
  "step_id": "shot_validator",
  "run_id": "e0c6232e-c870-44a1-8581-a932b31ce4b1",
  "resolved_model": "gemini-pro",
  "updated_at": "2026-05-22T04:43:45.862725+00:00",
  "schema_version": 1,
  "config_hash": "99914b932bd37a50",
  "project_config_snapshot": {}
}