{
  "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": "어둑한 숲속, 한쪽 신발이 벗겨진 피투성이 다리로 수풀을 헤치며 뛰어가는 도중 한 발이 공중에 떠 있는 30대 한국인 남성의 다리 하단부",
            "based_on_beat": 1,
            "characters": [
              "30대 한국인 남성"
            ],
            "original_description": "어둑한 숲속, 피투성이 다리로 바닥을 디딘 채 멈춘 30대 한국인 남성의 다리 하단부",
            "validator_reason": "원문의 도망치는 이동 동작 방향성을 보존하기 위해 정지 상태 대신 달리는 도중의 mid-action 순간으로 재작성함",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "겁에 질려 눈을 부릅뜬 30대 한국인 남성의 땀투성이 얼굴 클로즈업",
            "based_on_beat": 1,
            "characters": [
              "30대 한국인 남성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "공중에서 도약해 내려온 검은 인영이 바닥에 쓰러진 30대 한국인 남성의 상체를 강하게 덮치며 충돌하는 순간",
            "based_on_beat": 1,
            "characters": [
              "검은 인영",
              "30대 한국인 남성"
            ],
            "original_description": "허공에서 날아온 검은 인영이 바닥에 쓰러진 30대 한국인 남성의 위를 짓누른 찰나",
            "validator_reason": "원문의 덮치는 동작이 가진 능동적 신체 접촉과 충격을 명확히 보여주기 위해 충돌하는 mid-impact 찰나로 재작성함",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 2,
        "scene_heading": "S#2. 도시 뒷골목 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 골목 희미한 가로등 아래, 30대 한국인 남성과 20대 한국인 여성이 서로를 끌어안고 전봇대에 밀착해 있는 상태",
            "based_on_beat": 1,
            "characters": [
              "30대 한국인 남성",
              "20대 한국인 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "30대 한국인 남성이 붉은 눈동자를 번뜩이며 20대 한국인 여성의 목 부위를 향해 입을 크게 벌린 순간",
            "based_on_beat": 1,
            "characters": [
              "30대 한국인 남성",
              "20대 한국인 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "30대 한국인 남성이 20대 한국인 여성의 목을 입으로 강하게 물어뜯은 채 정지한 측면",
            "based_on_beat": 1,
            "characters": [
              "30대 한국인 남성",
              "20대 한국인 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "20대 한국인 여성이 바닥에 축 늘어진 채 쓰러져 있는 정적 구도",
            "based_on_beat": 1,
            "characters": [
              "20대 한국인 여성"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 3,
        "scene_heading": "S#3. 현장 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "훼손된 시신 주변으로 폴리스 라인이 쳐진 숲속, 한국인 경찰들이 일정한 간격으로 서서 현장을 통제하는 넓은 구도",
            "based_on_beat": 1,
            "characters": [
              "한국인 경찰들"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "마스크를 쓴 한국인 감식반 요원들이 들것에 시신을 눕힌 채 손을 멈춘 찰나",
            "based_on_beat": 1,
            "characters": [
              "한국인 감식반 요원들"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "폴리스 라인 안쪽, 혜수가 한 손에 무전기를 쥔 채 무거운 표정으로 정면을 응시하는 상체",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 4,
        "scene_heading": "S#4. 옥탑방 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "인천 구도심의 낡은 빌라 옥상 위 단출한 옥탑방 외부가 내려다보이는 낮의 정적 전경",
            "based_on_beat": 0,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 5,
        "scene_heading": "S#5. 옥탑방 안 / 실내",
        "shots": [
          {
            "shot_index": 1,
            "description": "창문으로 햇살이 들어오는 거실, 40대 한국인 여성이 싱크대 앞에 서서 TV 화면을 뚫어지게 응시하는 어두운 표정",
            "based_on_beat": 1,
            "characters": [
              "40대 한국인 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "열린 방문 앞에 서서 두 팔을 위로 뻗은 채 하품하며 정지해 있는 수리영",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 방문을 열고 나와 두 팔을 위로 뻗은 채 하품하며 멈춘 순간",
            "validator_reason": "방문을 열고 나오는 동작과 하품하는 동작이 섞여 있으므로, 하품하며 기지개를 켜는 하나의 정지 순간으로 재작성함.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "TV를 향해 리모컨을 쥔 손을 곧게 뻗은 채 서 있는 40대 한국인 여성",
            "based_on_beat": 1,
            "characters": [
              "40대 한국인 여성"
            ],
            "original_description": "40대 한국인 여성이 리모컨을 쥔 손을 뻗어 TV를 끈 찰나",
            "validator_reason": "손을 뻗는 동작과 TV를 끄는 동작이 연속되므로, 리모컨을 뻗고 있는 단일 정지 자세로 재작성함.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "식탁에 앉은 수리영이 컵에 담긴 짙은 약초물을 내려다보며 미간을 잔뜩 찌푸린 얼굴",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "40대 한국인 여성이 수리영의 곁에 서서 온화하게 미소 지으며 내려다보는 상체",
            "based_on_beat": 2,
            "characters": [
              "40대 한국인 여성",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영이 40대 한국인 여성의 허리춤에 얼굴을 대고 눈을 감은 평온한 측면",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "40대 한국인 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "현관에서 한쪽 발을 공중에 든 채 중심을 잡고 서 있는 수리영의 전신",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "40대 한국인 여성의 손목 피부 위에 선명하게 드러난 작은 원형 표식 클로즈업",
            "based_on_beat": 3,
            "characters": [
              "40대 한국인 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "수리영이 표식이 있는 손목을 향해 시선을 흘끗 내린 눈동자 클로즈업",
            "based_on_beat": 3,
            "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": "달리는 이동 동작을 '멈춰 있는' 상태로 잘못 묘사하여 추진력이 누락되었으므로, 동적 동사 freeze 규칙에 따라 mid-action 찰나로 수정",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "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": [],
            "original_description": "사납게 날뛰던 로트와일러가 기가 꺾인 채 바닥에 납작하게 엎드려 있는 정지 상태",
            "validator_reason": "시각적으로 묘사 불가능한 과거 상태(사납게 날뛰던)를 제거하고 현재의 정지 상태만 남김",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "50대 한국인 남성이 주사기를 쥔 채 엎드린 로트와일러의 엉덩이 피부에 바늘을 찌른 찰나",
            "based_on_beat": 1,
            "characters": [
              "50대 한국인 남성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영이 입술을 뾰루퉁하게 내민 채 벽에 걸린 시계를 올려다보는 정면 상체",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영이 휴대전화를 귀에 바싹 댄 채 미간을 찌푸리고 있는 옆얼굴",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "수리영이 바닥에 쪼그려 앉아 소형견의 등 털에 가위를 댄 채 멈춰 있는 순간",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 8,
        "scene_heading": "S#8. 번화가·대형 마트 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "붉은 네온사인이 번쩍이는 복잡한 길거리 한복판, 수리영이 자전거 안장에 앉아 한쪽 무릎을 굽혀 페달을 밟고 있는 mid-action 상태로, 옷자락이 뒤로 흩날리는 전신",
            "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": []
          },
          {
            "shot_index": 6,
            "description": "어둑해진 마트 입구 밖, 수리영이 불빛이 켜진 휴대전화 화면을 들여다보며 홀로 서 있는 어두운 실루엣",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 9,
        "scene_heading": "S#9. 해안가 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "칠흑 같은 어둠이 깔린 밤바다 옆 도로, 수리영이 자전거 몸체를 크게 기울인 채 굽은 길을 도는 찰나의 전신",
            "based_on_beat": 0,
            "characters": [
              "수리영"
            ],
            "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": "원문에 묘사된 '물어뜯는' 폭력적이고 능동적인 동작이 단순한 정적 접촉(내리누름)으로 약화되었으므로, 역동적인 공격의 순간을 보존하여 재작성함.",
            "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": [
              "수리영"
            ],
            "original_description": "수리영이 한 손으로 코를 틀어막으며 눈살을 잔뜩 찌푸린 찰나",
            "validator_reason": "동작 진행을 나타내는 '틀어막으며'를 고정된 상태인 '틀어막은 채'로 수정함",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "수리영의 시선 끝에 자리한, 옥탑방 현관 철문이 안으로 반쯤 열린 채 멈춰 있는 고요한 구도",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 12,
        "scene_heading": "S#12. 옥탑방 안 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두컴컴한 옥탑방 거실, 수리영이 텅 빈 실내를 향해 입을 살짝 벌린 채 서 있는 정면 상체",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "거실 식탁 위, 엎어진 찻잔 하나와 똑바로 놓인 찻잔 하나가 나란히 놓여 있는 정적 구도",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영의 손이 닫힌 방문 손잡이를 꽉 쥔 채 멈춰 있는 클로즈업",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "방바닥에 흥건하게 고인 붉은 핏자국과 커튼 쪽으로 이어진 피 묻은 발자국들",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영이 두 눈을 크게 뜨고 핏자국이 묻은 바닥을 내려다보며 딱딱하게 굳어 있는 얼굴",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영의 손이 닫힌 커튼 끝자락을 강하게 움켜쥐고 있는 클로즈업",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "커튼을 옆으로 확 젖힌 자세로 굳어 버린 수리영의 전신",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "커튼 뒤, 바닥에 주저앉은 채 고개를 푹 숙이고 축 늘어져 있는 50대 한국인 여성의 시신",
            "based_on_beat": 2,
            "characters": [
              "50대 한국인 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "50대 한국인 여성의 어깨와 쇄골 부위에 짐승에게 물어뜯긴 듯 살점이 떨어져 나간 끔찍한 상처 클로즈업",
            "based_on_beat": 2,
            "characters": [
              "50대 한국인 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "상체를 뒤로 크게 젖히고 한쪽 발을 뒤로 내디딘 채 허공에 떠 있는 뒷걸음질 중간 찰나의 수리영 전신",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 상체를 뒤로 젖히며 뒷걸음질 치다 멈춘 찰나의 전신",
            "validator_reason": "'뒷걸음질 치다 멈춘'이라는 시간 진행 및 정지 단서를 제거하고 motion direction을 보존한 mid-action 자세로 재작성했습니다.",
            "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": "50대 한국인 여성의 피 묻은 굳은 손에 구겨진 낡은 사진 한 장이 쥐어져 있는 클로즈업",
            "based_on_beat": 4,
            "characters": [
              "50대 한국인 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 14,
            "description": "수리영의 손이 시신의 손에 쥐어진 사진을 향해 뻗다가 공중에 멈춘 찰나",
            "based_on_beat": 4,
            "characters": [
              "수리영",
              "시신"
            ],
            "character_ids": []
          },
          {
            "shot_index": 15,
            "description": "50대 한국인 여성의 손목 피부 위로 붉게 달아오른 원형 문신이 선명하게 빛나는 클로즈업",
            "based_on_beat": 4,
            "characters": [
              "50대 한국인 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 16,
            "description": "수리영이 극도의 공포에 질려 동공이 확장된 채 멈춘 눈동자 클로즈업",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 17,
            "description": "침대 위 벽면에 피로 붓칠한 듯 두꺼운 붉은색 원형 표식이 선명하게 새겨진 구도",
            "based_on_beat": 4,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 18,
            "description": "수리영이 양손으로 머리를 감싸 쥐고 입을 크게 벌린 채 비명을 지르는 얼굴",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 13,
        "scene_heading": "S#13. 옥탑방 외곽 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "수리영이 가파르고 어두운 옥외 계단을 다급하게 뛰어내려오다 한쪽 발을 공중에 든 찰나",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "희미한 가로등 아래, 경찰차 문을 연 채 한쪽 발을 땅에 딛고 서 있는 혜수의 전신",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "original_description": "희미한 가로등 아래, 경찰차 문을 열고 한쪽 발을 땅에 딛고 선 혜수의 전신",
            "validator_reason": "'문을 열고'가 시간적 선행 동작으로 해석될 수 있어, '문을 연 채'라는 결과 상태이자 동시 정지 자세로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영이 계단 아래에 멈춰 서서 초점을 잃은 멍한 눈으로 앞을 바라보는 정면 상체",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "수리영을 향해 양팔을 뻗은 채 달려가는 도중, 한쪽 발이 허공에 떠 있는 혜수의 역동적인 전신",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "수리영"
            ],
            "original_description": "혜수가 수리영을 향해 양팔을 뻗은 채 달려오는 역동적인 전신",
            "validator_reason": "이동 동작인 '달려오는'을 추진력이 보존된 mid-action freeze(한쪽 발이 떠 있는 순간)로 구체화함.",
            "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": "'뛰어오르는'이라는 연속 동작을 모션 방향이 유지된 mid-action 순간으로 포착해 단일 찰나로 수정함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 14,
        "scene_heading": "S#14. 옥탑방 안 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "혜수와 김형사가 거실 한가운데 서서 텅 빈 집안의 한 곳을 향해 시선을 고정한 채 멈춰 선 정적 구도",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "김형사"
            ],
            "original_description": "혜수와 김형사가 거실 한가운데 서서 텅 빈 집안을 두리번거리며 멈춰 선 정적 구도",
            "validator_reason": "두리번거리는 연속 동작을 한 방향에 시선을 고정한 정지 상태로 수정",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "김형사가 허탈한 표정으로 미간을 찌푸린 채 어깨를 늘어뜨린 상체",
            "based_on_beat": 1,
            "characters": [
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영이 열린 방문 안으로 상체를 불쑥 들이민 채 멈춰 선 뒷모습",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 열린 방문 안으로 상체를 불쑥 들이밀며 멈춰 선 뒷모습",
            "validator_reason": "들이밀며 멈춰 섰다는 모순된 표현을 들이민 채 멈춰 선 고정 상태로 수정",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "핏자국 하나 없이 깨끗하게 정돈된 침대와 바닥이 보이는 쾌적하고 고요한 방안 전경",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영이 깨끗한 방 한가운데 서서 파리하게 질린 얼굴로 얼어붙어 있는 전신",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영이 아무것도 없는 빈 식탁 앞을 손가락으로 가리킨 채 눈을 동그랗게 뜬 측면",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "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": [
              "혜수",
              "김형사"
            ],
            "original_description": "혜수가 고개를 돌려 김형사를 향해 날카롭게 눈을 치켜뜬 화난 측면 얼굴",
            "validator_reason": "고개를 돌려 눈을 치켜뜬다는 시간 순차적 표현을 고개를 돌린 고정 자세로 수정",
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "혜수가 수리영의 어깨 위에 다정하게 손을 얹은 채 따뜻한 눈빛으로 바라보는 구도",
            "based_on_beat": 2,
            "characters": [
              "혜수",
              "수리영"
            ],
            "original_description": "혜수가 수리영의 어깨 위에 다정하게 손을 얹고 따뜻한 눈빛으로 바라보는 구도",
            "validator_reason": "손을 얹고 바라보는 순차적 연결을 손을 얹은 채 바라보는 정적 자세로 수정",
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "수리영이 바닥을 향해 고개를 푹 숙인 채 침울해 있는 상체",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "수리영의 방바닥 한쪽에 백팩과 낡은 인형이 원래와 미세하게 다른 위치에 덩그러니 놓여 있는 정적 구도",
            "based_on_beat": 3,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 15,
        "scene_heading": "S#15. 해안가. 버스정류장 부근 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 밤바다가 보이는 버스정류장 벤치에 수리영이 멍한 표정으로 가만히 앉아 있는 측면",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "혜수가 수리영의 얼굴 앞으로 캔 음료를 쥔 손을 불쑥 내민 채 멈춰 있는 상체",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영이 고개를 든 채 혜수를 바라보며 입술을 굳게 다문 얼굴",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "혜수"
            ],
            "original_description": "수리영이 고개를 들어 혜수를 바라보며 입술을 굳게 다문 얼굴",
            "validator_reason": "'고개를 들어'는 시간 흐름을 내포할 수 있어 '고개를 든 채'라는 고정 상태로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "수리영이 벤치에서 허리를 꼿꼿이 세우고 벌떡 일어선 찰나의 굳은 전신",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영이 해안가 도로를 따라 어둠 속으로 전력 질주하는 mid-stride 순간, 한 발이 공중에 떠 있고 머리카락과 옷자락이 뒤로 휘날리는 뒷모습",
            "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": "먼 거리에서 제자리에 서 있는 혜수와, 어둠 속으로 뛰어가는 mid-stride 자세의 수리영 실루엣이 작게 잡히는 으스스한 훔쳐보기 구도",
            "based_on_beat": 2,
            "characters": [
              "혜수",
              "수리영"
            ],
            "original_description": "먼 거리에서 혜수와 멀리 뛰어가는 수리영의 실루엣이 작게 잡히는 으스스한 훔쳐보기 구도",
            "validator_reason": "'뛰어가는' 이동 동작을 한 찰나에 고정하기 위해 mid-stride 자세를 명시하여 수정함.",
            "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-stride 자세로 명확히 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "텅 빈 사무실 안, 김형사가 책상 앞에 앉아 고개를 들어 입구 쪽을 바라보는 상체",
            "based_on_beat": 1,
            "characters": [
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "혜수가 김형사의 얼굴 코앞까지 휴대전화 화면을 바짝 들이민 채 날카롭게 쳐다보는 측면",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "김형사가 의자 등받이에 몸을 깊숙이 기댄 채 불만스러운 표정으로 목 뒤를 긁적이는 찰나",
            "based_on_beat": 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": "'두리번거리는'이라는 연속 동작을 고개를 돌린 단일 찰나로 수정함.",
            "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": [
              "수리영"
            ],
            "original_description": "수리영이 어깨를 축 늘어뜨린 채 깊은 안도의 한숨을 내쉬며 눈을 감은 상체",
            "validator_reason": "'한숨을 내쉬며'라는 시간 진행형 표현을 입을 벌린 정지 상태로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "수리영이 어깨를 움츠리며 소스라치게 놀라 굳어 버린 찰나의 정면",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "수리영이 휴대전화를 귀에 강하게 밀착한 채 다급한 표정으로 입을 벌린 얼굴",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "수리영이 미간을 찌푸린 채 휴대전화를 쥔 손에 잔뜩 힘을 주고 있는 클로즈업",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "수리영이 인형이 매달린 백팩 끈을 한 손으로 쥔 채 문턱을 반쯤 넘어선 상체",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 인형이 매달린 백팩 끈을 한 손으로 쥔 채 방문을 나서는 상체",
            "validator_reason": "'방문을 나서는'이라는 이동 동작의 중간 순간(mid-action)을 포착한 자세로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 12,
            "description": "욕실 안, 수리영이 세면대 위에서 양손으로 물을 퍼 올려 얼굴을 감싼 찰나",
            "based_on_beat": 5,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 13,
            "description": "물방울이 턱 끝에 맺혀 떨어지기 직전인 수리영의 젖은 얼굴이 욕실 거울에 비친 정면 클로즈업",
            "based_on_beat": 5,
            "characters": [
              "수리영"
            ],
            "original_description": "물기가 뚝뚝 떨어지는 수리영의 젖은 얼굴이 욕실 거울에 비친 정면 클로즈업",
            "validator_reason": "'뚝뚝 떨어지는'이라는 연속적인 움직임을 물방울이 맺힌 정지 순간으로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 14,
            "description": "거울 속 수리영의 어깨너머 타일 벽면에 붉은색 원형 표식이 선명하게 떠오른 비현실적 구도",
            "based_on_beat": 5,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 15,
            "description": "수리영이 놀란 표정으로 고개를 뒤로 확 꺾은 채 화장실 벽면을 응시하는 측면",
            "based_on_beat": 5,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 고개를 뒤로 확 꺾어 실제 화장실 벽면을 쳐다보는 놀란 측면",
            "validator_reason": "'꺾어 쳐다보는'이라는 순차적 동작을 고개를 꺾은 정지 상태로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 16,
            "description": "아무런 흔적 없이 깨끗하고 텅 빈 하얀색 욕실 타일 벽면",
            "based_on_beat": 5,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 17,
            "description": "거실 식탁 앞, 수리영이 물이 담긴 컵을 입가에 댄 채 멈춰 있는 상체",
            "based_on_beat": 6,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 18,
            "description": "수리영이 눈을 동그랗게 뜬 채 식탁 위의 액자 사진을 뚫어지게 내려다보는 시선",
            "based_on_beat": 6,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 19,
            "description": "사진 속 50대 한국인 여성의 환하게 웃는 얼굴이 기괴하게 흘러내린 채 뭉개져 있는 클로즈업",
            "based_on_beat": 6,
            "characters": [
              "50대 한국인 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 20,
            "description": "수리영이 공포에 질려 입을 크게 벌리고 눈을 질끈 감고 있는 찰나의 정면 얼굴",
            "based_on_beat": 6,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 공포에 질려 입을 크게 벌리고 눈을 질끈 감은 채 비명을 지르는 정면 얼굴",
            "validator_reason": "'비명을 지르는'이라는 청각적/연속적 행동을 입을 벌린 시각적 정지 상태로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 21,
            "description": "아무런 이상 없이 환하게 웃고 있는 50대 한국인 여성의 정상적인 사진 클로즈업",
            "based_on_beat": 6,
            "characters": [
              "50대 한국인 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 22,
            "description": "수리영의 손바닥이 자신의 뺨을 강하게 내리쳐 볼의 살이 순간적으로 밀려 들어간 찰나의 구도",
            "based_on_beat": 6,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영의 손바닥이 자신의 뺨을 강하게 내리친 직후, 손이 볼에 찰싹 닿아 있는 멈춘 구도",
            "validator_reason": "수동적인 '닿아 있는' 상태를 충격이 가해지는 능동적 접촉의 중간 순간(mid-impact)으로 보존함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 19,
        "scene_heading": "S#19. 마트 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "이른 아침의 밝고 한산한 마트 실내, 수리영이 자전거 핸들을 양손으로 쥔 채 우뚝 서 있는 전신",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "수리영이 남자 직원 앞에 바짝 마주 선 채 눈을 크게 뜨고 응시하는 상체",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "남자 직원"
            ],
            "original_description": "수리영이 남자 직원 앞에 바짝 다가서서 눈을 크게 뜬 채 응시하는 상체",
            "validator_reason": "'다가서서'라는 동작 연결어를 '마주 선 채'라는 정지 상태로 수정하여 단일 찰나로 고정함.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "남자 직원이 수리영을 향해 고개를 돌린 채 입을 살짝 벌린 측면",
            "based_on_beat": 1,
            "characters": [
              "남자 직원",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "마트 건물 밖, 수리영이 처마 밑에 매달린 CCTV 카메라를 올려다보는 전신",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영이 휴대전화를 귀에 바싹 댄 채 굳은 표정으로 서 있는 얼굴 클로즈업",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 20,
        "scene_heading": "S#20. 마트 총무과 / 실내",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 보안실 안, 수리영이 등받이 의자 뒤에 서서 모니터 화면을 뚫어지게 응시하는 상체",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "한국인 남성 보안직원이 모니터 화면을 향해 손가락을 뻗은 채 고개를 갸우뚱 기울인 찰나",
            "based_on_beat": 1,
            "characters": [
              "한국인 남성 보안직원"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "화면 속 인물의 형체를 알아볼 수 없을 만큼 짙고 어두운 CCTV 모니터 화면 클로즈업",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "수리영이 초조한 듯 미간을 잔뜩 찌푸린 채 입술을 굳게 다문 얼굴 클로즈업",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "혜수가 모니터 앞의 한국인 남성 보안직원을 향해 단호한 눈빛으로 내려다보는 측면",
            "based_on_beat": 2,
            "characters": [
              "혜수",
              "한국인 남성 보안직원"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "한국인 남성 보안직원이 혜수를 향해 고개를 살짝 아래로 숙인 자세로 시선을 맞추고 있는 상체",
            "based_on_beat": 2,
            "characters": [
              "한국인 남성 보안직원",
              "혜수"
            ],
            "original_description": "한국인 남성 보안직원이 혜수를 향해 고개를 끄덕인 채 멈춘 상체",
            "validator_reason": "'끄덕인 채'라는 표현은 연속 동작을 암시할 수 있어, 턱을 내린 정지 자세로 수정했습니다.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 21,
        "scene_heading": "S#21. 경찰서 안 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "밝은 경찰서 사무실 안, 혜수와 수리영이 나란히 서서 정면을 바라보는 전신",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "책상 앞에 선 김형사가 미간을 찌푸린 채 종이 서류를 허공으로 내밀고 있는 상체",
            "based_on_beat": 1,
            "characters": [
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "혜수가 김형사를 향해 고개를 살짝 숙인 채 멈춰 있는 측면",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "한국인 중년 남성이 자리에서 벌떡 일어선 채 입을 크게 벌리고 굳어 있는 찰나",
            "based_on_beat": 1,
            "characters": [
              "한국인 중년 남성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "여러 명의 한국인 형사들이 출입문을 향해 달려 나가는 도중, 공중에 발이 떠 있고 옷자락이 뒤로 펄럭이는 역동적인 찰나",
            "based_on_beat": 1,
            "characters": [
              "한국인 형사들"
            ],
            "original_description": "여러 명의 한국인 형사들이 출입문을 향해 한꺼번에 몸을 돌린 역동적인 정지 순간",
            "validator_reason": "몰려 나간다는 이동 동작의 방향성과 추진력을 보존하기 위해 mid-action freeze 규칙을 적용함.",
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "텅 빈 사무실 한가운데, 수리영이 책상 앞 의자에 홀로 앉아 있는 고요한 구도",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "책상 위, 훼손된 시신의 끔찍한 상처가 적나라하게 찍힌 현장 사진들 클로즈업",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "수리영이 책상 위 사진을 내려다보며 두 눈을 크게 뜨고 충격에 얼어붙은 얼굴",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "김형사의 빈 책상 위, 컴퓨터 모니터 화면이 밝게 켜져 있는 정지 구도",
            "based_on_beat": 3,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "수리영의 눈동자가 주위를 살피듯 한쪽으로 날카롭게 돌아가 멈춘 클로즈업",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "수리영의 손가락이 마우스 버튼 위에 살짝 닿은 채 멈춘 클로즈업",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "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": []
          },
          {
            "shot_index": 15,
            "description": "수리영이 반으로 접힌 종이 쪽지를 주머니 안으로 반쯤 밀어 넣은 찰나",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 16,
            "description": "수리영이 경찰서 사무실 문을 등지고 서서 밖을 향해 한쪽 발을 내디딘 전신",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 22,
        "scene_heading": "S#22. 경찰서 밖 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "밝은 낮 경찰서 건물 앞, 수리영이 자전거 안장에 앉은 채 한쪽 발로 땅을 짚고 있는 멈춘 전신",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "수리영이 자전거 페달을 강하게 밟은 자세로 도로를 향해 몸을 크게 기울인 역동적인 찰나",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 23,
        "scene_heading": "S#23. 어느 PC방 / 실내",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 PC방 실내, 수리영이 푸른 모니터 불빛을 얼굴에 가득 받은 채 의자에 앉아 있는 정면 상체",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "수리영의 손이 반으로 접힌 지도 인쇄물들을 백팩의 열린 틈 사이로 꽉 밀어 넣은 채 멈춘 클로즈업",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 24,
        "scene_heading": "S#24. 해안가 / 소나기",
        "shots": [
          {
            "shot_index": 1,
            "description": "먹구름이 잔뜩 낀 어두운 해안가 도로, 번개 불빛이 하얗게 번쩍인 찰나의 텅 빈 풍경",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "굵은 빗줄기가 쏟아지는 도로 위, 수리영이 흠뻑 젖은 채 자전거 페달을 강하게 내리밟고 젖은 머리카락이 뒤로 휘날리는 역동적인 측면 자세",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "굵은 빗줄기가 쏟아지는 도로 위, 수리영이 흠뻑 젖은 채 자전거 페달을 강하게 밟은 자세로 굳어진 역동적인 측면",
            "validator_reason": "실제 멈춘 상황이 아니므로 '굳어진'이라는 정지 강조 표현을 삭제하고, 머리카락이 뒤로 휘날리는 묘사를 추가해 추진 방향성을 보존한 mid-action 찰나로 수정",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 25,
        "scene_heading": "S#25. 옥탑방 안 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "어둑해진 옥탑방 거실 바닥에 흙 묻은 낯선 발자국들이 어지럽게 찍혀 있는 정지 구도",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "거실 창문이 활짝 열려 있고 식탁 의자들이 바닥에 나뒹굴고 있는 난장판이 된 실내 풍경",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영이 현관문 앞에 서서 어깨를 굳게 세운 채 멍한 표정으로 얼어붙어 있는 상체",
            "based_on_beat": 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": [
              "두 명의 어린 한국인 여자아이"
            ],
            "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": [
              "수리영"
            ],
            "original_description": "수리영이 옥탑방 현관문을 등지고 계단 쪽으로 시선을 돌린 어두운 실루엣",
            "validator_reason": "원 장면의 밖으로 나가는 이동 동작을 정지 자세로만 처리해 이동 방향성이 사라져, 계단 쪽으로 향하는 mid-step 순간으로 교정했습니다.",
            "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": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "갯바위 표면 위에 놓인 휴대전화 화면 위로 혜수의 이름이 밝게 떠 있는 클로즈업",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "짙은 안개 속에서 낡은 고깃배 한 척의 뱃머리가 어렴풋이 모습을 드러낸 고요한 찰나",
            "based_on_beat": 2,
            "characters": [],
            "original_description": "짙은 안개 속에서 낡은 고깃배 한 척의 뱃머리가 서서히 모습을 드러낸 고요한 찰나",
            "validator_reason": "'서서히 모습을 드러낸'이라는 시간 진행 표현을 제거하고 정지된 한 순간의 상태로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "배 위에서 인우가 두꺼운 밧줄을 양손으로 움켜쥔 채 우뚝 멈춰 선 상체",
            "based_on_beat": 2,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영이 배 가까이에 선 채 굳은 표정으로 인우를 올려다보는 측면",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "인우"
            ],
            "original_description": "수리영이 배 가까이 다가가 서서 굳은 표정으로 인우를 올려다보는 측면",
            "validator_reason": "'다가가 서서'라는 순차적 동작을 '선 채'라는 하나의 정지 자세로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "인우가 미간을 찌푸린 채 수리영을 곁눈질로 힐끗 쳐다보며 멈춘 얼굴 클로즈업",
            "based_on_beat": 2,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "수리영이 휴대전화를 입가에 바싹 댄 채 안개 낀 바다를 향해 서 있는 뒷모습",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 27,
        "scene_heading": "S#27. 옥탑방 안 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두워진 옥탑방 거실, 혜수가 휴대전화를 귀에 강하게 밀착한 채 두 눈을 동그랗게 뜬 측면",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "김형사가 팔짱을 낀 채 무심하고 짜증스러운 표정으로 입꼬리를 살짝 비틀고 서 있는 상체",
            "based_on_beat": 2,
            "characters": [
              "김형사"
            ],
            "original_description": "김형사가 팔짱을 낀 채 혀를 차며 무심하고 짜증스러운 표정으로 서 있는 상체",
            "validator_reason": "'혀를 차며'라는 진행/반복 동작 표현을 고정된 표정 상태로 수정",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "혜수가 극도의 불안감에 휩싸인 채 창밖의 어두운 허공을 뚫어지게 응시하는 굳은 얼굴 클로즈업",
            "based_on_beat": 2,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "황량한 바람에 미세하게 열린 채 멈춘 낡은 현관 철문과 흔들림이 멎은 문고리 클로즈업",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 28,
        "scene_heading": "S#28. 바다 + 갑판 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "해질 무렵 붉게 물든 바다 위, 낡은 소형 어선 한 척이 고요하게 떠 있는 넓은 원경",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "어선 갑판 위에 홀로 앉은 수리영이 해상 지도를 양손으로 펼쳐 든 채 미간을 잔뜩 찌푸린 정면 상체",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영의 한 손이 인우를 향해 펼친 지도를 허공에 내민 채 멈춘 찰나",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "수리영이 낡은 사진 한 장을 손가락 끝으로 집어 든 채 뚫어지게 응시하는 측면",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "인우가 수리영의 손에 들린 사진을 내려다보며 두 눈을 크게 뜨고 당황한 기색이 역력한 얼굴 클로즈업",
            "based_on_beat": 2,
            "characters": [
              "인우",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "인우가 갑판 바닥에서 한쪽 무릎을 세우고 상체를 급격히 일으키는 도중인 역동적인 자세",
            "based_on_beat": 3,
            "characters": [
              "인우"
            ],
            "original_description": "인우가 갑판 바닥에서 한쪽 무릎을 세우고 벌떡 일어선 찰나의 역동적인 자세",
            "validator_reason": "'일어선'은 완료 상태로 오인될 수 있으므로, 추진력이 보존된 일으키는 도중(mid-action)의 찰나로 수정함.",
            "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": 29,
        "scene_heading": "S#29. 조타실 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "비좁은 조타실 안, 수리영이 인우의 앞을 가로막고 서서 두 팔을 벌린 채 굳어 있는 전신",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "인우의 두 손이 낡은 조타 핸들을 꽉 움켜쥔 채 멈춰 있는 상체",
            "based_on_beat": 1,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영이 분노에 찬 얼굴로 입을 크게 벌린 채 눈에 핏발이 선 정면 얼굴 클로즈업",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "수리영의 떨리는 손가락이 낡은 사진 속 한 어린아이의 얼굴을 강하게 가리키고 있는 클로즈업",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "어린아이"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "인우가 입을 반쯤 벌린 채 창백하게 질려 얼어붙은 굳은 얼굴 클로즈업",
            "based_on_beat": 2,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "인우의 어깨너머로, 조타실 낡은 벽면 가득 피로 그린 듯한 수많은 붉은색 원형 표식들이 기괴하게 보이는 구도",
            "based_on_beat": 3,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "수리영이 벽면의 붉은 표식들을 응시하며 극도의 공포에 질려 동공이 확장된 눈동자 클로즈업",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "인우가 고개를 돌린 채 서늘하고 무표정한 얼굴로 수리영을 쏘아보는 측면",
            "based_on_beat": 4,
            "characters": [
              "인우",
              "수리영"
            ],
            "original_description": "인우가 고개를 돌려 서늘하고 무표정한 얼굴로 수리영을 쏘아보는 측면",
            "validator_reason": "고개를 돌리는 동작과 쏘아보는 동작이 시간 순서로 연결된 표현을 단일 정지 상태로 수정함",
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "수리영의 눈꺼풀이 반쯤 감긴 채 몸의 중심을 잃고 바닥을 향해 크게 기울어진 찰나",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영의 눈꺼풀이 반쯤 감기고 몸의 중심을 잃은 채 바닥을 향해 크게 기울어진 찰나",
            "validator_reason": "눈꺼풀이 감기는 동작과 몸이 기울어지는 순차적인 묘사를 하나의 고정된 찰나 상태로 수정함",
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "의식을 잃은 수리영의 머리가 인우의 단단한 어깨 위에 툭 떨어진 채 멈춰 있는 정적 구도",
            "based_on_beat": 4,
            "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": 195,
    "changed_shots": 43
  },
  "step_id": "shot_validator",
  "run_id": "52d5388a-877e-40c8-b9ad-d0af7fb3aa49",
  "resolved_model": "gemini-pro",
  "updated_at": "2026-05-21T10:37:49.593346+00:00",
  "schema_version": 1,
  "config_hash": "99914b932bd37a50",
  "project_config_snapshot": {}
}