{
  "status": "completed",
  "completed_count": 28,
  "applicable_count": 28,
  "failed_count": 0,
  "data": {
    "scenes": [
      {
        "scene_index": 1,
        "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 freeze로 재작성",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "목이 꺾인 채 바닥을 향해 쓰러지는 각도로 기울어진 아시아계 여성의 상체",
            "based_on_beat": 1,
            "characters": [
              "아시아계 여성"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 2,
        "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": 3,
        "scene_heading": "S#4. 옥탑방 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "안개가 낀 인천 변두리, 낡은 빌라 옥탑방 전경을 위에서 내려다본 부감 구도",
            "based_on_beat": 0,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 4,
        "scene_heading": "S#5. 옥탑방 안 / 실내",
        "shots": [
          {
            "shot_index": 1,
            "description": "햇살이 가늘게 비치는 거실, 앞치마를 두른 한국인 중년 여성이 TV 화면을 뚫어지게 응시하며 굳어 있는 정면",
            "based_on_beat": 1,
            "characters": [
              "한국인 중년 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "방문이 열린 채 두 팔을 위로 뻗은 자세의 수리영",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "방문이 열린 채 수리영이 두 팔을 위로 뻗고 멈춘 순간",
            "validator_reason": "인위적인 '멈춘 순간' 표현을 제거하고 기지개를 켜는 정지 자세로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "팔을 뻗은 채 TV 전원 버튼에 손가락을 대고 있는 한국인 중년 여성",
            "based_on_beat": 1,
            "characters": [
              "한국인 중년 여성"
            ],
            "original_description": "한국인 중년 여성이 손을 뻗어 TV 전원 버튼에 손가락을 댄 순간",
            "validator_reason": "'뻗어'라는 연속 동작을 배제하고 팔을 뻗은 고정 상태로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "수리영이 식탁 의자에 앉아 무심한 표정으로 앞을 바라보는 상체",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영의 컵으로 짙은 색의 약초 달인 물이 쏟아지는 중간, 냄비를 기울인 자세의 한국인 중년 여성",
            "based_on_beat": 2,
            "characters": [
              "한국인 중년 여성",
              "수리영"
            ],
            "original_description": "한국인 중년 여성이 수리영의 컵에 짙은 색의 약초 달인 물을 붓기 위해 냄비를 기울인 채 멈춘 순간",
            "validator_reason": "물을 붓는 동작을 묘사하기 위해 '붓기 위해'라는 의도와 '멈춘 순간'이라는 인위적 표현을 빼고 mid-action으로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "입술에서 컵을 살짝 뗀 채 미간을 찌푸린 수리영",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 컵을 입에서 떼며 미간을 찌푸린 정지 순간",
            "validator_reason": "'떼며'라는 연속 동작과 인위적인 '정지 순간' 표현을 고정된 상태 묘사로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "신발을 신은 채 몸을 기울여 한국인 중년 여성의 어깨 부근에 얼굴을 파묻은 자세의 수리영",
            "based_on_beat": 3,
            "characters": [
              "수리영",
              "한국인 중년 여성"
            ],
            "original_description": "신발을 신은 수리영이 몸을 기울여 한국인 중년 여성의 어깨 부근에 얼굴을 묻고 멈춘 순간",
            "validator_reason": "인위적인 '멈춘 순간' 표현을 제거하고 얼굴을 묻은 결과 상태로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "수리영을 바라보는 한국인 중년 여성의 옅은 미소를 띤 얼굴",
            "based_on_beat": 3,
            "characters": [
              "수리영",
              "한국인 중년 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "한국인 중년 여성의 손목에 있는 작은 원 모양의 표식이 붉게 도드라져 보이는 클로즈업",
            "based_on_beat": 3,
            "characters": [
              "한국인 중년 여성"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 5,
        "scene_heading": "S#6. 해안가 도로 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "이어폰을 낀 수리영이 해안가 도로에서 자전거 페달을 밟아 내려가는 역동적인 찰나, 한쪽 무릎이 굽혀져 있고 머리카락이 주행 반대 방향으로 흩날리며 밝게 미소 짓는 측면 구도",
            "based_on_beat": 0,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 자전거 페달에 발을 얹은 채 바다 안개 낀 해안가 도로 위에 멈춰 있는 듯한 측면 구도",
            "validator_reason": "원문의 이동 동작(달린다)에 따른 추진력 단서가 누락되어, 정지된 모습이 아닌 주행 중인 역동적인 mid-action 순간으로 재작성했습니다.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 6,
        "scene_heading": "S#7. 유기견 보호원 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "이빨을 드러낸 채 앞발을 들고 뛰어오르며 공중에 떠 있는 로트와일러의 정지 순간",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "수리영이 철창 너머로 로트와일러를 차갑게 노려보는 눈빛 클로즈업",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "로트와일러가 네 발을 땅에 딛고 얌전히 멈춰 선 정지 상태",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "50대 한국인 남성 수의사가 주사기를 든 채 뒤로 물러나며 한 발이 공중에 떠 있는 뒷걸음질 중간 정지 순간",
            "based_on_beat": 1,
            "characters": [
              "50대 한국인 남성 수의사"
            ],
            "original_description": "50대 한국인 남성 수의사가 주사기를 든 채 뒤로 한 발 물러서 멈춘 상태",
            "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": 7,
        "scene_heading": "S#8. 번화가·대형 마트 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "네온사인이 켜진 번화가 도로, 수리영이 자전거 핸들을 꽉 쥔 채 페달을 밟는 중간 자세로 지나가는 순간",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "네온사인이 켜진 번화가 도로, 수리영이 자전거 핸들을 꽉 쥔 채 멈춰 선 순간",
            "validator_reason": "원문 핵심 동작인 자전거 주행이 정지 상태로 약화되어 motion direction이 누락되었으므로 mid-action 찰나로 재작성했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "마트 안, 수리영이 진열대 앞의 한국인 중년 여성 직원을 향해 고개를 갸웃거리는 정지 상태",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "한국인 중년 여성 직원"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "박스를 든 남자 직원이 수리영 쪽을 향해 입을 반쯤 벌린 채 멈춘 순간",
            "based_on_beat": 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": []
          }
        ]
      },
      {
        "scene_index": 8,
        "scene_heading": "S#9. 해안가 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 밤, 짙은 안개 낀 해안도로 위, 상체를 앞으로 숙인 채 한쪽 무릎을 굽혀 자전거 페달을 누르는 중간 자세의 수리영 측면 실루엣, 머리카락과 옷자락이 이동 반대 방향으로 날리는 모습",
            "based_on_beat": 0,
            "characters": [
              "수리영"
            ],
            "original_description": "어두운 밤, 짙은 안개 낀 해안도로 위에서 수리영이 상체를 숙인 채 자전거 페달을 밟고 있는 듯한 측면 실루엣",
            "validator_reason": "자전거를 타는 이동 동작의 추진력을 시각적으로 보존하기 위해 페달을 밟는 중간 자세와 뒤로 날리는 옷자락을 명시하여 '동적 동사 freeze 규칙'을 적용함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 9,
        "scene_heading": "S#10. 옥탑방 / 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": 1,
            "characters": [
              "남자"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 10,
        "scene_heading": "S#11. 옥탑 방 밖 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 다세대 빌라 마당, 수리영이 자전거 손잡이를 잡은 채 멈춘 순간",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "옥탑방으로 이어지는 계단 중간에서 수리영이 한 손으로 코를 틀어막고 눈을 찡그린 얼굴 클로즈업",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영의 시점, 옥상에 반쯤 열려 있는 낡은 철문의 정지 화면",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 11,
        "scene_heading": "S#12. 옥탑방 안 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "거실, 희미한 스탠드 불빛 아래 수리영이 입을 반쯤 벌린 채 멈춰 선 정면 구도",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "끓다 식은 냄비와 켜진 TV 화면이 보이는 부엌 전경의 정물 구도",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영의 손이 닫힌 안방 문고리를 쥔 채 멈춘 측면",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "거실 식탁 위, 엎어진 찻잔 하나와 똑바로 놓인 찻잔 하나가 있는 정지 구도",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "열린 방문 문고리를 잡은 채 눈을 크게 뜨고 굳어 있는 수리영의 상체",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 자신의 방문을 열고 눈을 크게 뜬 채 굳어 있는 상체",
            "validator_reason": "'문을 열고'와 '굳어 있는' 연속 동작을 하나의 정지 상태로 수정했습니다.",
            "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": "수리영의 시점, 커튼 뒤에 앉은 채 고개를 푹 수그린 50대 한국인 여성 시신의 정지 모습",
            "based_on_beat": 1,
            "characters": [
              "50대 한국인 여성 시신"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "수리영이 두 팔을 축 늘어뜨린 채 얼어붙은 전신",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "50대 한국인 여성 시신의 뜯겨진 어깨와 쇄골 사이로 피가 멈춰 있는 참혹한 상처 클로즈업",
            "based_on_beat": 2,
            "characters": [
              "50대 한국인 여성 시신"
            ],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "수리영이 뒤로 한 발 물러선 자세로 입을 크게 벌린 정지 순간",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 12,
            "description": "수리영의 엄지손가락이 휴대전화 화면의 통화 버튼에 닿아 있는 클로즈업",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 13,
            "description": "수리영이 휴대전화를 귀에 댄 채 눈물이 고인 눈으로 앞을 응시하는 상체",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 14,
            "description": "50대 한국인 여성 시신의 손 안에 구겨진 사진 한 장이 쥐어져 있는 클로즈업",
            "based_on_beat": 3,
            "characters": [
              "50대 한국인 여성 시신"
            ],
            "character_ids": []
          },
          {
            "shot_index": 15,
            "description": "수리영의 손가락이 시신의 손에 쥐어진 사진 끝부분에 닿기 직전의 멈춘 순간",
            "based_on_beat": 3,
            "characters": [
              "수리영",
              "시신"
            ],
            "character_ids": []
          },
          {
            "shot_index": 16,
            "description": "수리영의 시점, 시신의 손목에 있던 문신이 선명한 붉은색으로 도드라져 보이는 환시 클로즈업",
            "based_on_beat": 3,
            "characters": [
              "시신"
            ],
            "character_ids": []
          },
          {
            "shot_index": 17,
            "description": "침대 위 벽면에 피를 바른 듯한 거친 질감의 붉은 원 형태가 뚜렷하게 맺혀 있는 수리영 시점의 환시 화면",
            "based_on_beat": 3,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 18,
            "description": "수리영이 두 손으로 머리를 감싸 쥔 채 입을 벌리고 굳어 있는 일그러진 얼굴",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 12,
        "scene_heading": "S#13. 옥탑방 외곽 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "수리영이 입을 크게 벌린 채 어두운 옥탑방 외부 계단을 딛고 선 정지 순간",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "사이렌 불빛이 번쩍이는 가운데, 혜수가 경찰차 문을 열고 한 발을 땅에 딛은 상태",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "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": []
          },
          {
            "shot_index": 6,
            "description": "혜수가 눈을 크게 뜨고 미간을 찌푸린 당혹스러운 얼굴",
            "based_on_beat": 2,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "혜수와 김형사가 옥탑방 계단 위를 향해 뛰어오르며 한쪽 발을 공중에 뻗은 mid-action 자세, 옷자락이 뒤로 휘날리는 구도",
            "based_on_beat": 2,
            "characters": [
              "혜수",
              "김형사"
            ],
            "original_description": "혜수와 김형사가 옥탑방 계단 위를 향해 한쪽 발을 높이 치켜든 정지 구도",
            "validator_reason": "동적 동사 freeze 규칙에 따라 '정지 구도' 표현을 피하고, 계단을 오르는 추진 방향과 운동감을 보존한 mid-action 찰나로 수정했습니다.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 13,
        "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": [
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "혜수가 고개를 돌려 한 발짝 뒤에 서 있는 수리영을 바라보는 측면 정지 상태",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "수리영"
            ],
            "original_description": "혜수가 고개를 돌려 뒤따라오는 수리영을 바라보는 측면",
            "validator_reason": "'뒤따라오는'이라는 연속 이동 동작을 고정된 위치에 서 있는 결과 상태로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "수리영이 방문턱을 넘은 자세로 상체를 앞으로 기울인 정지 순간",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영의 시점, 핏자국이나 시신 없이 깨끗하게 정돈된 침대와 커튼의 정물 구도",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영이 창백하게 질린 얼굴로 커튼 앞 빈 공간을 응시하는 클로즈업",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "수리영이 식탁 앞에 서서 텅 빈 식탁 위를 멍하게 내려다보는 상체",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "김형사가 미간을 잔뜩 찌푸린 채 수리영을 향해 턱을 치켜든 굳은 얼굴",
            "based_on_beat": 3,
            "characters": [
              "김형사",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "수리영이 두 주먹을 꽉 쥔 채 억울한 표정으로 김형사를 올려다보는 측면",
            "based_on_beat": 3,
            "characters": [
              "수리영",
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "혜수가 날카로운 눈빛으로 김형사를 노려보는 옆얼굴",
            "based_on_beat": 4,
            "characters": [
              "혜수",
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "혜수의 손이 수리영의 어깨 위에 다정하게 올려진 클로즈업",
            "based_on_beat": 4,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 12,
            "description": "수리영이 고개를 푹 숙인 채 혜수의 가슴 팍에 시선을 둔 정지 순간",
            "based_on_beat": 4,
            "characters": [
              "수리영",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 13,
            "description": "수리영 방 안, 침대 위에 놓인 백팩과 인형의 정물 구도",
            "based_on_beat": 4,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 14,
        "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": 1,
            "characters": [
              "수리영",
              "혜수"
            ],
            "original_description": "수리영이 혜수에게서 등을 돌려 어두운 도로 쪽을 향해 발을 내디딘 상태",
            "validator_reason": "달리는 동작의 추진력과 방향성을 보존하기 위해 mid-action freeze 형태로 시각적 단서를 보강했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "혜수가 두 손을 입가에 모은 채 수리영의 뒷모습을 향해 입을 벌린 정면 상체",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "멀리서 혜수와 수리영의 모습을 지켜보는 듯한 수풀 너머의 원경 정지 구도",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 15,
        "scene_heading": "S#16. 경찰서 사무실 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "혜수가 휴대전화를 귀에 댄 채 한 발을 들어 경찰서 사무실 문턱을 막 넘는 중간 동작, 옷자락이 뒤로 살짝 날리는 옆모습",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "original_description": "혜수가 휴대전화를 귀에 댄 채 경찰서 사무실 문턱을 넘은 정지 순간",
            "validator_reason": "사무실로 들어서는 이동 동작의 방향성과 추진력을 보존하기 위해 mid-action 자세로 재작성함.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "혜수의 굳게 다문 입술과 불안한 눈빛 클로즈업",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "김형사가 책상에 비스듬히 기댄 채 혜수를 쳐다보는 정지 상태",
            "based_on_beat": 1,
            "characters": [
              "김형사",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "혜수가 휴대전화 화면을 김형사의 얼굴 앞으로 불쑥 들이민 손",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "김형사가 팔짱을 낀 채 입술을 삐죽 내민 못마땅한 표정",
            "based_on_beat": 1,
            "characters": [
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "혜수가 미간에 깊은 주름을 잡은 채 단호한 표정으로 앞을 노려보는 상체",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 16,
        "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": [
              "검은 고양이"
            ],
            "original_description": "검은 털의 길고양이가 담장 위로 앞발을 뻗어 뛰어오르기 직전의 멈춘 자세",
            "validator_reason": "'뻗어 뛰어오르기'라는 연속된 동작을 '뻗은 채'라는 하나의 고정된 상태로 명확히 수정",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 17,
        "scene_heading": "S#18. 안방 안 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "수리영이 안방 침대 가장자리에 엎드려 머리를 대고 눈을 감은 측면",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "수리영이 눈을 번쩍 뜬 채 상체를 벌떡 일으킨 정지 순간",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영이 굳게 닫힌 자신의 방문을 불안한 눈빛으로 응시하는 얼굴",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "수리영의 손이 방문 손잡이를 잡고 반쯤 돌린 멈춘 상태",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영이 활짝 열린 커튼 너머의 빈 공간을 바라보며 깊게 숨을 내쉬듯 어깨를 늘어뜨린 상체",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영이 울리는 휴대전화 화면을 내려다보며 어깨를 움찔한 정지 순간",
            "based_on_beat": 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": [
              "수리영"
            ],
            "original_description": "수리영이 고개를 홱 돌려 실제 욕실 벽면을 쳐다보는 뒷모습",
            "validator_reason": "'홱 돌려'라는 연속/이동 동작을 하나의 고정된 자세('돌린 채')로 변경하여 찰나 원칙 적용",
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "거실 식탁 위, 액자 속 50대 한국인 여성의 웃는 얼굴 부위가 진흙처럼 기괴하게 뭉개져 있는 환시 클로즈업",
            "based_on_beat": 3,
            "characters": [
              "50대 한국인 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 12,
            "description": "수리영이 입을 크게 벌리고 뒤로 물러선 채 경악한 표정",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 13,
            "description": "거실 식탁 위, 멀쩡하게 웃고 있는 50대 한국인 여성의 사진 액자 클로즈업",
            "based_on_beat": 3,
            "characters": [
              "50대 한국인 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 14,
            "description": "수리영의 손바닥이 자신의 뺨에 강하게 밀착된 순간의 찡그린 얼굴 클로즈업",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 18,
        "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": [
              "수리영",
              "남자직원"
            ],
            "original_description": "마트 밖, 수리영과 남자 직원이 고개를 들어 벽면 상단의 CCTV 카메라를 올려다보는 뒷모습",
            "validator_reason": "'고개를 들어'가 연속 동작으로 읽힐 수 있어 고정된 자세인 '고개를 든 채'로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영이 휴대전화를 귀에 바짝 댄 채 심각한 표정으로 굳어 있는 측면 얼굴",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 19,
        "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": [
              "보안요원"
            ],
            "original_description": "보안요원이 고개를 갸웃하며 미간을 찌푸린 정지 상태",
            "validator_reason": "'갸웃하며'라는 연속 동작을 암시하는 표현을 '기울인 채'라는 고정된 결과 상태로 수정함",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "혜수가 보안요원을 향해 몸을 약간 숙인 채 단호한 표정으로 앞을 응시하는 측면",
            "based_on_beat": 2,
            "characters": [
              "혜수",
              "보안요원"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 20,
        "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": 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": "수리영의 시점, 어두운 모니터 화면에 붉은색 GPS 좌표와 'LAST LOCATION' 문구가 떠 있는 화면 구도",
            "based_on_beat": 3,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "창백해진 수리영이 펜을 쥔 채 작은 종이 위에 숫자를 적어 내려가다 멈춘 손",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "수리영이 접은 메모지를 넣은 손을 주머니에 둔 채, 텅 빈 복도를 향해 한 발이 허공에 떠 있는 걷는 동작의 mid-stride 자세",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 접은 메모지를 주머니에 넣은 채 텅 빈 복도를 향해 발을 내디딘 상태",
            "validator_reason": "이동 동작을 명확한 mid-action freeze 묘사로 수정하여 motion direction을 보존함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 21,
        "scene_heading": "S#22. 경찰서 밖 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "경찰서 앞, 수리영이 자전거 안장에 앉아 한쪽 페달을 밟아 내리며 핸들을 꽉 쥔 채 앞으로 몸을 기울인 모습",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "경찰서 앞, 수리영이 자전거 안장에 올라타 핸들을 꽉 쥔 채 앞으로 몸을 기울인 정지 순간",
            "validator_reason": "자전거로 달리는 동적 동작의 추진력을 보존하기 위해 '정지 순간'이라는 명시적 표현을 피하고, 페달을 밟아 내리는 mid-action 찰나로 수정했습니다.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 22,
        "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": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "쏟아지는 빗속, 수리영이 흠뻑 젖은 채 자전거 페달을 밟기 위해 상체를 웅크린 찰나의 측면 실루엣",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 23,
        "scene_heading": "S#25. 옥탑방 안 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "어스름한 거실 바닥, 누군가 짓밟고 간 선명한 진흙 발자국들의 멈춘 구도",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "열린 창문과 바닥에 쓰러진 식탁 의자들 사이에서 헐떡이며 멈춰 선 수리영의 전신",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영이 자신의 방문을 잡고 열어젖힌 채 시선이 고정된 상체",
            "based_on_beat": 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": "70년대 시골 식당과 둥근 원 상징이 보이고, 12살 무렵의 한국인 여자아이 두 명이 앉아 있는 빛바랜 사진 클로즈업",
            "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": "어두운 현관문 밖으로 한 발을 들어 허공에 뻗은 채 바깥을 향해 걷고 있는 수리영의 미드 스트라이드(mid-stride) 뒷모습",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "어두운 현관문 밖으로 수리영이 한 발을 내딛고 집을 나서는 뒷모습",
            "validator_reason": "이동 동작(집을 나서는)의 방향성과 추진력을 보존하기 위해 발을 내딛는 도중의 한 찰나로 수정했습니다.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 24,
        "scene_heading": "S#26. 포구 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "비가 그친 직후, 짙은 바다 안개에 휩싸여 배 한 척 보이지 않는 텅 빈 포구의 스산한 정경",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "수리영이 젖은 갯바위 위에 어깨를 늘어뜨리고 앉아 허공을 멍하니 응시하는 측면",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "바위 위에 놓인 휴대전화 화면에 '혜수 이모'라는 글자가 밝게 켜져 있는 상태",
            "based_on_beat": 1,
            "characters": [],
            "original_description": "바위 위에 놓인 수리영의 휴대전화 화면에 '혜수 이모'라는 글자가 떠 있는 채 진동하는 멈춘 순간",
            "validator_reason": "'진동하는'이라는 동적 표현과 '멈춘 순간'이 모순되므로 움직임을 배제한 시각적 고정 상태로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "짙은 안개를 뚫고 검은 실루엣의 작은 배 한 척이 포구 쪽으로 머리를 들이민 정지 화면",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "인우가 배 갑판 위에서 굵은 밧줄을 꽉 움켜쥔 채 멈춰 선 상체",
            "based_on_beat": 2,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영이 배 근처 포구 끝에 서서 인우를 올려다보는 굳은 표정",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "인우가 무심한 눈빛으로 수리영을 힐끗 내려다보는 측면 얼굴",
            "based_on_beat": 2,
            "characters": [
              "인우",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "수리영이 휴대전화를 입가에 댄 채 어두운 바다를 향해 시선을 고정한 정지 구도",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 25,
        "scene_heading": "S#27. 옥탑방 안 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "혜수가 휴대전화를 귀에 댄 채 시선을 한쪽으로 둔 굳은 얼굴 클로즈업",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "original_description": "혜수가 휴대전화를 귀에 댄 채 눈동자를 굴리며 굳어 있는 얼굴 클로즈업",
            "validator_reason": "'눈동자를 굴리며'라는 연속 동작을 시선이 고정된 정적 상태로 수정함.",
            "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": 3,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 26,
        "scene_heading": "S#28. 바다 + 갑판 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "해질 무렵의 바다 위 소형 어선 갑판, 수리영이 지도를 든 손을 뻗은 채 멈춘 정지 구도",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "지도를 내려다보며 미간을 깊게 찌푸린 인우의 굳은 얼굴 클로즈업",
            "based_on_beat": 1,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영이 낡은 사진 한 장을 앞으로 내민 상태로 굳어 있는 상체",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "사진을 본 인우가 당황하여 눈을 크게 뜨고 입을 반쯤 벌린 멈춘 순간",
            "based_on_beat": 4,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영이 사진을 앞을 향해 들이민 채 날카로운 눈빛으로 상대를 응시하는 정면 상체 정지 구도",
            "based_on_beat": 5,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 사진을 더 가까이 들이밀며 날카로운 눈빛으로 앞을 응시하는 정면 상체",
            "validator_reason": "'들이밀며 응시하는'의 연속 동작 표현을 '들이민 채 응시하는' 동시 고정 상태로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "인우가 고개를 살짝 돌려 시선을 회피한 채 굳어 있는 측면",
            "based_on_beat": 5,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "갑판 위에서 조타실 쪽으로 상체를 크게 기울이며 자리에서 막 일어서는 인우의 mid-action 정지 상태",
            "based_on_beat": 6,
            "characters": [
              "인우"
            ],
            "original_description": "인우가 갑판에서 벌떡 일어나 조타실 쪽으로 상체를 크게 기울인 정지 상태",
            "validator_reason": "'벌떡 일어나 기울인'이라는 순차적 동작의 뉘앙스를 제거하고 일어서며 몸을 기울이는 단일 mid-action으로 재작성했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "수리영이 다급한 표정으로 인우의 뒷모습을 향해 한쪽 팔을 뻗은 채 자리에서 반쯤 일어선 mid-action 정지 구도",
            "based_on_beat": 7,
            "characters": [
              "수리영",
              "인우"
            ],
            "original_description": "수리영이 다급한 표정으로 인우의 뒷모습을 향해 한쪽 팔을 뻗으며 몸을 일으킨 정지 구도",
            "validator_reason": "'뻗으며 일으킨'이라는 두 동작의 결합을 '뻗은 채 반쯤 일어선' 단일 동작 정지 상태(mid-action)로 명확화했습니다.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 27,
        "scene_heading": "S#29. 조타실 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "비좁은 조타실 안, 수리영이 조타기를 잡으려는 인우의 팔을 두 손으로 꽉 움켜쥔 정지 구도",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "수리영이 미간을 찌푸린 채 입을 크게 벌리고 소리치는 굳은 얼굴 클로즈업",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영을 향해 고개를 돌린 채 눈을 둥그렇게 뜬 놀란 표정의 인우 상체",
            "based_on_beat": 2,
            "characters": [
              "인우",
              "수리영"
            ],
            "original_description": "인우가 동작을 멈추고 수리영을 돌아보며 눈을 둥그렇게 뜬 놀란 표정의 상체",
            "validator_reason": "'멈추고 돌아보며'는 시간 흐름을 암시하므로 하나의 고정된 자세로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "수리영의 집게손가락이 낡은 사진 속 여자아이의 얼굴 부위를 짚은 채 멈춘 클로즈업",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "핏기가 가신 얼굴로 입술을 굳게 다문 인우의 사색이 된 클로즈업",
            "based_on_beat": 4,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영의 시점, 인우의 어깨 너머 조타실 벽면에 기괴하게 그려진 수많은 붉은 원들의 정지 화면",
            "based_on_beat": 5,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "붉은 원을 보고 눈을 부릅뜬 채 경악하여 턱이 벌어진 수리영의 얼굴 클로즈업",
            "based_on_beat": 5,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "수리영이 초점을 잃은 눈으로 몸이 옆으로 비스듬히 기울어진 찰나의 정지 구도",
            "based_on_beat": 6,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "수리영의 머리가 무표정한 얼굴의 인우 어깨 위에 툭 떨어진 채 맞닿은 정지 순간",
            "based_on_beat": 6,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 28,
        "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": 168,
    "changed_shots": 31
  },
  "step_id": "shot_validator",
  "run_id": "c433e34e-3810-47c3-8c34-99c8d63fb0da",
  "resolved_model": "gemini-pro",
  "updated_at": "2026-05-21T06:31:58.003564+00:00",
  "schema_version": 1,
  "config_hash": "99914b932bd37a50",
  "project_config_snapshot": {}
}