{
  "status": "completed",
  "completed_count": 28,
  "applicable_count": 28,
  "failed_count": 0,
  "data": {
    "scenes": [
      {
        "scene_index": 1,
        "scene_heading": "S#1. 숲속 / 해",
        "shots": [
          {
            "shot_index": 1,
            "description": "부상당한 다리에 피를 흘리며 수풀 사이에 웅크려 멈춘 20대 한국인 남자의 다리 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "20대 한국인 남자"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "겁에 질린 표정으로 위를 올려다보는 한국인 남자의 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "한국인 남자"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "한국인 남자를 향해 뛰어오른 검은 인영의 공중 정지 순간.",
            "based_on_beat": 1,
            "characters": [
              "검은 인영",
              "한국인 남자"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "검은 인영이 남자의 상체를 바닥으로 강하게 짓누르며 덮치는 찰나의 정면 구도.",
            "based_on_beat": 1,
            "characters": [
              "검은 인영",
              "남자"
            ],
            "original_description": "검은 인영이 남자의 몸 위에 겹쳐진 채 멈춘 정면 구도.",
            "validator_reason": "모호하게 겹쳐진 정적 표현을 원문의 덮치는 능동성과 힘이 보존된 제압의 찰나로 재작성함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 2,
        "scene_heading": "S#2. 도시 뒷골목 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "희미한 가로등 아래, 전봇대에 기댄 20대 한국인 여자의 목에 20대 한국인 남자의 입이 닿은 측면 구도.",
            "based_on_beat": 1,
            "characters": [
              "20대 한국인 여자",
              "20대 한국인 남자"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "번뜩이는 붉은 눈동자로 여자의 목을 문 채 정지한 한국인 남자의 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "한국인 남자",
              "여자"
            ],
            "original_description": "붉은 눈동자를 번뜩이며 여자의 목을 문 채 멈춘 한국인 남자의 얼굴 클로즈업.",
            "validator_reason": "연속적인 상태 변화를 암시하는 '~하며'를 제거하고 단일 정지 상태로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "바닥에 쓰러져 의식을 잃은 한국인 여자의 꺾인 목과 늘어진 팔의 정지 화면.",
            "based_on_beat": 1,
            "characters": [
              "한국인 여자"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 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": 1,
            "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": [
              "수리영"
            ],
            "original_description": "방문을 반쯤 연 채 기지개를 켜며 멈춘 수리영의 정지 화면.",
            "validator_reason": "'기지개를 켜며'라는 진행형 표현을 양팔을 위로 뻗은 시각적인 정지 자세로 수정.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "놀란 눈으로 TV 리모컨을 쥔 손을 뻗은 민숙의 멈춘 자세.",
            "based_on_beat": 1,
            "characters": [
              "민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "식탁에 앉아 불만스러운 표정으로 턱을 괸 수리영의 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영 앞에 컵을 내려놓은 채 부드러운 미소를 짓는 민숙의 상체 컷.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "현관 앞에 서서 운동화 끈을 묶기 위해 허리를 숙인 수리영의 측면 구도.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "민숙의 옷자락을 쥐고 코를 가까이 댄 채 눈을 지그시 감은 수리영의 옆얼굴.",
            "based_on_beat": 3,
            "characters": [
              "민숙",
              "수리영"
            ],
            "original_description": "민숙의 옷자락을 쥐고 코를 킁킁대는 수리영의 옆얼굴.",
            "validator_reason": "'킁킁대는'이라는 연속 동작을 옷자락에 코를 댄 고정된 정지 상태로 수정.",
            "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": 6,
        "scene_heading": "S#6. 해안가 도로 / D",
        "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": []
          }
        ]
      },
      {
        "scene_index": 7,
        "scene_heading": "S#7. 유기견 보호원 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "철창 안에서 이빨을 드러낸 채 앞발을 들고 서 있는 맹견 로트와일러.",
            "based_on_beat": 1,
            "characters": [
              "맹견 로트와일러"
            ],
            "original_description": "철창 안에서 이빨을 드러낸 채 앞발을 들고 서 있는 맹견 로트와일러의 정지 화면.",
            "validator_reason": "불필요한 메타 표현인 '정지 화면'을 제거하고 자연스러운 고정 자세로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "미간을 좁히고 로트와일러의 눈을 매섭게 쏘아보는 수리영의 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "로트와일러"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "꼬리를 내린 채 구석에 웅크려 앉은 로트와일러.",
            "based_on_beat": 1,
            "characters": [
              "로트와일러"
            ],
            "original_description": "꼬리를 내리고 구석에 웅크린 로트와일러의 얌전해진 정지 상태.",
            "validator_reason": "'정지 상태'라는 억지스러운 표현을 제거하고 시각적인 고정 결과 상태로 다듬었습니다.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "로트와일러의 엉덩이에 주사기 바늘을 꽂고 있는 50대 한국인 수의사의 손 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "50대 한국인 수의사",
              "로트와일러"
            ],
            "original_description": "로트와일러의 엉덩이에 주사기를 꽂은 채 멈춘 50대 한국인 수의사의 손 클로즈업.",
            "validator_reason": "실제 동작이 정지한 상황이 아님에도 억지로 쓰인 '멈춘' 표현을 제거하고 주사기를 꽂는 순간으로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "휴대폰 액정을 바라보는 수리영의 굳은 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "닫힌 철창 너머에 서 있는 50대 한국인 여성 도우미.",
            "based_on_beat": 2,
            "characters": [
              "50대 한국인 여성 도우미"
            ],
            "original_description": "닫힌 철창 너머에 서 있는 50대 한국인 여성 도우미의 정지 화면.",
            "validator_reason": "시각적 상태 묘사에 불필요한 메타 단어인 '정지 화면'을 삭제했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "강아지 몸에 비누 거품을 묻힌 손을 얹고 있는 수리영의 상체 컷.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "강아지"
            ],
            "original_description": "강아지 몸에 비누 거품을 묻힌 채 멈춘 수리영의 상체 컷.",
            "validator_reason": "'멈춘'이라는 단어 대신, 거품을 묻힌 채 손을 얹고 있는 자연스러운 고정 자세로 재작성했습니다.",
            "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": "빈 박스를 든 40대 한국인 여직원 앞에 서서 눈을 동그랗게 뜬 수리영의 표정.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "40대 한국인 여직원"
            ],
            "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": 9,
        "scene_heading": "S#9. 해안가 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어둠이 깔린 해안도로에서 입술을 꽉 깨문 채, 한쪽 발로 자전거 페달을 힘껏 내리밟는 mid-pedal 순간의 수리영.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "어둠이 깔린 해안도로에서 입술을 꽉 깨문 채 자전거 페달을 밟는 자세의 수리영 정지 컷.",
            "validator_reason": "주행 중인 상황에서 금지된 '정지' 표현을 제거하고, 추진력이 보존된 mid-action 순간으로 재작성했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "주행 반대 방향으로 머리카락이 공중에 길게 뻗어나간 채 머물러 있는 수리영의 옆얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "바람에 머리카락이 휘날리는 수리영의 옆얼굴 클로즈업.",
            "validator_reason": "연속 동작을 암시하는 '휘날리는' 대신, 머리카락의 흐름이 허공에 멈춰 있는 시각적 결과 상태로 수정했습니다.",
            "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": 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": []
          }
        ]
      },
      {
        "scene_index": 11,
        "scene_heading": "S#11. 옥탑 방 밖 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 골목길에서 자전거 페달을 밟은 채 몸을 앞으로 숙인 수리영의 측면 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "마당 후미진 곳에 세워진 자전거 손잡이에서 손을 뗀 채 멈춘 수리영의 전신.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "옥탑방 계단을 한 칸 밟은 채 위를 올려다보는 수리영의 뒷모습.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "계단 위에서 코를 찡그린 채 걸음을 멈춘 수리영의 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "반쯤 열린 옥탑방 현관 철문 틈새로 어둠이 깔린 정지 화면.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "희미한 스탠드 불빛과 TV 화면이 켜진 거실 안으로 한쪽 발을 들인 수리영의 정면 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "가스레인지 위에 놓인 끓다 식은 냄비 클로즈업.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "열린 안방 문 너머로 아무도 없는 빈 방을 주시하는 수리영의 뒷모습.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "거실 식탁 위에 놓인 두 개의 찻잔 중 하나가 엎어진 정지 화면.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "방문 손잡이를 쥔 채 문을 반쯤 밀어 연 자세로 멈춘 수리영의 측면 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "방바닥에 흥건하게 고인 붉은 핏자국 클로즈업.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 12,
            "description": "바닥에서 창문 커튼 쪽으로 이어진 붉은 발자국 정지 화면.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 13,
            "description": "한 손으로 창문 커튼을 꽉 쥐어 젖힌 채 멈춘 수리영의 상체 컷.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 14,
            "description": "커튼 뒤에 앉은 채로 고개를 푹 수그린 민숙의 축 늘어진 전신.",
            "based_on_beat": 2,
            "characters": [
              "민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 15,
            "description": "바닥에 주저앉은 채 민숙의 어깨를 향해 두 손을 뻗은 수리영의 멈춘 자세.",
            "based_on_beat": 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": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 19,
            "description": "민숙의 피 묻은 손에 구겨진 낡은 사진 한 장이 쥐어진 클로즈업.",
            "based_on_beat": 4,
            "characters": [
              "민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 20,
            "description": "민숙의 손목에 있는 둥근 표식이 붉은색을 띤 클로즈업.",
            "based_on_beat": 4,
            "characters": [
              "민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 21,
            "description": "침대 위 벽면에 붉은 원형 자국이 선명하게 그려진 정지 화면.",
            "based_on_beat": 4,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 22,
            "description": "벽을 향해 입을 크게 벌린 수리영의 겁에 질린 얼굴 클로즈업.",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 12,
        "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": [
              "혜수"
            ],
            "original_description": "경찰차 문을 연 채 한쪽 발을 바닥에 딛고 선 혜수의 멈춘 자세.",
            "validator_reason": "차에서 내리는 능동적 동작에 '멈춘 자세'라는 표현을 사용하여, 하차하는 mid-action 순간으로 수정함.",
            "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": "원문의 뛰어 올라가는 이동 동작에서 '멈춘' 표현을 제거하고, 추진력을 보존한 mid-action 찰나로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "현관문을 활짝 연 채 집 안을 주시하는 김형사와 혜수의 상체 컷.",
            "based_on_beat": 2,
            "characters": [
              "김형사",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "핏자국 없이 깨끗하게 정돈된 거실 한가운데 선 수리영의 전신.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "핏자국과 시신이 사라진 채 인형과 백팩이 덩그러니 놓인 수리영의 방 내부 전경.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "깨끗한 방 안에서 창백하게 질린 표정으로 입을 꾹 다문 수리영의 얼굴 클로즈업.",
            "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": 4,
            "characters": [
              "수리영",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 14,
            "description": "침대 위에 어색한 위치로 놓인 백팩과 인형 클로즈업.",
            "based_on_beat": 4,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 13,
        "scene_heading": "S#15. 해안가. 버스정류장 부근 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 해안가 버스정류장 벤치에 멍한 눈으로 앉아 있는 수리영의 전신.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "수리영을 향해 음료수 캔을 내민 채 멈춘 혜수의 손 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "벤치에서 몸을 반쯤 일으킨 채 입술을 굳게 다문 수리영의 결연한 표정.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "정류장을 벗어나 어둠 속으로 달려가는 수리영, 한 발이 바닥에서 막 떨어지고 옷깃이 뒤로 휘날리는 역동적인 미드스트라이드 뒷모습.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "정류장을 벗어나 어둠 속으로 뛰어나가는 자세로 멈춘 수리영의 역동적인 뒷모습.",
            "validator_reason": "실제 멈춘 상황이 아니므로 '멈춘' 표현을 제외하고 mid-action의 추진력을 살린 찰나로 재작성",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "멀어지는 수리영을 향해 한 손을 입가에 댄 채 소리치는 혜수의 상체 컷.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "어두운 구조물 뒤에서 혜수의 뒷모습을 지켜보는 누군가의 1인칭 시점 쇼트.",
            "based_on_beat": 2,
            "characters": [
              "혜수",
              "누군가"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 14,
        "scene_heading": "S#16. 경찰서 사무실 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "사무실 문 손잡이를 잡은 채 귀에 휴대폰을 댄 혜수의 굳은 얼굴 정면 구도.",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "사무실 책상에 앉아 모니터 쪽으로 고개를 돌린 채 턱을 괸 김형사의 상체 컷.",
            "based_on_beat": 1,
            "characters": [
              "김형사"
            ],
            "original_description": "사무실 책상에 앉은 채 모니터 쪽으로 고개를 돌려 턱을 괸 김형사의 상체 컷.",
            "validator_reason": "연속 동작으로 해석될 수 있는 '고개를 돌려'를 고정 상태를 나타내는 '고개를 돌린 채'로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "김형사의 얼굴 앞으로 휴대폰 액정을 불쑥 내민 혜수의 측면 구도.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "입술을 삐죽 내민 채 혜수를 올려다보는 김형사의 미간 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "김형사",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "휴대폰을 꽉 쥔 채 허공을 노려보는 혜수의 불안한 표정.",
            "based_on_beat": 2,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 15,
        "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": 16,
        "scene_heading": "S#18. 안방 안 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 침대 모서리에 머리를 기댄 채 두 눈을 감은 수리영의 정지 화면.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "번쩍 뜬 눈으로 텅 빈 방 천장을 향해 시선을 고정한 수리영의 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "굳게 닫힌 방문 손잡이를 꽉 쥔 수리영의 손 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "방안 창문 커튼을 한 손으로 거칠게 움켜쥔 수리영의 상체 컷.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "시신이나 핏자국 없이 말끔하게 정돈된 빈 방의 정면 구도.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "가슴에 손을 얹은 채 눈을 내리깐 수리영의 안도하는 표정.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "귀에 휴대폰을 댄 채 눈을 크게 뜬 수리영의 측면 구도.",
            "based_on_beat": 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": []
          },
          {
            "shot_index": 15,
            "description": "수리영의 손바닥이 자신의 뺨에 강하게 밀착된 순간의 일그러진 얼굴.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 17,
        "scene_heading": "S#19. 마트 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "안개가 옅게 낀 이른 아침, 마트 입구 유리문 앞에 자전거 핸들을 쥔 채 선 수리영의 전신.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "마트 진열대 앞에서 남자 직원의 얼굴에 시선을 고정한 수리영의 측면 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "남자 직원"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "빈 박스를 옆구리에 낀 채 수리영을 향해 고개를 갸웃거린 남자 직원의 상체 컷.",
            "based_on_beat": 1,
            "characters": [
              "남자 직원",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "마트 밖 외벽 모서리에 매달린 낡은 CCTV 렌즈 클로즈업.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "CCTV 렌즈를 향해 턱을 치켜든 수리영의 굳은 얼굴 정면 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "휴대폰을 귀에 바짝 붙인 채 미간을 좁힌 수리영의 정지 화면.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 18,
        "scene_heading": "S#20. 마트 총무과 / 실내",
        "shots": [
          {
            "shot_index": 1,
            "description": "희미한 조명의 보안실 모니터 앞에 나란히 선 40대 한국인 남성 보안직원, 혜수, 수리영의 뒷모습.",
            "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": 2,
            "characters": [
              "보안직원",
              "혜수"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 19,
        "scene_heading": "S#21. 경찰서 안 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "형광등 불빛이 켜진 경찰서 사무실 안으로 한 발을 내딛은 mid-stride 자세의 수리영과 혜수의 전신.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "혜수"
            ],
            "original_description": "형광등 불빛이 켜진 경찰서 사무실 안으로 발을 들이며 멈춰 선 수리영과 혜수의 전신.",
            "validator_reason": "'들이며 멈춰 선'이라는 두 가지 동작의 혼재를 피하고 걷는 중의 한 찰나(mid-stride)로 보존함.",
            "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": [],
            "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": 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": []
          }
        ]
      },
      {
        "scene_index": 20,
        "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": 21,
        "scene_heading": "S#23. 어느 PC방 / 실내",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 PC방 안, 푸른빛이 감도는 모니터 불빛에 비친 수리영의 굳은 얼굴 정면 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "좌표가 찍힌 위성 지도가 인쇄된 종이가 낡은 프린터 배출구에 반쯤 걸린 정지 화면.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "여러 장으로 접힌 종이 지도를 열린 백팩 지퍼 안으로 밀어 넣은 수리영의 손 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 22,
        "scene_heading": "S#24. 해안가 / 소나기",
        "shots": [
          {
            "shot_index": 1,
            "description": "먹구름이 짙게 깔린 어두운 해안가 하늘 위로 거대한 번개 줄기가 번쩍인 정지 순간.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "세차게 쏟아지는 굵은 소나기 방울들이 젖은 아스팔트 바닥에 튕겨 오르며 허공에 멈춘 클로즈업.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "자전거 안장에 앉아 한쪽 무릎을 굽혀 페달을 힘껏 밟아 내리는 중간 찰나, 비바람에 젖은 머리카락이 이동 반대 방향으로 거칠게 휘날리는 수리영의 역동적인 상체.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "비바람에 젖은 머리카락이 얼굴에 들러붙은 채 자전거 페달에 발을 얹은 수리영의 역동적인 상체.",
            "validator_reason": "원문의 달리는 자전거 추진력을 보존하기 위해 페달을 밟는 mid-action 순간과 머리카락의 방향성을 명시하여 재작성함.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "뺨을 타고 내리던 빗방울이 피부에 맺힌 채, 핏발 선 눈으로 정면을 고정하여 응시하는 수리영의 옆얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "얼굴에 빗물이 흐르는 가운데 핏발이 선 눈으로 정면을 향해 시선을 던진 수리영의 옆얼굴 클로즈업.",
            "validator_reason": "'흐르는 가운데'라는 연속 진행 표현을 제거하고, 빗물이 맺힌 결과 상태와 시선이 고정된 정지 찰나로 수정함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 23,
        "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": [
              "수리영"
            ],
            "original_description": "난장판이 된 거실 한가운데 선 채 가쁜 숨으로 입술을 살짝 벌린 수리영의 입 주변 클로즈업.",
            "validator_reason": "'가쁜 숨으로'는 호흡이라는 연속적인 동작을 암시하므로 이를 제거하고 고정된 정지 상태로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "반쯤 열린 방문 너머로 안쪽 벽면에 시선을 고정한 수리영의 굳은 측면 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "어두운 방안 벽면에 붉은 도료로 짙고 선명하게 그려진 거대한 원 클로즈업.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "붉은 원 정중앙에 날카로운 핀으로 꽂힌, 핏자국이 묻은 낡은 사진 한 장 클로즈업.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "벽에 꽂힌 사진의 모서리를 엄지와 검지로 꼬집듯 쥔 수리영의 손.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "사진 표면 안에 인쇄된, 둥근 원 장식이 달린 지붕의 낡은 식당과 그 앞 평상에 앉아 있는 두 소녀의 흑백 이미지 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "두 소녀"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "사진을 쥔 채 침대 매트리스 위에 주저앉아 축 늘어져 있는 수리영의 전신.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "사진을 쥔 채 침대 매트리스 위로 털썩 주저앉은 수리영의 축 늘어진 전신.",
            "validator_reason": "'털썩'이라는 동작 부사를 제거하여 앉아있는 행동의 결과 상태와 정지된 찰나만을 강조했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "구겨진 낡은 사진을 손안에 꽉 움켜쥔 수리영의 핏기 없는 주먹 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "백팩을 멘 채 어두워진 옥탑방 현관문 밖으로 걸어 나가는 도중, 한쪽 발이 공중에 떠 있는 찰나의 자세로 멈춘 수리영의 몽롱한 표정.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "백팩을 멘 채 어두워진 옥탑방 현관문 밖으로 한쪽 발을 내디딘 수리영의 몽롱한 표정.",
            "validator_reason": "이동 동작(내디딘)의 방향성을 보존하기 위해 걸음을 내딛는 중 발이 허공에 떠 있는 mid-action 찰나로 수정했습니다.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 24,
        "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": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "짙은 안개벽을 뚫고 뱃머리를 드러낸 낡은 소형 어선의 정면 구도.",
            "based_on_beat": 3,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "포구 바닥의 기둥에 굵은 닻줄을 단단히 묶은 자세로 멈춘 인우의 상체 컷.",
            "based_on_beat": 4,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "어선 바로 앞에 선 채 인우를 빤히 올려다보는 수리영의 전신.",
            "based_on_beat": 4,
            "characters": [
              "수리영",
              "인우"
            ],
            "original_description": "어선 바로 앞까지 다가와 인우를 빤히 올려다보는 수리영의 전신.",
            "validator_reason": "순차적 연결어인 '다가와'를 단일 정지 자세인 '선 채'로 수정하여 한 찰나로 변경함.",
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "수리영을 등진 채 아무것도 보이지 않는 바다 쪽으로 고개를 돌린 인우의 뒷모습.",
            "based_on_beat": 5,
            "characters": [
              "인우",
              "수리영"
            ],
            "original_description": "수리영을 등진 채 아무것도 보이지 않는 바다 쪽을 둘러보는 인우의 뒷모습.",
            "validator_reason": "연속 동작인 '둘러보는'을 특정 순간의 고정 상태인 '고개를 돌린' 자세로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "휴대폰을 입가에 바짝 댄 채 안개 낀 바다를 응시하는 수리영의 굳은 표정.",
            "based_on_beat": 6,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "어선의 갑판 위로 한쪽 발을 내디딘 수리영의 역동적인 멈춤 구도.",
            "based_on_beat": 6,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 25,
        "scene_heading": "S#27. 옥탑방 안 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "어스름한 옥탑방 거실에서 휴대폰을 귀에 댄 채 김형사 쪽으로 시선을 돌린 혜수의 불안한 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "혀를 차는 순간 입 모양이 살짝 비틀린 채 허공을 응시하는 김형사의 여유로운 표정.",
            "based_on_beat": 2,
            "characters": [
              "김형사"
            ],
            "original_description": "혀를 차며 허공을 향해 시선을 던진 김형사의 여유로운 표정.",
            "validator_reason": "'~하며'라는 연속 동작 연결어를 한 찰나의 표정과 시선 고정 상태로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "어두운 옥탑방의 낡은 철제 현관문이 바람에 의해 반쯤 열린 채 멈춘 정지 화면.",
            "based_on_beat": 3,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 26,
        "scene_heading": "S#28. 바다 + 갑판 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "노을이 내리는 바다 한가운데 외롭게 떠 있는 소형 어선의 부감 쇼트.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "갑판 위에 홀로 앉아 구겨진 종이 지도를 쥔 수리영의 상체 컷.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "지도를 내려다보며 미간을 깊게 찌푸린 인우의 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "텅 빈 수평선을 향해 손가락질을 한 자세로 멈춘 인우의 측면 구도.",
            "based_on_beat": 2,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "인우의 눈앞에 낡고 핏자국이 묻은 흑백 사진을 내민 수리영의 손.",
            "based_on_beat": 3,
            "characters": [
              "인우",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "낡은 흑백 사진을 마주한 채 눈을 크게 뜨고 입술을 굳게 다문 인우의 당황한 얼굴 클로즈업.",
            "based_on_beat": 4,
            "characters": [
              "인우"
            ],
            "original_description": "낡은 사진을 본 순간 눈을 크게 뜨고 입술을 굳게 다문 인우의 당황한 얼굴 클로즈업.",
            "validator_reason": "'본 순간'이라는 시간적 변화를 암시하는 표현을 제거하고, 사진 앞에서의 고정된 표정 상태로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "사진을 향해 몸을 바싹 기울인 수리영의 날카로운 눈빛.",
            "based_on_beat": 5,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "사진 모서리에 작게 적힌 '금월'이라는 글씨 클로즈업.",
            "based_on_beat": 5,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "수리영의 시선을 피해 고개를 돌리는 중간 찰나, 머리카락이 흩날리는 인우의 옆얼굴.",
            "based_on_beat": 5,
            "characters": [
              "수리영",
              "인우"
            ],
            "original_description": "수리영의 시선을 피해 고개를 홱 돌린 인우의 옆얼굴.",
            "validator_reason": "'홱 돌린'이라는 동작의 완료/진행 느낌을 제거하고, 방향성을 보존한 mid-action 찰나의 정지 상태로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "조타실 문을 향해 몸을 던지듯 뛰어가는 중간 찰나, 한 발이 허공에 떠 있고 옷자락이 뒤로 휘날리는 인우의 역동적인 뒷모습.",
            "based_on_beat": 6,
            "characters": [
              "인우"
            ],
            "original_description": "자리에서 벌떡 일어나 조타실 문을 향해 몸을 던진 인우의 역동적인 뒷모습.",
            "validator_reason": "'일어나'와 '몸을 던진'이라는 연속 동작을 제거하고 이동 방향의 추진력을 보존한 mid-action 찰나로 통합했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "조타실 문틀을 한 손으로 꽉 쥔 채 인우의 어깨를 막아선 수리영의 정면 구도.",
            "based_on_beat": 7,
            "characters": [
              "인우",
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 27,
        "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": 3,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "낡은 사진 속 두 소녀 중 한 명을 손가락으로 강하게 짚은 수리영의 손 클로즈업.",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "사진 속 소녀를 멍한 눈으로 응시하는 인우의 측면 구도.",
            "based_on_beat": 5,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "창백하게 질린 낯빛으로 눈을 크게 뜬 채 굳어버린 인우의 얼굴 클로즈업.",
            "based_on_beat": 6,
            "characters": [
              "인우"
            ],
            "original_description": "창백하게 질린 낯빛으로 동공이 크게 흔들리는 인우의 얼굴 클로즈업.",
            "validator_reason": "'동공이 크게 흔들리는'은 연속적인 움직임을 의미하므로, 눈을 크게 뜬 고정 상태로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "인우의 등 뒤, 어두운 조타실 벽면을 빼곡하게 채운 기괴한 붉은 원형 표식들의 정지 화면.",
            "based_on_beat": 7,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "붉은 원형 표식들을 목격하고 경악으로 굳어버린 수리영의 표정.",
            "based_on_beat": 7,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "초점을 잃고 눈이 반쯤 감긴 수리영의 혼미한 얼굴 클로즈업.",
            "based_on_beat": 8,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "의식을 잃고 몸이 기울어져 수리영의 머리가 인우의 어깨에 닿은 채 멈춘 순간.",
            "based_on_beat": 8,
            "characters": [
              "수리영",
              "인우"
            ],
            "original_description": "무너져 내리는 수리영의 머리가 인우의 어깨에 닿은 멈춘 순간.",
            "validator_reason": "'무너져 내리는'은 하강하는 연속 동작이므로, 몸이 기울어져 어깨에 닿은 결과 상태로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 12,
            "description": "어깨에 쓰러진 수리영을 곁눈질로 싸늘하게 내려다보는 인우의 얼굴 클로즈업.",
            "based_on_beat": 8,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 28,
        "scene_heading": "S#30. 바다 / 해질 무렵",
        "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": []
          }
        ]
      }
    ],
    "total_shots": 188,
    "changed_shots": 37
  },
  "step_id": "shot_validator",
  "run_id": "4bee1854-864c-468f-b4d4-4eee58c578b3",
  "resolved_model": "gemini-pro",
  "updated_at": "2026-05-10T07:34:19.043031+00:00",
  "schema_version": 1,
  "config_hash": "99914b932bd37a50",
  "project_config_snapshot": {}
}