{
  "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-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": []
          }
        ]
      },
      {
        "scene_index": 2,
        "scene_heading": "S#2. 도시 뒷골목 / 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": 3,
        "scene_heading": "S#3. 현장 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "노란색 폴리스 라인이 쳐진 현장에 제복을 입은 한국인 경찰들이 멈춰 서 있는 구도",
            "based_on_beat": 1,
            "characters": [
              "한국인 경찰들"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "들것 위에 천으로 덮인 시신을 내려다보는 구도",
            "based_on_beat": 1,
            "characters": [
              "시신"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "형사들 사이에서 팔짱을 낀 채 앞을 주시하는 혜수의 상체",
            "based_on_beat": 1,
            "characters": [
              "형사들",
              "혜수"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 4,
        "scene_heading": "S#4. 옥탑방 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "도심 변두리의 오래된 빌라 옥탑방이 내려다보이는 부감 구도",
            "based_on_beat": 0,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 5,
        "scene_heading": "S#5. 옥탑방 안 / 실내",
        "shots": [
          {
            "shot_index": 1,
            "description": "싱크대 수도꼭지 아래, 씻다 만 약초가 엉켜 있는 찰나",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "가스레인지 위 냄비 뚜껑 사이로 짙은 김이 뿜어져 나온 정지 순간",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "화면 밖 TV의 빛을 받으며 굳은 얼굴로 앞을 주시하는 민숙의 상체",
            "based_on_beat": 1,
            "characters": [
              "민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "방문이 반쯤 열린 틈 사이로 양팔을 뻗고 기지개를 켠 채 멈춘 수리영의 정면",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "민숙의 손가락이 TV 리모컨의 전원 버튼을 깊게 누른 찰나",
            "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": [
              "민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "민숙의 손목 표식에 시선을 고정한 수리영의 얼굴 클로즈업",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 6,
        "scene_heading": "S#6. 해안가 도로 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "해안가 도로를 배경으로 자전거 페달을 밟으며 앞으로 나아가는 수리영의 전신 측면, 머리카락이 뒤로 휘날리는 mid-action",
            "based_on_beat": 0,
            "characters": [
              "수리영"
            ],
            "original_description": "해안가 도로를 배경으로 자전거 핸들을 쥔 수리영의 전신 측면",
            "validator_reason": "자전거를 타고 달리는 이동 동작의 추진력을 시각적으로 보존하기 위해 mid-action 상태로 재작성했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "귀에 이어폰을 꽂고 눈을 지그시 감은 수리영의 옆얼굴",
            "based_on_beat": 0,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 7,
        "scene_heading": "S#7. 유기견 보호원 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "이빨을 드러내고 철망을 향해 앞발을 높이 치켜든 로트와일러",
            "based_on_beat": 1,
            "characters": [
              "로트와일러"
            ],
            "original_description": "이빨을 드러내고 철망을 향해 앞발을 치켜든 로트와일러의 정지 순간",
            "validator_reason": "영상이 멈춘 것을 암시하는 '정지 순간'이라는 메타 표현을 제거하고 시각적 상태만 남김",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "철망 너머로 로트와일러의 눈을 매섭게 노려보는 수리영의 정면 얼굴",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "로트와일러"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "꼬리를 내리고 바닥에 납작 엎드린 로트와일러의 전신",
            "based_on_beat": 1,
            "characters": [
              "로트와일러"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "한국인 50대 남성의 손이 개의 엉덩이에 주사기 바늘을 찌르고 있는 모습",
            "based_on_beat": 1,
            "characters": [
              "50대 남성",
              "개"
            ],
            "original_description": "한국인 50대 남성의 손이 개의 엉덩이에 주사기 바늘을 찌른 찰나",
            "validator_reason": "불필요한 '찰나'라는 메타 표현을 제거하고 능동적 접촉의 순간을 자연스러운 동작 고정으로 묘사",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "철장 안의 개들을 등지고 귀에 휴대폰을 댄 채 미간을 찌푸린 수리영의 측면",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "개들"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "젖은 개에게 비누 거품을 내며 손으로 문지르고 있는 수리영의 상체",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "개"
            ],
            "original_description": "젖은 개에게 비누 거품을 묻힌 채 손을 멈춘 수리영의 상체",
            "validator_reason": "실제로 정지한 것이 아니므로 '손을 멈춘'이라는 표현을 피하고 목욕시키는 과정의 mid-action 순간으로 수정",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 8,
        "scene_heading": "S#8. 번화가·대형 마트 / 해질 무렵",
        "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": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 9,
        "scene_heading": "S#9. 해안가 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 해안도로를 배경으로 허리를 숙인 채 한쪽 무릎을 굽혀 페달을 강하게 밟아 누르고, 옷자락이 바람에 뒤로 날리는 수리영의 실루엣",
            "based_on_beat": 0,
            "characters": [
              "수리영"
            ],
            "original_description": "어두운 해안도로를 배경으로 허리를 숙인 채 자전거를 타는 자세로 멈춘 수리영의 실루엣",
            "validator_reason": "이동 동작이 '멈춘' 상태로 잘못 표현되어, 페달을 밟고 옷자락이 날리는 추진력이 묘사된 mid-action 찰나로 재작성함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 10,
        "scene_heading": "S#10. 옥탑방 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "옥상 평상 위, 마른 잎사귀 하나가 공중에 떠 있는 찰나",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "낡은 신발을 신은 발목이 바닥을 딛고 선 클로즈업 구도",
            "based_on_beat": 1,
            "characters": [
              "낯선 남자"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "철문 현관 앞에 길게 드리워진 짙은 그림자",
            "based_on_beat": 1,
            "characters": [
              "낯선 남자"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "문틈에 꽂힌 종이 전단지를 꽉 쥔 손가락 클로즈업",
            "based_on_beat": 1,
            "characters": [
              "낯선 남자"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "반쯤 열린 철문 사이로 어두운 내부가 보이는 시점 쇼트",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "창문에 비친 그림자 속, 정체불명의 습격자의 실루엣이 민숙을 덮쳐 어깨를 강하게 물어뜯는 찰나의 역동적인 모습",
            "based_on_beat": 1,
            "characters": [
              "습격자",
              "민숙"
            ],
            "original_description": "창문에 비친 그림자 속, 정체불명의 습격자의 실루엣이 민숙의 어깨 부근에 닿아 있는 정지 구도",
            "validator_reason": "원문에 묘사된 능동적인 폭력 접촉(물어뜯기)이 단순한 정적 접촉으로 약화되었으므로, 능동성을 보존한 mid-impact 모먼트로 수정했습니다.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 11,
        "scene_heading": "S#11. 옥탑 방 밖 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 골목길, 자전거 페달을 밟으며 앞으로 달려나가는 찰나의 회전하는 자전거 앞바퀴와 수리영의 하반신 구도",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "어두운 골목길, 자전거 앞바퀴가 멈춰 선 구도",
            "validator_reason": "원문의 '달리는' 이동 동작을 멈춰 선 상태로 잘못 묘사했으므로, 주행 중인 추진력과 방향성을 보존한 mid-action 찰나로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "빌라 마당 구석에 자전거를 기댄 채 서 있는 수리영의 뒷모습",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "계단 중간에 서서 한 손으로 코를 막은 수리영의 정면 얼굴",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "반쯤 열린 옥탑방 현관 철문이 정면으로 보이는 시점 쇼트",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 12,
        "scene_heading": "S#12. 옥탑방 안 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "희미한 거실 스탠드 불빛 아래, 끓다 식은 냄비와 켜진 TV가 있는 거실에 멈춰 선 수리영의 전신.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "식탁 위에 놓인 두 개의 찻잔 중 하나가 바닥을 향해 엎어져 있는 구도.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "닫힌 방문의 손잡이를 꽉 쥔 채 멈춘 수리영의 손 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "바닥에 흥건한 혈흔과 피 묻은 발자국이 창가 쪽 커튼으로 이어진 어두운 방 안의 정적 구도.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "피 묻은 바닥을 딛고 서서 한 손으로 커튼을 젖힌 상태로 굳어버린 수리영의 옆얼굴.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "살점이 뜯겨 피가 흘러내리는 끔찍한 상처를 입은 채 바닥에 앉아 고개를 떨군 민숙의 상체.",
            "based_on_beat": 1,
            "characters": [
              "민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "한 발을 뒤로 뺀 채 눈을 크게 뜨고 극도의 공포로 굳어버린 수리영의 정면 얼굴.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "뒤로 주춤하며 눈을 크게 뜬 채 극도의 공포로 굳어버린 수리영의 정면 얼굴.",
            "validator_reason": "주춤하는 진행 동작과 굳어버린 결과 상태가 충돌하므로 한 발을 뺀 채 정지한 순간으로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "핸드폰을 쥔 손을 귀에 밀착한 채 잔뜩 긴장해 굳어 있는 수리영의 상체 측면.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "핸드폰을 귀에 댄 채 부들부들 떠는 손으로 멈춘 수리영의 상체 측면.",
            "validator_reason": "부들부들 떠는 연속적인 동작 묘사를 긴장하여 굳어있는 한 찰나의 자세로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "민숙의 차갑게 굳은 손안에 구겨진 채 쥐어져 있는 낡은 사진 한 장의 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "구겨진 사진을 향해 떨리는 손가락을 뻗다 허공에 멈춘 수리영의 손.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "민숙의 창백한 손목 피부에 새겨진 작은 원 모양의 표식이 짙은 붉은색으로 뚜렷하게 드러난 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "민숙"
            ],
            "original_description": "민숙의 창백한 손목 피부에 새겨진 작은 원 모양의 표식이 짙은 붉은색으로 변한 찰나의 클로즈업.",
            "validator_reason": "변하는 과정이 연상되는 시간적 표현을 제거하고, 붉은색으로 뚜렷하게 드러난 정지 상태로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 12,
            "description": "침대 위 벽면에 피로 그린 듯한 붉은색 원형 표식이 뚜렷하게 떠오른 정지 구도.",
            "based_on_beat": 3,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 13,
            "description": "두 눈을 질끈 감고 입을 크게 벌린 채 공포로 굳어버린 수리영의 얼굴 정면.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "두 눈을 질끈 감고 입을 크게 벌려 비명을 지르는 수리영의 얼굴 정면.",
            "validator_reason": "비명을 지르는 연속 동작 대신 입을 크게 벌린 한 순간의 고정된 표정으로 수정했습니다.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 13,
        "scene_heading": "S#13. 옥탑방 외곽 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 옥탑방 외부 계단을 허겁지겁 내려오다 한쪽 발을 공중에 둔 상태로 멈춘 수리영의 전신.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "경찰차의 붉은 경광등 불빛을 받으며 초점을 잃고 멍하니 서 있는 수리영의 상체.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영을 향해 양팔을 살짝 벌리고 한쪽 발을 공중에 띄운 채 몸을 앞으로 크게 기울여 질주하는 mid-stride 자세의 혜수 전신.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "혜수"
            ],
            "original_description": "수리영을 향해 양팔을 살짝 벌린 채 다급하게 달려오는 혜수의 전신.",
            "validator_reason": "이동 동작(달려오는)이므로 방향성과 추진력을 보존하는 mid-action 자세로 재작성했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "혜수를 올려다보며 눈가에 눈물이 맺힌 채 굳어 있는 수리영의 옆얼굴.",
            "based_on_beat": 3,
            "characters": [
              "수리영",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "눈을 크게 뜨고 입을 반쯤 벌린 채 충격으로 멈춘 혜수의 얼굴 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "어두운 옥탑방 계단을 향해 동시에 한쪽 발을 딛고 몸을 위로 솟구친 mid-action 자세의 혜수와 김형사 뒷모습 전경.",
            "based_on_beat": 4,
            "characters": [
              "혜수",
              "김형사"
            ],
            "original_description": "어두운 옥탑방 계단을 향해 동시에 발을 내딛고 뛰어오르는 혜수와 김형사의 뒷모습 전경.",
            "validator_reason": "추진 동작(뛰어오르는)이므로 추진력을 명시하는 한 순간의 자세로 재작성했습니다.",
            "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": [
              "수리영",
              "혜수"
            ],
            "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": 3,
            "characters": [
              "김형사",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "수리영의 어깨를 양손으로 감싸 쥔 채 다정하고 걱정스러운 눈빛으로 내려다보는 혜수의 측면.",
            "based_on_beat": 4,
            "characters": [
              "수리영",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "방 한구석 바닥에 인형이 달린 백팩이 쓰러진 채 놓여 있는 정적 구도.",
            "based_on_beat": 4,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 15,
        "scene_heading": "S#15. 해안가. 버스정류장 부근 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 밤바다를 배경으로 낡은 버스정류장 벤치에 고개를 숙인 채 멍하니 앉아 있는 수리영의 전신.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "벤치에 앉은 수리영을 향해 캔 음료수를 불쑥 내민 채 멈춘 혜수의 팔과 상체.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "벤치에서 갑자기 몸을 일으켜 세운 채 굳은 표정으로 허공을 응시하는 수리영의 정면.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "어둠이 깔린 해안도로를 향해 한 발을 허공에 띄운 채 상체를 앞으로 기울인 달리기 mid-action 자세의 수리영 뒷모습 실루엣.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "어둠이 깔린 해안도로를 향해 급하게 뛰어가는 수리영의 뒷모습 실루엣.",
            "validator_reason": "이동 동작(뛰어가는)에 대해 방향성과 추진력을 보존하는 mid-action freeze를 적용함.",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "저만치 떨어져 있는 수리영의 등 뒤를 향해 양손을 입가에 모으고 입을 크게 벌린 채 멈춰 있는 혜수의 측면 전신.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "혜수"
            ],
            "original_description": "멀어지는 수리영의 등 뒤를 향해 양손을 입가에 모으고 크게 소리치는 혜수의 측면 전신.",
            "validator_reason": "멀어지는 이라는 시간 경과 표현을 제거하고, 소리치는 순간의 고정된 입 모양과 정지된 자세로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "구조물 뒤편 어둠 속에서 거리를 둔 채 서 있는 혜수와 달리기 mid-action 자세의 수리영을 은밀하게 응시하는 정지된 시점 쇼트.",
            "based_on_beat": 3,
            "characters": [
              "수리영",
              "혜수"
            ],
            "original_description": "구조물 뒤편 어둠 속에서 거리를 두고 멀어지는 수리영과 혜수를 은밀하게 지켜보는 누군가의 시점 쇼트.",
            "validator_reason": "멀어지는 이라는 연속 동작 표현을 배제하고 인물들의 고정된 상태(서 있는 자세, 달리기 자세)만을 포착한 한 찰나로 수정함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 16,
        "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": 2,
            "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": []
          }
        ]
      },
      {
        "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": [
              "검은 고양이"
            ],
            "original_description": "옥탑방 마당 쪽으로 몸을 기울여 앞발을 뻗고 뛰어내리기 직전 멈춘 검은 고양이의 실루엣.",
            "validator_reason": "실제 멈춘 상황이 아니므로 '멈춘' 표현을 빼고, 도약 중인 mid-action 순간으로 수정하여 방향성과 추진력을 보존함.",
            "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": 2,
            "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": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "인형이 매달린 백팩을 한쪽 어깨에 걸친 상태로 현관을 향해 몸을 튼 수리영의 측면.",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "세면대 거울 앞에서 물기 젖은 창백한 얼굴을 멍하니 들여다보는 수리영의 상체.",
            "based_on_beat": 5,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "수리영의 어깨 너머로 거울에 반사된 욕실 타일 벽면에 피처럼 붉은색 원형 표식이 선명하게 떠오른 정지 구도.",
            "based_on_beat": 5,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "텅 빈 하얀 타일 벽면을 향해 고개를 돌린 채 당황한 표정으로 멈춰 선 수리영의 옆얼굴.",
            "based_on_beat": 5,
            "characters": [
              "수리영"
            ],
            "original_description": "고개를 홱 돌려 붉은 표식 없이 텅 빈 하얀 타일 벽면을 바라보며 당황한 수리영의 옆얼굴.",
            "validator_reason": "고개를 돌리는 동작과 벽을 바라보는 동작이 시간 순서로 연결되어 있어, 고개를 돌린 채 멈춘 정지 상태로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "거실 식탁 위에 놓인 사진 액자 속 환하게 웃는 민숙의 얼굴 이미지가 찰흙처럼 기괴하게 일그러져 흘러내리는 찰나의 클로즈업.",
            "based_on_beat": 5,
            "characters": [
              "민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "두 눈을 질끈 감고 자신의 뺨을 향해 손바닥을 내리치기 직전 허공에 멈춘 수리영의 상체.",
            "based_on_beat": 5,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 19,
        "scene_heading": "S#19. 마트 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "이른 아침 한산한 마트 입구 밖, 자전거 핸들을 쥔 채 멈춰 선 수리영의 전신.",
            "based_on_beat": 0,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "마트 진열대 사이, 진행 방향으로 기운 몸통과 옆 진열대를 향한 고개가 포착된 수리영의 보행 중 상체.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "마트 진열대 사이에서 고개를 돌린 상태로 멈춘 수리영의 상체.",
            "validator_reason": "원문의 이동 동작이 정지 상태로 약화되어 보행 방향과 추진력이 드러나는 한 찰나로 재작성했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영과 마주 본 상태로 멈춰 선 마트 남자 직원의 전신.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "마트 남자 직원"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "마트 외부 건물 벽에 달린 CCTV 카메라를 올려다보는 수리영의 옆얼굴.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "귀에 핸드폰을 댄 채 굳은 얼굴로 앞을 주시하는 수리영의 측면.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 20,
        "scene_heading": "S#20. 마트 총무과 / 실내",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 CCTV 모니터 화면을 주시하는 한국인 남성 보안 직원과 그 옆에 선 혜수의 상체.",
            "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": []
          }
        ]
      },
      {
        "scene_index": 21,
        "scene_heading": "S#21. 경찰서 안 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "경찰서 사무실 안, 김형사에게 고개를 숙인 채 멈춘 혜수의 상체.",
            "based_on_beat": 0,
            "characters": [
              "혜수",
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "혜수를 향해 종이 서류를 내민 채 멈춘 김형사의 측면.",
            "based_on_beat": 0,
            "characters": [
              "김형사",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "서류를 든 채 사무실 문 밖을 향해 한 발을 내딛으며 몸을 튼 김형사의 뒷모습.",
            "based_on_beat": 0,
            "characters": [
              "김형사"
            ],
            "original_description": "서류를 든 채 사무실 문을 나서는 방향으로 몸을 튼 김형사의 뒷모습.",
            "validator_reason": "문을 나서는 이동 동작의 방향성과 추진력을 보존하기 위해 한 발을 내딛은 mid-action 자세로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "수리영을 향해 난감한 표정을 지은 채 멈춘 혜수의 얼굴.",
            "based_on_beat": 0,
            "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": [
              "수리영"
            ],
            "original_description": "주위를 살피며 컴퓨터 마우스에 손을 얹은 수리영의 상체.",
            "validator_reason": "'살피며'와 '얹은' 두 동작을 시선을 돌린 채 손을 얹고 있는 단일 정지 자세로 통합함.",
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "메모지에 펜을 댄 채 멈춘 수리영의 손 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "접은 메모지를 주머니에 반쯤 넣은 채 멈춘 수리영의 측면.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 12,
            "description": "사무실 밖을 향해 한 발을 내딛은 상태에서 고개만 뒤로 돌린 수리영의 전신.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "사무실 밖을 향해 몸을 튼 채 뒤를 돌아보는 수리영의 전신.",
            "validator_reason": "사무실을 나서는 이동 동작의 추진력을 보존하기 위해 한 발을 내딛은 mid-action 상태와 돌아보는 자세를 결합함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 22,
        "scene_heading": "S#22. 경찰서 밖 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "경찰서 밖, 자전거 안장에 앉아 페달에 한쪽 발을 올린 수리영의 전신.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "핸들을 꽉 쥐고 허리를 한껏 숙인 채 페달을 밟으며 앞으로 나아가는 중간 순간의 수리영 측면, 머리카락과 옷자락이 움직임의 반대 방향으로 흩날리는 모습.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "핸들을 꽉 쥐고 허리를 한껏 숙인 자세로 멈춘 수리영의 측면.",
            "validator_reason": "원문의 '달리는' 이동 동작이 '멈춘' 상태로 잘못 변환되어, 추진력과 움직임의 방향을 보존하는 mid-action freeze로 재작성함.",
            "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": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 24,
        "scene_heading": "S#24. 해안가 / 소나기",
        "shots": [
          {
            "shot_index": 1,
            "description": "먹구름이 짙게 깔리고 세찬 빗줄기가 쏟아지는 해안가 도로의 전경.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "쏟아지는 빗속에서 자전거 페달을 밟아 앞으로 치고 나가는 자세의 수리영 전신, 뒤로 흩날리는 머리카락과 빗방울.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "쏟아지는 빗속에서 자전거 핸들을 꽉 쥔 자세로 멈춘 수리영의 전신.",
            "validator_reason": "원문의 이동 동작(달리는)을 단순 정지로 잘못 표현하여, 추진력이 느껴지는 mid-action 찰나로 재작성함.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "비에 흠뻑 젖은 채 굳은 표정으로 앞을 노려보는 수리영의 얼굴 클로즈업.",
            "based_on_beat": 2,
            "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": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "백팩을 메고 구겨진 사진을 손에 꽉 쥔 채 열린 현관문 앞에 선 수리영의 뒷모습.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 26,
        "scene_heading": "S#26. 포구 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "짙은 안개가 자욱하게 깔려 배가 한 척도 보이지 않는 텅 빈 포구의 고요한 전경.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "안개 낀 바다를 향해 갯바위 위에 멍하니 앉아 있는 수리영의 뒷모습.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "혜수의 부재중 전화 알림이 여러 개 떠 있는 핸드폰 화면 클로즈업.",
            "based_on_beat": 4,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "짙은 안개 사이로 작은 뱃머리가 반쯤 모습을 드러낸 정지 구도.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "배 위에서 닻줄을 두 손으로 쥔 채 멈춰 선 인우의 전신.",
            "based_on_beat": 2,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "닻줄을 쥔 인우 앞에 선 수리영의 상체.",
            "based_on_beat": 3,
            "characters": [
              "수리영",
              "인우"
            ],
            "original_description": "닻줄을 쥔 인우 앞에 다가가 우뚝 선 수리영의 상체.",
            "validator_reason": "'다가가'라는 이동 과정과 '선' 결과 상태가 섞여 있어, 이동 표현을 제거하고 정지된 대치 상태만 남김.",
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "수리영을 무심한 눈빛으로 쳐다보는 인우의 얼굴 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "배에 오르기 전, 바다를 향해 귀에 핸드폰을 댄 채 입술을 굳게 다문 수리영의 옆얼굴.",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 27,
        "scene_heading": "S#27. 옥탑방 안 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "엉망이 된 옥탑방 거실을 배경으로 핸드폰을 귀에 댄 채 굳어버린 혜수의 상체.",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "미간을 잔뜩 찌푸린 채 충격에 빠진 혜수의 얼굴 클로즈업.",
            "based_on_beat": 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": [
              "인우"
            ],
            "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": [
              "수리영",
              "인우"
            ],
            "original_description": "인우의 등 뒤를 향해 다급하게 팔을 뻗으며 몸을 기울인 수리영의 전신 실루엣.",
            "validator_reason": "'팔을 뻗으며'라는 진행형 동작을 '팔을 뻗은 채'라는 고정된 정지 자세로 수정하여 한 찰나를 명확히 했습니다.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 29,
        "scene_heading": "S#29. 조타실 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "조타실 조종간을 꽉 쥔 인우의 손등 위로 양손을 덮어 누른 채 멈춘 수리영의 상체.",
            "based_on_beat": 1,
            "characters": [
              "인우",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "핏대를 세우고 입을 크게 벌린 채 분노한 표정으로 굳은 인우의 측면 얼굴.",
            "based_on_beat": 1,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "미간을 잔뜩 찌푸린 채 눈물을 글썽이며 화난 얼굴로 멈춘 수리영의 정면.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "빛바랜 사진 속 한 여자아이의 얼굴을 손가락 끝으로 짚은 채 멈춘 수리영의 손 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "여자아이"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "창백해진 낯빛으로 입술을 살짝 벌린 채 사색이 되어 굳어버린 인우의 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "굳어버린 인우의 어깨 너머, 조타실 벽면에 빼곡하게 그려진 기괴한 붉은색 원형 표식들이 보이는 시점 쇼트.",
            "based_on_beat": 3,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "동공이 크게 확장된 채 극도의 혼란으로 굳어버린 수리영의 얼굴 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "벽면의 붉은 원들을 발견하고 동공이 크게 확장된 채 극도의 혼란으로 굳어버린 수리영의 얼굴 클로즈업.",
            "validator_reason": "'발견하고'라는 선행 시간 동작을 제거하여 시각적 고정 상태만 묘사함.",
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "눈꺼풀이 반쯤 감긴 채 앞으로 비스듬히 기울어진 수리영의 상체.",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "original_description": "눈꺼풀이 반쯤 감긴 채 몸의 중심을 잃고 앞으로 비스듬히 기울어진 수리영의 상체.",
            "validator_reason": "'중심을 잃고'라는 과정적 표현을 제거하고 시각적 기울어짐 상태로 통합함.",
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "차가운 시선으로 앞을 노려보는 인우의 어깨 위로 고개를 떨군 채 축 늘어진 수리영의 옆얼굴.",
            "based_on_beat": 4,
            "characters": [
              "인우",
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 30,
        "scene_heading": "S#30. 바다 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "붉게 물드는 석양빛이 바다 수면 위에 황금빛 그림자를 길게 드리운 고요한 전경.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "수면 위로 거대하고 짙게 깔린 잿빛 안개 띠 장벽의 정적 구도.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "뱃머리가 짙은 안개 속으로 반쯤 들어간 채 선수 양옆으로 흰 물보라가 고정되어 있는 소형 어선의 전경.",
            "based_on_beat": 1,
            "characters": [],
            "original_description": "뱃머리가 짙은 안개 속으로 반쯤 파묻힌 채 바다 한가운데 고립되어 멈춰 있는 소형 어선의 전경.",
            "validator_reason": "멈춰 있다는 정적 묘사 대신 안개로 진입하는 배의 추진 방향을 뱃머리의 물보라로 표현하여 mid-action 순간으로 교정함.",
            "character_ids": []
          }
        ]
      }
    ],
    "total_shots": 165,
    "changed_shots": 36
  },
  "step_id": "shot_validator",
  "run_id": "775f0152-791b-4648-b1ad-6d0a475d86d0",
  "resolved_model": "gemini-pro",
  "updated_at": "2026-07-18T20:37:51.220029+00:00",
  "schema_version": 1,
  "config_hash": "99914b932bd37a50",
  "project_config_snapshot": {}
}