{
  "status": "completed",
  "completed_count": 30,
  "applicable_count": 30,
  "failed_count": 0,
  "data": {
    "scenes": [
      {
        "scene_index": 1,
        "scene_heading": "S#1. 숲속 / 해 질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "우거진 수풀 속, 겁에 질린 표정의 한국인 남성이 앞을 향해 무게중심을 둔 채 달리는 도중의 자세, 한쪽 발이 공중에 떠 있고 옷자락이 뒤로 휘날리는 역동적인 구도.",
            "based_on_beat": 1,
            "characters": [
              "한국인 남성"
            ],
            "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": 1,
            "characters": [
              "한국인 남성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "공중에 몸을 던져 한국인 남성을 덮치는 검은 인영, 두 팔을 앞으로 뻗고 옷자락이 뒤로 강하게 휘날리는 도약 도중의 역동적인 자세.",
            "based_on_beat": 1,
            "characters": [
              "검은 인영",
              "한국인 남성"
            ],
            "original_description": "검은 인영이 공중에 뜬 채 한국인 남성을 향해 팔을 뻗은 정지 순간.",
            "validator_reason": "이동 및 덮치는 동작의 추진력을 보존하기 위해 '정지 순간'이라는 단어를 삭제하고 도약하는 mid-action 자세로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "검은 인영이 한국인 남성의 몸 위에 엎드려 누른 상태.",
            "based_on_beat": 1,
            "characters": [
              "검은 인영",
              "한국인 남성"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 2,
        "scene_heading": "S#2. 도시 뒷골목 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "희미한 가로등 불빛 아래 어두운 골목 전봇대 옆, 한국인 남성과 한국인 여성의 몸이 맞닿은 정지 상태.",
            "based_on_beat": 1,
            "characters": [
              "한국인 남성",
              "한국인 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "붉은 눈동자를 번쩍이는 한국인 남성의 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "한국인 남성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "한국인 남성의 이빨이 한국인 여성의 목을 파고들어 강하게 물어뜯는 순간.",
            "based_on_beat": 1,
            "characters": [
              "한국인 남성",
              "한국인 여성"
            ],
            "original_description": "한국인 남성의 입이 한국인 여성의 목에 닿은 채 멈춘 순간.",
            "validator_reason": "원문의 능동적 폭력 행위(살점을 뜯는 이빨)가 모호한 정적 접촉(닿은 채 멈춘)으로 약화되었으므로, 역동성을 보존한 mid-impact 순간으로 재작성함.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "한국인 여성의 몸이 바닥을 향해 꺾인 채 늘어진 상태.",
            "based_on_beat": 1,
            "characters": [
              "한국인 여성"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 3,
        "scene_heading": "S#3. 현장 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "숲속 현장에 폴리스 라인이 쳐져 있고, 한국인 경찰들이 선 정지 구도.",
            "based_on_beat": 1,
            "characters": [
              "한국인 경찰들"
            ],
            "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": 1,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 5,
        "scene_heading": "S#5. 옥탑방 안 / 실내",
        "shots": [
          {
            "shot_index": 1,
            "description": "거실의 작은 창으로 햇살이 가늘게 비친 빈 공간.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "싱크대에 씻다 만 석창포가 놓인 모습.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "냄비 안의 끓는 물 위로 김이 멈춘 듯 피어오른 상태.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "한국인 중년 여성이 어두운 표정으로 TV 화면을 응시하는 정면 구도.",
            "based_on_beat": 1,
            "characters": [
              "한국인 중년 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "열린 방문 앞에 서서 팔을 위로 뻗은 채 멈춘 수리영의 기지개 자세.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 방문을 열고 팔을 위로 뻗은 채 멈춘 기지개 자세.",
            "validator_reason": "'문을 열고'와 '팔을 뻗는' 두 동작이 시간 순서로 연결되어 있어, 문이 열린 상태에서의 단일 기지개 자세로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "한국인 중년 여성의 손가락이 TV 전원 버튼에 닿은 순간.",
            "based_on_beat": 1,
            "characters": [
              "한국인 중년 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "수리영이 식탁 의자에 앉은 정지 상태.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "한국인 중년 여성의 손이 컵에 석창포 달인 물을 붓는 도중 물줄기가 공중에 멈춘 순간.",
            "based_on_beat": 2,
            "characters": [
              "한국인 중년 여성"
            ],
            "original_description": "한국인 중년 여성의 손이 컵에 석창포 달인 물을 붓고 멈춘 순간.",
            "validator_reason": "'붓고 멈춘'이라는 표현이 동작 완료 후의 시간 진행으로 해석될 수 있어, 물을 붓고 있는 중의 정지 찰나(mid-action)로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "수리영이 컵을 입에 댄 채 미간을 찌푸린 표정.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "현관에서 수리영이 한쪽 신발에 발을 집어넣은 채 멈춘 상태.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "한국인 중년 여성이 미소를 띤 채 선 정면.",
            "based_on_beat": 2,
            "characters": [
              "한국인 중년 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 12,
            "description": "한국인 중년 여성의 손목에 새겨진 작은 원 모양의 표식 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "한국인 중년 여성"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 6,
        "scene_heading": "S#6. 해안가 도로 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "해안가 도로 위, 자전거 핸들을 쥐고 한쪽 무릎을 굽혀 페달을 밟아 내리는 중간 동작의 수리영, 상체가 앞으로 기울어지고 머리카락이 진행 반대 방향으로 휘날리는 모습.",
            "based_on_beat": 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": [
              "맹견 로트와일러"
            ],
            "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": "한국인 젊은 여성이 수리영을 향해 한쪽 팔을 들어 올린 정지 컷.",
            "based_on_beat": 2,
            "characters": [
              "한국인 젊은 여성",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "수리영이 개의 털을 깎는 가위를 손에 쥔 채 멈춘 정지 컷.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "개"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 8,
        "scene_heading": "S#8. 번화가·대형 마트 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "네온사인이 켜진 번화가 포장마차 사이, 자전거 안장에 앉은 수리영이 한쪽 무릎을 굽혀 페달을 누르는 중간 자세로 상체를 진행 방향으로 살짝 기울인 전신.",
            "based_on_beat": 0,
            "characters": [
              "수리영"
            ],
            "original_description": "네온사인이 켜진 번화가 포장마차 사이, 자전거 안장에 앉은 수리영의 전신.",
            "validator_reason": "원문의 자전거 주행 동작이 정적인 착석 상태로 약화되어, 진행 방향이 보이는 mid-action 자세로 재작성했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "수리영이 대형 마트 앞에 자전거를 쥔 채 선 정지 상태.",
            "based_on_beat": 0,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "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": []
          }
        ]
      },
      {
        "scene_index": 9,
        "scene_heading": "S#9. 해안가 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 밤 해안도로에서 불안한 표정으로 자전거 핸들을 꽉 쥔 채 앞으로 상체를 숙인 수리영, 머리카락이 이동 방향 반대인 뒤쪽으로 흩날리는 상체 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "어두운 밤 해안도로에서 불안한 표정으로 자전거 핸들을 꽉 쥔 수리영의 상체 클로즈업.",
            "validator_reason": "원문의 자전거를 타고 달려가는 이동 동작을 반영하여, 상체 클로즈업에서도 이동의 추진력(바람에 흩날리는 머리카락, 숙인 자세)이 드러나도록 mid-action freeze 적용.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 10,
        "scene_heading": "S#10. 옥탑방 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "밤의 옥탑방 옥상, 평상 위에 말린 석창포 잎이 놓인 정지 구도.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "바닥의 말린 잎사귀가 한국인 남성의 신발 코에 닿은 순간.",
            "based_on_beat": 1,
            "characters": [
              "한국인 남성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "어둠 속 한국인 남성의 길쭉한 그림자가 옥상 바닥에 드리워진 정지 상태.",
            "based_on_beat": 1,
            "characters": [
              "한국인 남성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "한국인 남성의 신발이 철제 현관문 바로 앞에 멈춰 선 컷.",
            "based_on_beat": 1,
            "characters": [
              "한국인 남성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "철문 틈새에 꽂힌 종이 광고 전단지 클로즈업.",
            "based_on_beat": 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": [
              "한국인 남성",
              "한국인 중년 여성"
            ],
            "original_description": "창문에 비친 실루엣 속, 남성의 그림자가 한국인 중년 여성의 어깨 쪽으로 겹쳐진 정지 컷.",
            "validator_reason": "모호한 '겹쳐진' 정적 접촉 표현 대신 원문의 '물어뜯는 듯 덮치는' 능동적 동작을 mid-action 실루엣으로 보존했습니다.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 11,
        "scene_heading": "S#11. 옥탑 방 밖 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "다세대 빌라 마당의 어두운 구석에 자전거가 세워진 상태.",
            "based_on_beat": 1,
            "characters": [],
            "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": [
              "수리영"
            ],
            "original_description": "어두운 거실, 수리영이 입을 약간 벌린 채 주변을 두리번거리는 정면 상체 정지 컷.",
            "validator_reason": "'두리번거리는'은 연속 동작이므로 고개를 돌린 특정 순간의 고정된 자세로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "희미한 조명 아래 식탁 위에 놓인 찻잔 두 개 중 하나가 옆으로 쓰러져 엎어진 정지 구도.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영의 손이 방문 손잡이를 쥔 채 멈춘 측면 컷.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "어두운 방바닥에 검붉은 핏자국과 붉은 발자국 무늬가 커튼 쪽으로 길게 이어진 정지 구도.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영이 두 눈을 크게 뜨고 숨을 멈춘 채 굳어버린 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영의 손이 커튼 자락을 꽉 움켜쥔 채 멈춘 정지 순간.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "커튼 뒤, 한국인 중년 여성이 핏자국이 묻은 채 바닥에 주저앉아 고개를 푹 숙인 정지 상태.",
            "based_on_beat": 1,
            "characters": [
              "한국인 중년 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "한국인 중년 여성의 어깨와 쇄골에 깊게 패어 피가 엉겨 붙은 거친 상처 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "한국인 중년 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "수리영이 양팔을 늘어뜨린 채 멍한 표정으로 굳어버린 전신 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "수리영이 한쪽 발을 뒤로 뻗어 허공에 띄운 채 무게중심이 뒤로 쏠려 있는 찰나의 순간.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영의 한쪽 발이 뒤로 물러나 바닥에 닿은 찰나의 순간.",
            "validator_reason": "뒤로 물러나는 이동 동작의 추진력과 방향성을 보존하기 위해 발이 바닥에 닿기 전의 mid-action 순간으로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "수리영의 긴장한 손가락이 휴대전화 다이얼 화면 위에 닿아 있는 정지 컷.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영의 떨리는 손가락이 휴대전화 다이얼 화면 위에 닿은 정지 컷.",
            "validator_reason": "'떨리는'은 연속된 미세 움직임을 내포하므로 고정된 시각적 상태로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 12,
            "description": "수리영이 휴대전화를 귀에 댄 채 눈물이 맺힌 눈으로 앞을 응시하는 측면 얼굴.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 13,
            "description": "한국인 중년 여성의 창백한 손가락 사이에 구겨진 낡은 사진 한 장이 끼워진 구도.",
            "based_on_beat": 3,
            "characters": [
              "한국인 중년 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 14,
            "description": "수리영의 손가락 끝이 구겨진 사진 모서리에 막 닿은 정지 순간.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 15,
            "description": "한국인 중년 여성의 손목에 새겨진 작은 원 모양 표식이 선명한 붉은빛을 띠는 컷.",
            "based_on_beat": 3,
            "characters": [
              "한국인 중년 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 16,
            "description": "침대 위 어두운 벽면에 피로 그린 듯한 붉은색 원형 표식이 뚜렷하게 맺힌 정지 구도.",
            "based_on_beat": 3,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 17,
            "description": "수리영이 입을 크게 벌리고 두 눈을 질끈 감은 공포에 질린 찡그린 얼굴 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 13,
        "scene_heading": "S#13. 옥탑방 외곽 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "가파르고 어두운 야외 계단에서 수리영의 한쪽 발이 허공에 떠 있는 하강 동작의 정지 컷.",
            "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": []
          }
        ]
      },
      {
        "scene_index": 14,
        "scene_heading": "S#14. 옥탑방 안 / 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": "수리영이 방문을 향해 달려가며 상체를 앞으로 깊게 기울이고 한쪽 발을 허공으로 들어올린 mid-action 정지 순간.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영의 상체가 앞으로 기울어진 채 방문을 향해 뻗어나간 동작의 정지 컷.",
            "validator_reason": "달려가는 추진 동작의 방향성과 역동성을 살리기 위해 구체적인 mid-action 자세로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "핏자국 없이 말끔하게 정돈된 수리영의 방 내부와 빈 커튼 쪽 전경.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영이 입을 벌린 채 당혹스러운 표정으로 빈 커튼 쪽을 응시하는 창백한 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 입을 벌린 채 당혹스러운 표정으로 빈 커튼 쪽을 응시하는 창백해진 얼굴 클로즈업.",
            "validator_reason": "'창백해진'이라는 시간적 상태 변화를 '창백한'이라는 고정된 시각 상태로 수정했습니다.",
            "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": 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": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "안개가 짙은 해안도로를 따라 수리영이 등을 보이며 달리는 도중, 한쪽 발이 허공에 떠 있고 옷자락이 뒤로 휘날리는 mid-stride 상태의 뒷모습 찰나.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "안개가 짙은 해안도로를 따라 수리영이 등을 보이며 달아나는 뒷모습의 정지 컷.",
            "validator_reason": "단순한 달아나는 뒷모습 대신, 이동 동작의 추진력을 보존하는 mid-action 자세(발이 떠 있고 옷자락이 휘날리는 상태)로 구체화했습니다.",
            "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": 16,
        "scene_heading": "S#16. 경찰서 사무실 / 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": []
          }
        ]
      },
      {
        "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": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "수리영의 손가락이 방문 손잡이를 반쯤 돌려 쥔 찰나의 손 클로즈업 컷.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영의 손가락이 방문 손잡이를 비틀어 연 찰나의 손 클로즈업 컷.",
            "validator_reason": "'비틀어 연'의 연속 동작을 손잡이를 반쯤 돌려 쥔 단일 정지 순간으로 수정.",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "방 안 창가 앞, 수리영의 양손이 커튼 자락을 꽉 쥔 채 멈춘 뒷모습.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "열린 커튼 뒤로 아침 햇살이 비치며 아무것도 없는 텅 빈 바닥이 드러난 정지 구도.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "수리영의 어깨가 위로 잔뜩 들린 채 멈춘 찰나의 놀란 상체 컷.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영의 어깨가 위로 들썩이며 크게 움찔한 찰나의 놀란 상체 컷.",
            "validator_reason": "'들썩이며'라는 연속 움직임을 어깨가 위로 들린 채 고정된 단일 상태로 수정.",
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "수리영이 휴대전화를 귀에 바짝 댄 채 미간을 잔뜩 찡그린 불안한 표정.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "수리영의 한 손이 작은 인형이 매달린 백팩 어깨끈을 꽉 움켜쥔 정지 순간.",
            "based_on_beat": 2,
            "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": [
              "수리영"
            ],
            "original_description": "수리영의 고개가 실제 타일 벽 쪽으로 홱 꺾인 찰나의 놀란 측면 얼굴.",
            "validator_reason": "고개가 꺾이는 모호한 동작 표현을 돌아가는 도중의 단일 찰나를 명시하도록 수정.",
            "character_ids": []
          },
          {
            "shot_index": 13,
            "description": "아무런 표식 없이 차갑고 깨끗한 실제 욕실 타일 벽면 전경.",
            "based_on_beat": 3,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 14,
            "description": "거실 식탁 앞, 수리영의 입술이 물이 담긴 유리컵 가장자리에 닿은 정지 순간.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 15,
            "description": "수리영의 시선이 식탁 위 액자 속 사진을 향해 단단히 고정된 측면 정지 컷.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 16,
            "description": "사진 속 한국인 중년 여성의 웃는 얼굴이 흉측하게 일그러져 반쯤 흘러내린 채 굳은 기괴한 평면 이미지 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "한국인 중년 여성"
            ],
            "original_description": "사진 속 한국인 중년 여성의 웃는 얼굴이 흉측하게 일그러져 흘러내리는 기괴한 평면 이미지 클로즈업.",
            "validator_reason": "'흘러내리는'이라는 진행형 상태를 반쯤 흘러내린 결과적 정지 상태로 수정.",
            "character_ids": []
          },
          {
            "shot_index": 17,
            "description": "수리영이 사진 액자를 두 손으로 쥔 채 두 눈을 질끈 감고 비명을 지르는 표정.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 18,
            "description": "수리영의 오른손 바닥이 자신의 뺨을 강하게 가격해 피부가 일그러진 찰나의 타격 순간.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영의 오른손 바닥이 자신의 뺨에 강하게 밀착된 찰나의 타격 순간.",
            "validator_reason": "정적인 '밀착된' 표현 대신 타격의 힘과 피부가 일그러지는 시각적 단서를 추가하여 능동적 접촉을 보존.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 19,
        "scene_heading": "S#19. 마트 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "한산한 마트 입구, 수리영이 자전거 핸들을 쥔 채 서 있는 정면 전신 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "수리영이 남자 직원을 향해 시선을 꼿꼿이 고정한 측면 얼굴.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "남자 직원"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "남자 직원이 종이 상자를 양손으로 든 채 수리영을 바라보며 멈춰 선 정면 구도.",
            "based_on_beat": 1,
            "characters": [
              "남자 직원",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "마트 밖, 수리영과 남자 직원이 건물 외벽 모서리 위쪽의 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": "어두운 화질의 모니터 화면 속, 희미한 두 실루엣이 마주 선 형태의 그래픽 컷.",
            "based_on_beat": 1,
            "characters": [
              "두 실루엣"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "혜수가 한국인 남성 보안직원을 향해 고개를 돌린 측면 얼굴.",
            "based_on_beat": 2,
            "characters": [
              "혜수",
              "한국인 남성 보안직원"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "혜수를 향해 시선을 고정한 채 앉아 있는 한국인 남성 보안직원의 정면 상체.",
            "based_on_beat": 2,
            "characters": [
              "한국인 남성 보안직원",
              "혜수"
            ],
            "original_description": "한국인 남성 보안직원이 화면에서 눈을 떼고 혜수를 바라보는 정면 상체.",
            "validator_reason": "'눈을 떼고'와 '바라보는'의 순차적 동작이 포함되어 있어 단일 정지 상태로 수정함.",
            "character_ids": []
          }
        ]
      },
      {
        "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": 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": "텅 빈 김형사의 자리, 켜진 모니터 화면에 해상 지도의 GPS 좌표 창이 선명하게 떠 있는 그래픽 컷.",
            "based_on_beat": 3,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "수리영의 떨리는 손가락이 컴퓨터 마우스 버튼 위에 얹혀진 찰나의 순간.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "수리영의 손이 볼펜을 쥔 채 작은 종이 조각 위에 숫자를 적다 멈춘 컷.",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "수리영이 접은 종이 조각을 점퍼 주머니에 반쯤 찔러넣은 채 등 뒤를 살피는 측면 상체.",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "수리영의 한쪽 발이 자동문 문턱 위 공중에 들려 있고 다른 발이 땅을 박차며 나아가는 mid-stride 찰나의 하단 컷.",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영의 발이 경찰서 자동문 문턱을 급하게 넘는 찰나의 하단 컷.",
            "validator_reason": "이동 동작(문턱을 넘는)의 추진 방향성을 살려 mid-action freeze로 재작성했습니다.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 22,
        "scene_heading": "S#22. 경찰서 밖 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "경찰서 앞 도로, 수리영이 자전거 안장에서 엉덩이를 뗀 채 페달을 강하게 밟는 하향 각도의 전신 정지 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 23,
        "scene_heading": "S#23. 어느 PC방 / 실내",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 PC방 안, 수리영이 밝은 모니터 불빛을 받으며 화면을 뚫어지게 응시하는 정면 상체.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "수리영의 양손이 프린터에서 나온 종이 지도를 반으로 접은 채 멈춘 순간.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영이 여러 겹으로 접힌 지도를 열려 있는 백팩 안으로 반쯤 밀어 넣은 채 손이 멈춘 자세.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 여러 겹으로 접힌 지도를 열려 있는 백팩 안으로 밀어 넣는 정지 컷.",
            "validator_reason": "진행형 동사와 메타 표현('정지 컷')을 단일 정지 자세인 mid-action 묘사로 수정",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 24,
        "scene_heading": "S#24. 해안가 / 소나기",
        "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": 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": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "방 안 벽면에 피로 칠한 듯한 거친 붉은색 원형 표식이 뚜렷하게 그려진 정지 구도.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "붉은 원 한가운데 구겨지고 피가 묻은 낡은 사진 한 장이 단검처럼 꽂혀 있는 벽면 클로즈업.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영의 떨리는 손가락 끝이 벽에 꽂힌 낡은 사진의 모서리에 막 닿은 찰나의 순간.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "7-80년대 시골 식당, 지붕의 십자가 모양 둥근 원, 그리고 두 명의 어린 여자아이가 담긴 낡고 빛바랜 사진 표면 이미지 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "두 명의 어린 여자아이"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "수리영이 젖은 옷을 입은 채 침대 매트리스 가장자리에 깊이 앉아 고개를 푹 숙인 전신 구도.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 젖은 옷을 입은 채 침대 매트리스 가장자리에 털썩 주저앉아 고개를 푹 숙인 전신 구도.",
            "validator_reason": "침대에 주저앉는 동작과 고개를 숙인 결과 자세가 순차적으로 섞여 있어 단일 정지 자세로 정리했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "수리영의 오른손이 떼어낸 낡은 사진을 구겨질 정도로 꽉 움켜쥔 손 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "수리영이 백팩을 멘 채 열린 현관문 문턱에서 한 발은 바깥으로 나가고 다른 발은 실내에 남아 있는, 초점 잃은 멍한 표정의 정면 전신 컷.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 백팩을 멘 채 열린 현관문을 나서는 초점 잃은 멍한 표정의 정면 전신 컷.",
            "validator_reason": "현관문을 나서는 이동 동작을 정지 상태로 약화하지 않고 문턱을 넘는 mid-action 자세로 고정했습니다.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 26,
        "scene_heading": "S#26. 포구 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "비가 멎은 뒤 짙은 안개에 휩싸여 배가 한 척도 보이지 않는 텅 빈 포구 전경.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "물기 젖은 갯바위 위, 수리영이 두 무릎을 가슴으로 모아 세운 채 웅크리고 앉은 상체 정지 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영의 손바닥 안에 놓인 휴대전화 화면에 혜수의 부재중 전화 알림창이 밝게 떠 있는 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "짙은 안개 장막을 뚫고 작은 어선의 뱃머리가 희미하게 모습을 드러낸 찰나의 정지 컷.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "배에서 내린 인우가 굵은 밧줄을 양손으로 쥔 채 선착장 기둥 앞에 멈춰 선 상체 정지 구도.",
            "based_on_beat": 2,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영이 인우를 향해 양손을 앞으로 살짝 내민 채 간절한 눈빛을 보내는 측면 전신 컷.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "인우가 밧줄을 묶은 채 미간을 약간 찌푸리고 수리영을 빤히 내려다보는 정면 얼굴.",
            "based_on_beat": 3,
            "characters": [
              "인우",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "선착장 끝, 수리영이 안개 낀 바다를 배경으로 휴대전화를 입가에 바짝 댄 채 눈을 내리깐 측면 얼굴 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 27,
        "scene_heading": "S#27. 옥탑방 안 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "가재도구가 어지럽게 널린 옥탑방 거실 한가운데, 혜수가 휴대전화를 손에 쥔 채 멍하니 허공을 응시하는 굳은 표정.",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 28,
        "scene_heading": "S#28. 바다 + 갑판 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "해 질 무렵 붉은 노을이 비치는 바다 위, 소형 어선 한 척이 떠 있는 원경 정지 구도.",
            "based_on_beat": 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": []
          }
        ]
      },
      {
        "scene_index": 29,
        "scene_heading": "S#29. 조타실 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "붉은 노을빛이 새어 들어오는 어두운 조타실 안, 인우의 양손이 둥근 조타기 손잡이를 꽉 움켜쥔 정지 구도.",
            "based_on_beat": 1,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "수리영의 두 손이 조타기를 잡은 인우의 팔뚝을 강하게 움켜쥐고 멈춘 측면 컷.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영이 미간을 찌푸린 채 인우를 쏘아보는 분노에 찬 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "인우가 입을 반쯤 벌린 채 수리영을 바라보며 굳어버린 당혹스러운 표정.",
            "based_on_beat": 2,
            "characters": [
              "인우",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영의 집게손가락 끝이 낡은 사진 속 한 어린 여자아이의 얼굴을 꾹 누른 채 멈춘 손 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "인우의 얼굴이 하얗게 질린 채 두 눈이 튀어나올 듯 커진 공포스러운 정면 얼굴 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "인우의 얼굴 너머 어두운 조타실 벽면에 피로 그린 듯한 붉은색 원형 표식들이 선명하게 보이는 정지 구도.",
            "based_on_beat": 4,
            "characters": [
              "인우"
            ],
            "original_description": "인우의 얼굴 너머 어두운 조타실 벽면에 피로 그린 듯한 붉은색 원형 표식들이 선명하게 나타난 정지 구도.",
            "validator_reason": "'나타난'이 상태 변화를 암시할 수 있어, 이미 존재하는 고정 상태인 '보이는'으로 수정.",
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "수리영이 입을 크게 벌린 채 인우 등 뒤의 벽면을 향해 시선을 고정하고 얼어붙은 창백한 측면 얼굴.",
            "based_on_beat": 4,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "눈이 풀린 수리영의 상체가 바닥을 향해 반쯤 기울어진 채 허공에 멈춘 정지 순간.",
            "based_on_beat": 5,
            "characters": [
              "수리영"
            ],
            "original_description": "눈이 풀린 수리영의 상체가 바닥을 향해 푹 꺾이며 쓰러지는 찰나의 정지 순간.",
            "validator_reason": "'꺾이며 쓰러지는'이라는 진행형 동작을 '기울어진 채 멈춘' 단일 상태로 수정.",
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "정신을 잃은 수리영의 머리가 인우의 어깨 위에 무겁게 얹혀 있고, 인우가 고개를 돌려 수리영을 노려보는 정지 상태.",
            "based_on_beat": 5,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 30,
        "scene_heading": "S#30. 바다 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "황금빛 노을이 덮인 바다 한가운데, 짙은 잿빛 안개 장막이 두껍게 깔려 있는 해수면 원경 구도.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "소형 어선의 앞부분 절반이 짙은 안개 속으로 파묻혀 희미해진 찰나의 멈춘 컷.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          }
        ]
      }
    ],
    "total_shots": 185,
    "changed_shots": 33
  },
  "step_id": "shot_validator",
  "run_id": "0d1c82ea-d576-4199-88d8-fb4ba3bb8dea",
  "resolved_model": "gemini-pro",
  "updated_at": "2026-06-30T09:11:30.449794+00:00",
  "schema_version": 1,
  "config_hash": "99914b932bd37a50",
  "project_config_snapshot": {}
}