{
  "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": "달리는 한국인 남성의 발 클로즈업, 한 발은 맨발로 땅을 딛고 있고 벗겨진 신발 한 짝이 뒤로 날아가는 mid-stride 찰나.",
            "based_on_beat": 1,
            "characters": [
              "한국인 남성"
            ],
            "original_description": "바닥을 딛는 한 한국인 남성의 맨발에 벗겨진 신발 한 짝이 걸린 채 멈춘 순간.",
            "validator_reason": "원문의 도망치는 추진력을 살리기 위해 mid-stride 순간으로 재작성",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "한국인 남성의 허벅지에 커다란 이빨 자국이 나 있고 피가 흐르는 상태의 피부 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "한국인 남성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "검은 인영이 겁에 질린 한국인 남성의 어깨를 강하게 덮치며 짓누르는 mid-impact 순간, 남자의 상체가 충격으로 뒤로 기울어진 상태.",
            "based_on_beat": 1,
            "characters": [
              "한국인 남성",
              "검은 인영"
            ],
            "original_description": "허공에서 날아든 검은 인영이 겁에 질린 한국인 남성의 어깨에 닿기 직전의 멈춘 순간.",
            "validator_reason": "능동적 충격 단서를 잃지 않도록 닿기 직전 모호한 정적 상태를 mid-impact 순간으로 재작성",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 2,
        "scene_heading": "S#2. 도시 뒷골목 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "밤의 희미한 가로등 불빛 아래, 낡은 전봇대에 한 한국인 남성과 한국인 여성이 몸을 밀착한 채 서 있는 정면 구도.",
            "based_on_beat": 1,
            "characters": [
              "한국인 남성",
              "한국인 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "붉은 눈동자를 번뜩이는 한국인 남성이 한국인 여성의 목덜미에 입을 벌린 채 닿기 직전의 측면 구도.",
            "based_on_beat": 1,
            "characters": [
              "한국인 남성",
              "한국인 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "한국인 남성의 이빨이 한국인 여성의 목덜미를 꽉 문 채 멈춘 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "한국인 남성",
              "한국인 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "한국인 여성이 바닥으로 힘없이 쓰러지는 도중 몸이 허공에 기운 채 멈춘 상태.",
            "based_on_beat": 1,
            "characters": [
              "한국인 여성"
            ],
            "original_description": "목에 피를 흘리는 한국인 여성이 바닥으로 쓰러지며 몸이 허공에 기운 채 멈춘 상태.",
            "validator_reason": "원문에 없는 출혈(피) 표현을 제거하고, 쓰러지는 동작의 mid-action 찰나로 수정함.",
            "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": "좁은 거실의 작은 창으로 햇살이 들어오는 가운데, 앞치마를 두른 한국인 중년 여성이 굳은 표정으로 TV 화면을 응시한 채 멈춘 측면 구도.",
            "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": "물을 붓는 동작을 물줄기가 떨어지는 도중의 mid-action 순간으로 구체화하여 정지 상태를 강조함.",
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "약초 물이 담긴 컵을 입가에 댄 수리영이 인상을 찡그린 채 멈춘 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "외출 복장 차림의 수리영이 현관에서 한쪽 신발에 발을 밀어넣는 중간 찰나, 발이 신발에 반쯤 들어간 자세로 멈춘 하반신 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "외출 복장 차림의 수리영이 현관에서 신발을 꿰어 신은 채 멈춘 하반신 구도.",
            "validator_reason": "신발을 신는 동작을 발이 반쯤 들어간 mid-action 순간으로 구체화하여 방향성과 움직임을 보존함.",
            "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": []
          }
        ]
      },
      {
        "scene_index": 6,
        "scene_heading": "S#6. 해안가 도로 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "맑은 낮, 바다가 보이는 해안가 도로 위에서 자전거 손잡이를 꽉 쥔 채 옅은 미소를 머금고, 바람에 머리카락이 뒤로 흩날리는 수리영의 상체 컷.",
            "based_on_beat": 0,
            "characters": [
              "수리영"
            ],
            "original_description": "맑은 낮, 바다가 보이는 해안가 도로 위에서 자전거 손잡이를 꽉 쥔 채 옅은 미소를 머금은 수리영의 상체 컷.",
            "validator_reason": "자전거로 달리는 이동 동작의 추진력을 정지 순간에도 보존하기 위해 머리카락이 흩날리는 단서를 추가했습니다.",
            "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": []
          }
        ]
      },
      {
        "scene_index": 8,
        "scene_heading": "S#8. 번화가·대형 마트 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "해 질 무렵, 화려한 네온사인과 길거리 포장마차가 늘어선 번화가 인파 사이로 한쪽 자전거 페달을 힘껏 밟고 있는 수리영, 머리카락과 옷자락이 뒤로 흩날리며 앞으로 나아가는 찰나.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "해 질 무렵, 화려한 네온사인과 길거리 포장마차가 늘어선 번화가 인파 사이로 자전거에 올라탄 채 멈춘 수리영의 모습.",
            "validator_reason": "원문의 '자전거를 모는' 이동 동작이 '멈춘'으로 변환되어 추진력을 상실했으므로 motion direction을 보존한 mid-action 찰나로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "마트 안 진열대 앞에서 앞치마를 두른 한국인 젊은 여성 직원과 마주 선 채 눈을 크게 뜬 수리영의 정지 순간.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "여성 직원"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "큰 종이 박스를 양손으로 든 채 진열대 위에 올려놓으려는 자세로 수리영을 향해 고개를 돌린 남자직원의 상체 찰나.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "남자직원"
            ],
            "original_description": "큰 종이 박스를 양손으로 든 채 수리영을 마주 보고 멈춰 선 남자직원의 상체 구도.",
            "validator_reason": "원문의 '진열하면서'라는 행동이 '멈춰 선'으로 단순화되어 물건을 진열하려는 mid-action 자세로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "어스름이 내린 마트 밖 길거리를 걷는 도중, 한쪽 발이 공중에 떠 있는 자세로 휴대전화 화면을 노려보는 수리영의 굳은 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "어스름이 내린 마트 밖 길거리에서 휴대전화 화면을 노려본 채 멈춘 수리영의 굳은 얼굴 클로즈업.",
            "validator_reason": "원문의 '나오면서'라는 이동 방향성을 잃고 '멈춘'으로 묘사되어 걷고 있는 mid-stride 자세로 수정함.",
            "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 freeze 규칙을 적용함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 10,
        "scene_heading": "S#10. 옥탑방 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 밤, 옥상 평상 위에 널려 있던 말린 약초 잎사귀들이 바람에 날려 허공에 떠 있는 찰나.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "바닥에 떨어진 마른 잎이 낡은 검은 구두코에 닿은 채 멈춘 정체불명의 한국인 남성의 발 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "정체불명의 한국인 남성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "현관 철문 문틈에 꽂힌 전단지를 검지손가락으로 꾹 밀어 넣은 채 멈춘 한국인 남성의 거친 손 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "한국인 남성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "잠금장치가 풀려 아주 미세하게 열린 철문 틈 사이로 어두운 실내가 엿보이는 정지 순간.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "창문에 비친 그림자, 한 남성이 바닥에 쓰러진 여성의 어깨를 강하게 물어뜯는 역동적인 동작 중간에 포착된 검은 실루엣.",
            "based_on_beat": 1,
            "characters": [
              "남성",
              "여성"
            ],
            "original_description": "창문에 비친 그림자, 한 남성이 바닥에 쓰러진 여성의 어깨에 얼굴을 파묻은 채 멈춘 검은 실루엣.",
            "validator_reason": "원문의 폭력적 동작(물어뜯는)의 능동성을 살리기 위해 단순 정적인 접촉 상태가 아닌 역동적인 mid-action 순간으로 재작성함.",
            "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 자세로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "빌라 마당 후미진 구석에 자전거 핸들을 붙잡고 기대어 세운 채 멈춘 수리영의 손.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "옥탑방으로 이어지는 가파른 계단 중간에서 코를 움켜쥔 채 멈춰 선 수리영의 일그러진 표정.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "옥상 위, 안이 들여다보일 정도로 반쯤 열려 있는 현관 철문을 마주하고 선 수리영의 멈춘 뒷모습.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 12,
        "scene_heading": "S#12. 옥탑방 안 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "희미한 스탠드 불빛이 켜진 거실 입구에 서서 굳은 표정으로 한 곳에 시선을 고정한 수리영의 정면 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "희미한 스탠드 불빛이 켜진 거실 입구에 서서 굳은 표정으로 주변을 살피는 수리영의 정면 구도.",
            "validator_reason": "'살피는'이라는 연속 동작을 시선을 고정한 정지 상태로 수정함.",
            "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": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "방바닥 여기저기에 흩뿌려진 핏자국과 흥건한 혈흔.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "커튼 쪽으로 이어져 있는 바닥의 피 묻은 발자국들.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "숨을 참은 채 커튼 자락을 꽉 쥔 수리영의 손 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "젖혀진 커튼 뒤, 앉은 채 고개를 떨구고 미동도 없는 한국인 중년 여성의 모습.",
            "based_on_beat": 1,
            "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": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 14,
            "description": "휴대전화 화면의 단축번호 위에 엄지손가락을 댄 채 굳어버린 수리영의 손 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "덜덜 떨리는 엄지손가락으로 휴대전화 화면의 단축번호를 누른 채 멈춘 수리영의 손 클로즈업.",
            "validator_reason": "'덜덜 떨리는'이라는 반복 동작을 멈춘 정지 상태로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 15,
            "description": "휴대전화를 귀에 댄 채 절박한 표정으로 허공을 응시하는 수리영의 측면 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 16,
            "description": "죽은 한국인 중년 여성의 손안에 구겨진 채 쥐어져 있는 낡은 사진 한 장.",
            "based_on_beat": 3,
            "characters": [
              "한국인 중년 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 17,
            "description": "한국인 중년 여성의 손목 문신 위로 선명하게 빛나는 붉은색 원형 표식 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "한국인 중년 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 18,
            "description": "땀에 젖은 얼굴로 입을 반쯤 벌린 채 경악으로 굳어 있는 수리영의 표정.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "땀에 젖은 얼굴로 거친 숨을 내쉬며 경악한 수리영의 표정.",
            "validator_reason": "'거친 숨을 내쉬며'라는 연속 동작을 입을 벌린 정지 자세로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 19,
            "description": "침대 위 벽면에 누군가 붓으로 그린 듯 붉고 기이한 원이 선명하게 나타나 있는 상태.",
            "based_on_beat": 3,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 20,
            "description": "두 눈을 질끈 감고 양손으로 귀를 꽉 막은 채, 비명을 지르듯 입을 크게 벌리고 굳어 있는 수리영의 상체 컷.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "두 눈을 질끈 감고 양손으로 귀를 막은 채 입을 벌려 비명을 지르는 수리영의 상체 컷.",
            "validator_reason": "'비명을 지르는'이라는 발성 동작을 입을 벌린 정지 순간으로 수정함.",
            "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": 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": []
          },
          {
            "shot_index": 6,
            "description": "수리영의 양어깨를 꽉 쥔 채 다급한 표정을 한 혜수의 정면 컷.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "혜수"
            ],
            "original_description": "수리영에게 다가가 양어깨를 꽉 쥔 채 다급한 표정을 한 혜수의 정면 컷.",
            "validator_reason": "'다가가'와 '쥔 채'는 순차 동작이므로, '다가가'를 제거하고 양어깨를 쥐고 있는 결과 상태만 남김.",
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "눈물이 고인 멍한 눈으로 혜수를 올려다보는 수리영의 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "충격으로 두 눈이 커진 혜수의 굳은 표정.",
            "based_on_beat": 2,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "옥탑방을 향해 가파른 계단을 뛰어올라가다 다리가 허공에 떠 있는 혜수와 김형사의 측면 구도.",
            "based_on_beat": 2,
            "characters": [
              "혜수",
              "김형사"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 14,
        "scene_heading": "S#14. 옥탑방 안 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "옥탑방 현관 밖으로 걸어 나오는 도중, 한 발을 막 내디딘 채 허탈한 표정을 짓고 있는 김형사와 혜수의 모습.",
            "based_on_beat": 1,
            "characters": [
              "김형사",
              "혜수"
            ],
            "original_description": "옥탑방 현관 밖으로 걸어 나오며 허탈한 표정을 짓는 김형사와 혜수의 모습.",
            "validator_reason": "이동 동사인 '걸어 나오며'를 한 발을 내딛은 mid-action 자세로 고정하여 한 찰나로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "혜수를 지나쳐 옥탑방 안으로 뛰어 들어가는 도중, 한쪽 다리가 공중에 뜬 채 몸이 앞으로 기울어진 수리영의 뒷모습.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "수리영"
            ],
            "original_description": "혜수를 지나쳐 옥탑방 안으로 뛰어 들어가는 수리영의 뒷모습.",
            "validator_reason": "이동 동작인 '뛰어 들어가는'을 공중에 다리가 뜬 mid-stride 순간으로 포착하여 추진력을 보존함.",
            "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": 3,
            "characters": [
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "김형사를 향해 날카로운 눈빛을 쏘아보는 혜수의 얼굴 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "수리영의 어깨를 부드럽게 감싸 쥔 혜수의 손.",
            "based_on_beat": 3,
            "characters": [
              "수리영",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "고개를 숙인 채 혼란스럽고 당혹스러운 표정을 한 수리영의 상체 구도.",
            "based_on_beat": 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": 2,
            "characters": [
              "수리영",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "혜수를 올려다보며 단호한 표정을 지은 수리영의 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "벤치에서 자리를 박차고 일어나 몸이 앞을 향해 기울어진 수리영의 정지 순간.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "어두운 해안가 도로를 따라 한쪽 발이 공중에 뜬 채 앞으로 뻗어나가는 달리기 자세의 수리영 뒷모습.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "어두운 해안가 도로를 따라 힘껏 달려가는 수리영의 뒷모습.",
            "validator_reason": "이동 동작(달려가는)의 방향성과 추진력을 시각적으로 보존하기 위해 달리는 도중의 한 찰나(mid-stride)로 구체화했습니다.",
            "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": []
          }
        ]
      },
      {
        "scene_index": 16,
        "scene_heading": "S#16. 경찰서 사무실 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "밝은 경찰서 사무실 안으로 들어서며 한 발을 내디딘 mid-stride 자세로 굳은 표정을 지은 채 휴대전화를 귀에 대고 있는 혜수의 정면 구도.",
            "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": 2,
            "characters": [
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "미간을 찌푸린 채 바닥을 내려다보며 불안한 기색이 역력한 혜수의 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 17,
        "scene_heading": "S#17. 옥탑방 / 동틀무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "어스름한 새벽빛 아래, 창문으로 홀로 불빛이 새어나오는 낡은 옥탑방 외관의 정지 순간.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "옥탑방 담벼락 위에 앉아 노란 눈동자로 불 켜진 방을 주시하는 검은 고양이.",
            "based_on_beat": 1,
            "characters": [
              "검은 고양이"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "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": [
              "수리영"
            ],
            "original_description": "거실 한가운데 서서 초조한 표정으로 텅 빈 집안을 둘러보는 수리영의 전신.",
            "validator_reason": "'둘러보는'이라는 연속 동작을 고개를 돌려 주시하는 정지 자세(mid-action)로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "굳게 닫힌 자신의 방문 손잡이를 노려보고 선 수리영의 뒷모습.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "조심스럽게 문고리를 반쯤 돌린 상태에서 멈춘 수리영의 손 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "조심스럽게 문고리를 돌리는 수리영의 손 클로즈업.",
            "validator_reason": "'돌리는'이라는 동작의 과정을 반쯤 돌린 고정 상태(mid-action)로 수정함.",
            "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": "휴대전화 벨소리에 어깨를 잔뜩 움츠린 채 화들짝 놀라 굳어 있는 수리영.",
            "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": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 12,
            "description": "거울 속에 비친 욕실 타일 벽면에 선명하게 그려진 기이한 붉은 원형 표식.",
            "based_on_beat": 3,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 13,
            "description": "어깨 너머로 고개를 홱 돌린 채 실제 욕실 벽면을 쳐다보는 수리영의 측면.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "거울에서 고개를 홱 돌려 실제 욕실 벽면을 쳐다보는 수리영의 측면.",
            "validator_reason": "'돌려'라는 시간 전후 동작을 고개를 꺾어 멈춘 정지 자세로 수정함.",
            "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": []
          },
          {
            "shot_index": 18,
            "description": "자신의 손바닥이 뺨에 강하게 부딪혀 볼살이 밀린 순간, 눈을 부릅뜬 수리영의 정면 컷.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "자신의 뺨을 강하게 내리친 직후, 손이 허공에 멈춘 채 눈을 부릅뜬 수리영의 정면 컷.",
            "validator_reason": "'내리친 직후'라는 시간 경과 대신 뺨을 강하게 친 능동적 접촉 찰나(mid-impact)로 수정함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 19,
        "scene_heading": "S#19. 마트 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "이른 아침 한산한 마트 앞, 자전거 손잡이를 꽉 쥔 채 멈춰 선 수리영의 전신 구도.",
            "based_on_beat": 0,
            "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": []
          },
          {
            "shot_index": 5,
            "description": "마트 밖 벽면 위쪽에 달린 CCTV 카메라를 올려다보며 나란히 선 수리영과 남자직원의 뒷모습.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "남자직원"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "스마트폰을 귀에 바짝 댄 채 심각한 표정으로 허공을 응시하는 수리영의 상체.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 20,
        "scene_heading": "S#20. 마트 총무과 / 실내",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 방 안, 밝게 빛나는 모니터 화면 앞에 앉은 한국인 남자 보안직원과 혜수의 뒷모습.",
            "based_on_beat": 1,
            "characters": [
              "한국인 남자 보안직원",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "모니터 뒤편에 서서 초조한 눈빛으로 화면을 뚫어지게 응시하는 수리영의 정면 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "형체를 알아볼 수 없을 만큼 짙은 어둠에 휩싸인 남성과 한 여성의 실루엣이 떠 있는 흐릿한 CCTV 모니터 화면 표면.",
            "based_on_beat": 1,
            "characters": [
              "남성",
              "여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "미간을 찌푸린 채 실망감에 어깨가 미세하게 굳은 수리영의 상체.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "한국인 남자 보안직원을 향해 고개를 돌린 채 굳은 표정을 지은 혜수의 측면 얼굴.",
            "based_on_beat": 2,
            "characters": [
              "한국인 남자 보안직원",
              "혜수"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 21,
        "scene_heading": "S#21. 경찰서 안 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "밝고 분주한 경찰서 사무실 안, 김형사의 책상 앞에 나란히 선 혜수와 수리영의 정면 구도.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "서류 뭉치를 손에 든 채 짜증 섞인 표정으로 혜수를 올려다보는 김형사의 상체.",
            "based_on_beat": 1,
            "characters": [
              "김형사",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "난감한 표정으로 수리영을 바라보며 빈 의자를 손으로 가리키는 혜수의 정지 순간.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "사무실 문밖을 향해 다급하게 내달리는 도중 한쪽 발이 바닥에서 막 떨어진 채 몸이 크게 기울어진 한국인 남자 형사 무리의 미드 스트라이드 순간.",
            "based_on_beat": 1,
            "characters": [
              "한국인 남자 형사 무리"
            ],
            "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": [],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "사진을 내려다보며 사색이 되어 두 눈을 크게 뜬 수리영의 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "김형사의 책상 위 모니터에 떠오른 해상 지도와 붉은색 GPS 좌표 마커 UI의 정지 화면.",
            "based_on_beat": 3,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "메모지 위에 펜촉을 꾹 누른 채 멈춘 수리영의 손 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "접힌 메모지를 주머니에 밀어 넣은 채 텅 빈 주변을 날카롭게 살피는 수리영의 상체.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 22,
        "scene_heading": "S#22. 경찰서 밖 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "경찰서 앞 도로, 몸을 앞으로 바짝 숙인 채 자전거 페달을 강하게 내리밟는 자세의 수리영의 측면 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "경찰서 앞 도로, 몸을 앞으로 바짝 숙인 채 자전거 페달을 강하게 밟는 자세로 멈춘 수리영의 측면 구도.",
            "validator_reason": "동적 동작의 freeze 시 부자연스러운 '멈춘' 표현을 제거하고 mid-action 자세를 보존함",
            "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": [
              "수리영"
            ],
            "original_description": "출력된 여러 장의 지도를 열린 백팩 안으로 쑤셔 넣은 채 멈춘 수리영의 손.",
            "validator_reason": "불필요하게 정지를 강조하는 '멈춘' 표현을 제거하고, 물건을 넣는 동작의 중간 상태로 자연스럽게 수정",
            "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": "원문의 자전거를 타고 '달리는' 이동 동작이 '멈춘' 상태로 잘못 변환되었으므로, 페달을 밟는 중간 찰나로 수정하여 추진 방향성과 역동성을 보존함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 25,
        "scene_heading": "S#25. 옥탑방 안 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "거실 바닥에 어지럽게 찍혀 있는 흙 묻은 발자국들.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "바닥에 나뒹구는 식탁 의자들과 엉망으로 흩어진 가재도구들의 정지 상태.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "거실 입구에 서서 경악한 표정으로 엉망이 된 집안을 응시하는 수리영의 정면.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "활짝 열린 자신의 방문 앞에서 몸이 굳은 채 멈춰 선 수리영의 뒷모습.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "방 안쪽 벽면에 붉은 도료로 그려진 기이한 원형 표식과 그 정중앙에 꽂혀 있는 피 묻은 낡은 사진.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "벽에서 떼어낸 피 묻은 사진의 모서리를 두 손가락으로 꽉 쥔 수리영의 손 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "지붕에 둥근 원이 설치된 옛날 시골 식당과 두 어린 소녀가 담겨 있는 피 묻은 낡은 사진 표면의 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "두 어린 소녀"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "혼란스러운 눈빛으로 침대 가장자리에 주저앉아 멍하니 허공을 응시하는 수리영의 상체.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "한 손엔 낡은 사진을, 다른 손엔 백팩 끈을 꽉 쥔 채 현관문 밖으로 한쪽 발을 내딛는 중인(mid-stride) 수리영의 전신.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "한 손엔 낡은 사진을, 다른 손엔 백팩 끈을 꽉 쥔 채 현관문 밖으로 발을 내딛다 멈춘 수리영의 전신.",
            "validator_reason": "이동 동작이므로 '멈춘' 대신 추진 방향을 보존한 mid-action 모먼트로 재작성함.",
            "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": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "차가운 눈빛으로 안개 낀 바다를 향해 시선을 고정한 인우의 옆얼굴.",
            "based_on_beat": 2,
            "characters": [
              "인우"
            ],
            "original_description": "차가운 눈빛으로 안개 낀 바다를 힐끗 쳐다보는 인우의 옆얼굴.",
            "validator_reason": "'힐끗 쳐다보는'이라는 시선 이동의 과정을 '시선을 고정한'이라는 정지 상태로 수정하여 한 찰나 원칙을 지킴.",
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "배에 오르기 전, 어두운 바다를 등지고 스마트폰을 입가에 댄 채 멈춘 수리영의 상체 구도.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 27,
        "scene_heading": "S#27. 옥탑방 안 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "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": [
              "수리영"
            ],
            "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": [
              "수리영",
              "인우"
            ],
            "original_description": "수리영이 내민 사진을 보고 두 눈이 커진 채 얼어붙은 인우의 정면 얼굴.",
            "validator_reason": "순차적 동작을 암시하는 '보고 얼어붙은'을 고정된 시선과 표정 상태 묘사로 수정.",
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "인우의 턱 밑으로 사진을 바짝 들이민 채 날카로운 시선을 고정한 수리영의 상체.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "갑판 바닥을 박차고 일어나는 중간 찰나, 몸이 크게 기울어진 인우의 전신 컷.",
            "based_on_beat": 3,
            "characters": [
              "인우"
            ],
            "original_description": "갑판 바닥을 발로 차며 일어나는 자세로 몸이 크게 기울어진 인우의 멈춘 전신 컷.",
            "validator_reason": "정지 상태를 강조하는 '멈춘' 대신 mid-action 찰나의 추진력과 방향성을 보존하는 묘사로 수정.",
            "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": "부자연스러운 '정지 순간' 표현을 제거하고 추진력을 보존한 mid-action 찰나로 수정.",
            "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": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "인우의 어깨 너머로 보이는 조타실 벽면에 빼곡하게 그려져 있는 기이한 붉은 원형 표식들의 정지 상태.",
            "based_on_beat": 3,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "벽면의 붉은 원들을 바라본 채 충격으로 눈동자 초점이 풀린 수리영의 얼굴 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "벽면의 붉은 원들을 발견하고 충격에 눈동자 초점이 풀린 수리영의 얼굴 클로즈업.",
            "validator_reason": "'발견하고'라는 순차 동작 연결어를 제외하고 단일 시각적 고정 상태로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "다리에 힘이 풀려 몸이 비스듬히 기운 수리영과 그를 차갑게 내려다보는 인우의 멈춘 상체 구도.",
            "based_on_beat": 3,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "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": [],
            "original_description": "짙은 안개벽 속으로 선체 앞부분이 파묻힌 채 멈춰 선 어선의 검은 실루엣.",
            "validator_reason": "원문의 이동 동작('들어가는')의 추진력을 보존하기 위해 안개 속으로 진입 중인 중간 찰나(mid-action)로 수정함.",
            "character_ids": []
          }
        ]
      }
    ],
    "total_shots": 179,
    "changed_shots": 44
  },
  "step_id": "shot_validator",
  "run_id": "b4af1dff-2d5b-4609-b72f-800136cd6dc0",
  "resolved_model": "gemini-pro",
  "updated_at": "2026-07-01T15:41:01.605226+00:00",
  "schema_version": 1,
  "config_hash": "99914b932bd37a50",
  "project_config_snapshot": {}
}