{
  "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": [
              "금월산 남성 피해자"
            ],
            "original_description": "바닥에 떨어져 있는 신발 한 짝 옆으로 금월산 남성 피해자의 피 묻은 다리가 스쳐 지나가는 순간",
            "validator_reason": "시간의 흐름을 내포한 '스쳐 지나가는 순간'을 모션의 방향성이 보존된 도약 상태의 한 찰나로 수정함",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "허공에 뜬 검은 형상의 존재가 금월산 남성 피해자의 등 위를 짓누르며 닿고, 그 충격으로 피해자의 몸이 앞으로 크게 휘청이는 역동적 충돌 찰나의 측면",
            "based_on_beat": 1,
            "characters": [
              "검은 형상의 존재",
              "금월산 남성 피해자"
            ],
            "original_description": "허공에서 날아온 검은 형상의 존재가 금월산 남성 피해자의 등 위로 덮쳐지는 순간의 측면",
            "validator_reason": "단순한 '덮쳐지는 순간'을 넘어 힘의 방향과 두 대상 간의 물리적 충격이 명확히 드러나는 능동적 접촉 찰나로 재작성함",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 2,
        "scene_heading": "S#2. 도시 뒷골목 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "희미한 가로등 불빛이 비추는 전봇대 앞, 낯선 한국인 남성과 효장동 여성 피해자가 밀착되어 있는 실루엣",
            "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": 3,
        "scene_heading": "S#3. 현장 / 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": [
              "혜수"
            ],
            "original_description": "폴리스 라인 근처에 서서 주변을 예리하게 살피는 혜수의 상체",
            "validator_reason": "'살피는'은 고개를 돌리는 연속 동작을 암시할 수 있어, 시선을 고정한 찰나의 상태로 수정함.",
            "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": "햇살이 스며드는 옥탑방 거실, 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": "어깨 너머로 시선을 돌린 채 입가에 옅은 미소를 띤 강민숙(민숙)의 얼굴",
            "based_on_beat": 1,
            "characters": [
              "강민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "식탁 위 수리영의 컵 안으로 주전자에서 짙은 색의 물이 쏟아져 내리는 순간",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "현관에 선 채 상체를 기울여 강민숙(민숙)의 어깨 부근에 코를 대는 수리영",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "강민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영의 시선이 머문 강민숙(민숙)의 손목 위에 뚜렷하게 드러난 작은 원 형태의 표식 클로즈업",
            "based_on_beat": 2,
            "characters": [
              "강민숙"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 6,
        "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": 7,
        "scene_heading": "S#7. 유기견 보호원 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "철창 안에서 이빨을 드러낸 채 앞발을 치켜든 거대한 검은 개의 정면",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "철창 너머의 개를 뚫어지게 직시하는 수리영의 굳은 눈매 클로즈업",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "바닥에 납작 엎드린 개의 엉덩이에 주사기 바늘을 꽂아 넣는 50대 한국인 남성의 손",
            "based_on_beat": 1,
            "characters": [
              "50대 한국인 남성"
            ],
            "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#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": [
              "수리영",
              "한국인 여성 직원"
            ],
            "original_description": "마트 안, 한국인 여성 직원을 향해 고개를 갸웃거리는 수리영",
            "validator_reason": "'갸웃거리는'이라는 연속/반복 동작을 한 순간의 고정된 상태로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "종이 박스를 가슴에 안은 채 진열대 앞을 걷는 도중 한쪽 발이 바닥에서 막 떨어진 마트 남자 직원",
            "based_on_beat": 1,
            "characters": [
              "마트 남자 직원"
            ],
            "original_description": "종이 박스를 가슴에 안은 채 진열대 앞을 걷는 마트 남자 직원",
            "validator_reason": "'걷는'이라는 이동 동사를 추진 방향이 보존된 공중의 mid-stride 찰나로 고정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "마트 밖을 향해 한 발을 내딛은 공중 상태로, 귀에 댄 휴대전화 버튼을 손가락으로 누른 채 멈춰 있는 수리영",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "마트 밖으로 걸어 나오며 귀에 댄 휴대전화를 초조하게 누르는 수리영",
            "validator_reason": "'걸어 나오며 누르는'이라는 동시 진행/연속 동작을 내딛는 자세와 버튼을 누르는 순간이 결합된 단일 찰나로 수정했습니다.",
            "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": [
              "한국인 남성"
            ],
            "original_description": "철문 틈새로 꽂혀 있던 전단지를 안쪽으로 꾹 밀어 넣는 한국인 남성의 손가락 클로즈업",
            "validator_reason": "전단지를 밀어 넣는 연속 동작을 진행 중인 특정 한 찰나의 정지 상태로 교정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "잠금장치가 풀린 채 미세하게 틈이 벌어진 옥탑방의 어두운 현관문",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "불 켜진 창문 너머로, 낯선 한국인 남성의 거대한 그림자가 강민숙(민숙)의 굽은 그림자를 위에서 덮쳐 누르고 있는 찰나의 실루엣",
            "based_on_beat": 1,
            "characters": [
              "낯선 한국인 남성",
              "강민숙(민숙)"
            ],
            "original_description": "불 켜진 창문 너머로, 낯선 한국인 남성의 거대한 그림자가 강민숙(민숙)의 굽은 그림자를 위에서 덮치는 실루엣",
            "validator_reason": "그림자가 덮치는 연속적인 행동을 능동적 힘이 실린 한 순간의 정지 상태(mid-action)로 교정했습니다.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 11,
        "scene_heading": "S#11. 옥탑 방 밖 / 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": [
              "수리영"
            ],
            "original_description": "가파른 옥탑방 계단을 두 칸씩 밟고 뛰어오르는 수리영의 다리",
            "validator_reason": "이동 동작이므로 mid-action freeze 규칙을 적용하여 허공에 뜬 찰나의 순간으로 변경했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "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": [
              "수리영"
            ],
            "original_description": "켜진 TV와 스탠드 불빛이 비추는 어두운 옥탑방 거실, 안방 문을 막 밀어 연 순간의 수리영 상체",
            "validator_reason": "'막 밀어 연 순간'은 동작의 흐름을 내포할 수 있어, 문을 연 고정된 자세로 명확히 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "바닥에 피가 고인 수리영의 방, 손으로 커튼 끝을 꽉 쥔 수리영의 옆모습",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "커튼 뒤, 목과 어깨에 살점이 뜯긴 거친 상처를 입고 피를 흘린 채 앉아 고개를 떨군 강민숙(민숙)의 끔찍한 모습",
            "based_on_beat": 1,
            "characters": [
              "강민숙(민숙)"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "핏기 없는 얼굴로 뒤로 한 발 물러선 채 굳어버린 수리영의 크게 떠진 두 눈",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "핏기 없는 얼굴로 뒤로 주춤 물러선 수리영의 크게 떠진 두 눈",
            "validator_reason": "'주춤 물러선'이 동작의 진행인지 결과인지 모호하여, 뒤로 물러선 채 멈춘 정지 상태로 명확히 했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "휴대전화 화면의 다이얼에 손가락을 댄 채 멈춰 있는 수리영의 손 클로즈업",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "덜덜 떨리는 손가락으로 휴대전화 다이얼을 누르는 수리영의 손 클로즈업",
            "validator_reason": "'누르는'이라는 진행형 동작을 다이얼 위에 손가락이 닿아 있는 정지 상태로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "강민숙(민숙)의 굳은 손안에 구겨진 채 쥐어져 있는 낡은 사진 한 장 클로즈업",
            "based_on_beat": 2,
            "characters": [
              "강민숙(민숙)"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "강민숙(민숙)의 손을 향해 뻗은 채 허공에 멈춘 수리영의 손",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "강민숙(민숙)"
            ],
            "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": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "벽을 향해 시선을 고정한 채 입을 크게 벌리고 굳어있는 수리영의 얼굴",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "벽을 향해 시선을 고정한 채 입을 크게 벌리고 비명을 지르는 수리영의 얼굴",
            "validator_reason": "'비명을 지르는'이라는 동작을 입을 벌린 채 굳어있는 정적 상태로 수정했습니다.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 13,
        "scene_heading": "S#13. 옥탑방 외곽 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "가파른 옥탑방 외부 계단을 뛰어 내려오다 한 발이 공중에 떠 있는 mid-stride 순간의 수리영의 다급한 전신",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "가파른 옥탑방 외부 계단을 허겁지겁 뛰어 내려오는 수리영의 다급한 전신",
            "validator_reason": "뛰어 내려오는 이동 동작을 방향성이 보존된 mid-action 정지 순간으로 구체화했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "경광등이 번쩍이는 경찰차 앞 초점을 잃고 멍하니 선 수리영과, 그를 향해 달려오다 한 발이 땅에서 떨어진 mid-action 순간의 혜수의 전신",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "혜수"
            ],
            "original_description": "경광등이 번쩍이는 경찰차 앞, 초점 잃은 눈으로 멍하니 선 수리영을 향해 달려오는 혜수의 전신",
            "validator_reason": "달려오는 이동 동작을 추진력이 보존된 mid-action 정지 순간으로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "혜수의 얼굴을 올려다보는 수리영의 넋이 나간 텅 빈 표정",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "눈을 크게 뜨고 몸이 굳어버린 채 정지한 혜수의 상체",
            "based_on_beat": 2,
            "characters": [
              "혜수"
            ],
            "original_description": "수리영의 말을 듣고 눈을 크게 뜨며 몸이 굳은 혜수의 상체",
            "validator_reason": "'말을 듣고'라는 시간 진행/인과 표현을 제거하고 놀란 결과 상태의 정지 순간만 남겼습니다.",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "어두운 옥탑방 계단을 향해 뛰어 올라가며 한 발이 다음 계단을 딛기 직전인 mid-stride 순간의 혜수와 김형사의 뒷모습",
            "based_on_beat": 2,
            "characters": [
              "혜수",
              "김형사"
            ],
            "original_description": "어두운 옥탑방 계단을 향해 다급하게 뛰어 올라가는 혜수와 김형사의 뒷모습",
            "validator_reason": "뛰어 올라가는 추진 동작을 방향성이 보존된 mid-action 정지 순간으로 구체화했습니다.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 14,
        "scene_heading": "S#14. 옥탑방 안 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "옥탑방 현관, 집 안 어딘가에 시선을 고정한 채 허탈한 표정을 짓는 김형사와 그 옆에 가만히 서 있는 혜수",
            "based_on_beat": 1,
            "characters": [
              "김형사",
              "혜수"
            ],
            "original_description": "옥탑방 현관, 집 안을 둘러보며 허탈한 표정을 짓는 김형사와 그 옆에 선 혜수",
            "validator_reason": "시선이 이동하는 연속 동작(둘러보며)을 한 곳에 시선을 고정한 정지 상태로 변경함",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "자신의 방 문턱을 다급하게 넘으며 한 발은 공중에 떠 있고 상체는 앞을 향해 쏠린 순간의 수리영",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "자신의 방 안으로 다급하게 뛰어 들어온 순간의 수리영",
            "validator_reason": "이동 동작(뛰어 들어온)의 motion direction을 보존하기 위해 mid-action 자세로 구체화함",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "핏자국 하나 없이 깨끗하게 정돈된 방 안과 텅 빈 커튼 뒤 공간",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "텅 빈 방을 멍하니 응시하는 수리영의 창백해진 얼굴",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "찻잔이 사라지고 말끔히 치워진 거실 식탁 위 풍경",
            "based_on_beat": 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": []
          }
        ]
      },
      {
        "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": [
              "수리영",
              "혜수"
            ],
            "original_description": "벤치에 앉은 수리영을 향해 캔 음료를 내미는 혜수의 손",
            "validator_reason": "'내미는'이라는 동작 진행형 표현을 팔을 뻗은 상태의 정지 자세로 수정함",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "벤치에서 자리를 박차고 벌떡 일어선 순간의 수리영",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "해안가 도로를 따라 다급하게 달리며 한쪽 발이 허공에 뜬 mid-action 순간의 수리영 뒷모습",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "해안가 도로를 따라 다급하게 뛰어가는 수리영의 멀어지는 뒷모습",
            "validator_reason": "'뛰어가는' 연속 이동 동작을 mid-action freeze 규칙에 따라 공중에 발이 뜬 찰나의 자세로 수정함",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "멀어지는 수리영의 등을 향해 양손을 입가에 모으고 소리치는 혜수의 상체",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "어두운 구조물 뒤에서, 멀리 떨어진 혜수와 수리영의 모습을 은밀하게 지켜보는 1인칭 관찰자 시점 구도",
            "based_on_beat": 2,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 16,
        "scene_heading": "S#16. 경찰서 사무실 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "경찰서 사무실 안을 향해 한 발을 막 내디딘 mid-stride 자세로, 귀에 휴대전화를 바짝 댄 혜수의 굳은 얼굴",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "original_description": "경찰서 사무실 안으로 걸어 들어오며 귀에 휴대전화를 바짝 댄 혜수의 굳은 얼굴",
            "validator_reason": "이동 동작('걸어 들어오며')을 motion direction이 보존된 mid-stride 정지 자세로 수정",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "당직 책상에 앉은 채 고개를 들어 앞을 올려다보는 김형사",
            "based_on_beat": 1,
            "characters": [
              "김형사"
            ],
            "original_description": "당직 책상에 앉아 다가오는 혜수를 올려다보는 김형사",
            "validator_reason": "시간의 흐름을 나타내는 '다가오는' 표현을 제거하고 시선을 위로 향한 단일 정지 순간으로 수정",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "휴대전화 액정 화면을 앞으로 뻗은 채 고정된 혜수의 팔",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "original_description": "휴대전화 액정 화면을 김형사의 눈앞으로 불쑥 내민 순간의 혜수 팔",
            "validator_reason": "동작의 과정('불쑥 내민 순간')을 명확한 결과 상태 정지 자세('뻗은 채 고정된')로 수정",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "휴대전화 화면으로 시선을 고정한 채 입술을 삐죽인 상태인 김형사의 못마땅한 표정",
            "based_on_beat": 1,
            "characters": [
              "김형사"
            ],
            "original_description": "휴대전화 화면을 쳐다보며 입술을 삐죽이는 김형사의 못마땅한 표정",
            "validator_reason": "동시 진행형 동작('쳐다보며 삐죽이는')을 시선 고정과 결과 상태의 정지 자세로 수정",
            "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": [
              "검은 고양이"
            ],
            "original_description": "옥탑방 담벼락 위로 사뿐히 뛰어오른 순간의 검은 고양이",
            "validator_reason": "이동 동작을 mid-action(공중에 뜬 찰나)으로 명확히 시각화하여 freeze함",
            "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": [
              "수리영"
            ],
            "original_description": "감았던 눈을 번쩍 뜬 채 굳은 표정으로 주변을 살피는 수리영",
            "validator_reason": "'살피는'이라는 연속 탐색 동작을 한 방향을 주시하는 고정 상태로 변경했습니다.",
            "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": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "인형이 달린 백팩을 한쪽 어깨에 멘 채 현관문 밖으로 한 발을 내디딘 자세의 수리영",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "인형이 달린 백팩을 한쪽 어깨에 멘 채 현관을 막 나서는 순간의 수리영",
            "validator_reason": "'나서는'이라는 이동 동작을 모션 방향이 보존된 한 발을 내디딘 mid-action 자세로 구체화했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "욕실 거울 앞 세면대에서 양손으로 퍼 올린 물이 얼굴에 강하게 부딪혀 물방울이 사방으로 흩어지는 찰나의 수리영",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "욕실 거울 앞에서 세면대의 물을 양손으로 퍼 올려 얼굴에 끼얹는 순간의 수리영",
            "validator_reason": "물을 '끼얹는' 동작을 물방울이 튀는 접촉 찰나로 묘사하여 mid-action 시점을 명확히 했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "거울 속 반사된 수리영의 등 뒤 욕실 타일 벽면 위로 선명하게 나타난 붉은색 원 형태",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "등 뒤의 벽을 확인하기 위해 고개를 확 돌린 수리영의 긴장한 옆얼굴",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "붉은 원의 흔적 없이 깨끗한 욕실의 빈 타일 벽면",
            "based_on_beat": 3,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "거실 식탁에 놓인 액자 속 강민숙(민숙)과 수리영의 사진을 내려다보는 수리영",
            "based_on_beat": 3,
            "characters": [
              "수리영",
              "강민숙"
            ],
            "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": "능동적 타격의 접촉 지점과 피부 변형을 구체적으로 묘사하여 mid-impact 찰나를 보존했습니다.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 19,
        "scene_heading": "S#19. 마트 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "이른 아침 한산한 마트 안, 진열대 사이에서 주위를 유심히 살피는 수리영의 전신",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "진열대 앞에서 종이 박스를 안고 있는 마트 남자 직원 앞에 바짝 다가선 수리영의 측면",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "마트 남자 직원"
            ],
            "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": [
              "수리영"
            ],
            "original_description": "한 손으로 휴대전화를 귀에 바짝 댄 채 입술을 달싹이는 수리영의 옆얼굴",
            "validator_reason": "'입술을 달싹이는'은 반복적인 움직임을 나타내므로 한 찰나의 정지 상태인 '입을 살짝 벌리고 있는'으로 수정함.",
            "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": "형체를 식별할 수 없이 어두운 구역이 찍힌 CCTV 모니터 화면 클로즈업",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "어두운 화면을 응시하며 불안감에 굳은 수리영의 창백한 얼굴",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "한국인 남성 보안팀 직원을 향해 고개를 돌린 채 단호하게 입을 반쯤 연 혜수의 옆얼굴",
            "based_on_beat": 2,
            "characters": [
              "혜수",
              "한국인 남성 보안팀 직원"
            ],
            "original_description": "고개를 돌려 한국인 남성 보안팀 직원을 향해 단호하게 입을 여는 혜수의 옆얼굴",
            "validator_reason": "'고개를 돌리고 입을 여는' 연속 동작을 방지하기 위해 '고개를 돌린 채 입을 연' 단일 정지 자세로 수정했습니다.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 21,
        "scene_heading": "S#21. 경찰서 안 / 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": [
              "한국인 형사들",
              "수리영"
            ],
            "original_description": "사무실 밖으로 바쁘게 걸어 나가는 다수의 한국인 형사들의 뒷모습 너머로 덩그러니 남겨진 수리영",
            "validator_reason": "'걸어 나가는'이라는 연속 이동 동작을 걷는 자세의 mid-action 순간으로 고정함.",
            "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": []
          },
          {
            "shot_index": 8,
            "description": "바다 위 특정 해상 좌표가 붉은 점으로 표시된 모니터 지도 화면 클로즈업",
            "based_on_beat": 3,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "작은 메모지 위에 펜촉을 꾹 누르고 있는 수리영의 손",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "original_description": "작은 메모지에 지도 위 좌표의 숫자를 펜으로 꾹꾹 눌러 적는 수리영의 손",
            "validator_reason": "'적는'이라는 연속 동작을 펜촉을 종이에 누르고 있는 단일 순간으로 고정함.",
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "한 손은 주머니에 넣은 채, 다른 한 손으로 경찰서 출입문을 밀고 있는 수리영의 뒷모습",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "original_description": "메모지를 주머니에 쑤셔 넣으며 경찰서 출입문을 밀어 여는 수리영의 뒷모습",
            "validator_reason": "'넣으며 여는'이라는 두 동작의 동시 진행을 주머니에 손을 넣고 문을 미는 고정된 자세 하나로 통합함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 22,
        "scene_heading": "S#22. 경찰서 밖 / D",
        "shots": [
          {
            "shot_index": 1,
            "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": "해상 좌표가 붉은 점으로 뚜렷하게 표시된 PC방 모니터 화면 클로즈업",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "복합기에서 출력된 여러 장의 해상 지도 종이를 백팩 안으로 반쯤 밀어넣고 있는 수리영의 손",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "복합기에서 출력된 여러 장의 해상 지도 종이를 백팩 안으로 구겨 넣는 수리영의 손",
            "validator_reason": "연속적인 행동을 암시하는 '구겨 넣는' 표현을 종이가 가방에 반쯤 들어간 단일 정지 순간(mid-action)으로 교정함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 24,
        "scene_heading": "S#24. 해안가 / 소나기",
        "shots": [
          {
            "shot_index": 1,
            "description": "시커먼 먹구름이 낀 해안가 위로 번쩍이는 벼락이 내리친 순간의 어두운 풍경",
            "based_on_beat": 1,
            "characters": [],
            "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": [
              "수리영"
            ],
            "original_description": "인형이 달린 백팩을 멘 채, 손에 낡은 사진을 꽉 쥐고 엉망이 된 현관을 나서는 수리영의 뒷모습",
            "validator_reason": "이동 동작인 '나서는'을 한 찰나의 mid-action(문턱을 넘기 위해 발을 든 순간)으로 변환하여 모션 방향을 보존함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 26,
        "scene_heading": "S#26. 포구 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "짙은 안개가 자욱하게 깔린 텅 빈 포구의 갯바위 위에 웅크리고 앉은 수리영의 실루엣",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "수리영의 손안에서 혜수의 이름과 부재중 전화 알림이 떠오른 휴대전화 액정 화면 클로즈업",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "짙은 안개 속에서 포구 앞바다로 물살을 가르며 나아가는 낡은 배 한 척, 뱃머리에 하얀 물보라가 부서지는 순간",
            "based_on_beat": 2,
            "characters": [],
            "original_description": "짙은 안개를 헤치고 포구 앞바다로 진입하는 낡은 배 한 척",
            "validator_reason": "배가 진입하는 이동 동작을 물보라가 일어나는 mid-action 순간으로 고정함.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "밧줄을 포구 기둥에 한 바퀴 감은 채 양손으로 팽팽하게 당기고 있는 인우의 뒷모습, 허리가 굽혀진 자세",
            "based_on_beat": 2,
            "characters": [
              "인우"
            ],
            "original_description": "배에서 내려 밧줄을 기둥에 단단히 감아 묶는 인우의 뒷모습",
            "validator_reason": "'배에서 내려'와 '묶는' 두 연속된 동작이 섞여 있어, 기둥에 밧줄을 당기며 묶는 한 찰나로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "밧줄을 쥐고 선 인우를 바짝 올려다보는 수리영의 결연한 얼굴",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영을 무심하게 힐끗 내려다보는 인우의 굳은 표정",
            "based_on_beat": 2,
            "characters": [
              "인우",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "짙은 안개가 깔린 바다를 향해 선 채, 휴대전화를 입가에 대고 입술을 살짝 벌린 수리영의 옆모습",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "짙은 안개가 깔린 바다를 향해 선 채, 휴대전화를 입가에 대고 음성 메시지를 남기는 수리영의 옆모습",
            "validator_reason": "'메시지를 남기는'이라는 지속적인 행위를 입가에 폰을 대고 말하려는 정지된 찰나의 자세로 수정함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 27,
        "scene_heading": "S#27. 옥탑방 안 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "가재도구가 엉망으로 널브러진 어두운 옥탑방 거실, 휴대전화를 귀에 댄 채 미간을 찌푸린 혜수의 굳은 얼굴",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 28,
        "scene_heading": "S#28. 바다 + 갑판 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "해질 무렵 붉은 노을이 깔린 바다 위, 뱃머리 양옆으로 흰 물보라가 일며 전진 중인 낡은 소형 어선의 외부 원경",
            "based_on_beat": 1,
            "characters": [],
            "original_description": "해질 무렵 붉은 노을이 깔린 바다 위, 뱃머리로 물살을 가르며 나아가는 낡은 소형 어선의 외부 원경",
            "validator_reason": "연속된 이동 동작을 물보라 등 시각적 단서를 활용해 추진력을 띠고 있는 한 찰나로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "어선 갑판에 앉은 수리영이 서 있는 인우를 향해 바다 지도가 그려진 종이를 내민 채 팔을 뻗고 있는 측면",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영이 내민 지도를 내려다보며 미간을 깊게 찌푸린 인우의 굳은 얼굴 클로즈업",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "낡고 피 묻은 사진을 쥔 채 인우의 눈앞으로 쑥 뻗은 수리영의 손 클로즈업",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "눈앞의 사진을 보고 동공이 크게 확장된 채 굳어있는 인우의 당황한 얼굴 클로즈업",
            "based_on_beat": 2,
            "characters": [
              "인우"
            ],
            "original_description": "눈앞의 사진을 보고 두 눈이 크게 흔들리는 인우의 당황한 얼굴 클로즈업",
            "validator_reason": "'흔들리는'이라는 연속 움직임을 '확장된 채 굳어있는' 정적 상태로 수정하여 찰나 원칙 준수.",
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "인우의 얼굴을 뚫어지게 직시하는 수리영의 날카로운 눈매 클로즈업",
            "based_on_beat": 2,
            "characters": [
              "인우",
              "수리영"
            ],
            "original_description": "인우의 흔들리는 두 눈을 뚫어지게 직시하는 수리영의 날카로운 눈매 클로즈업",
            "validator_reason": "타겟 객체의 '흔들리는' 연속 동작 표현을 제거하고 시선이 고정된 상태만 보존함.",
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "갑판 바닥을 한쪽 발로 밀어내며 상체를 반쯤 일으킨 mid-action 자세로 멈춰 있는 인우의 전신",
            "based_on_beat": 3,
            "characters": [
              "인우"
            ],
            "original_description": "갑판 바닥을 발로 박차며 거칠게 상체를 일으킨 순간의 인우 전신",
            "validator_reason": "'박차며 일으킨 순간'의 두 동작 연속을 상체를 반쯤 일으킨 단일 mid-action 모먼트로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "조타실 문을 향해 달리는 도중 한쪽 발이 갑판에서 떨어져 허공에 뜬 mid-stride 자세의 인우 뒷모습",
            "based_on_beat": 3,
            "characters": [
              "인우"
            ],
            "original_description": "조타실 문을 향해 다급하게 뛰어가는 인우의 뒷모습",
            "validator_reason": "'뛰어가는' 이동 동작을 방향성과 추진력이 보존된 mid-stride 찰나 자세로 고정함.",
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "인우의 뒤를 쫓아 한쪽 발로 갑판 바닥을 밀어내고 다른 발은 앞으로 뻗은 mid-stride 자세의 수리영 전신",
            "based_on_beat": 3,
            "characters": [
              "인우",
              "수리영"
            ],
            "original_description": "인우의 뒤를 쫓아 갑판 바닥을 박차며 달리는 수리영의 전신",
            "validator_reason": "'박차며 달리는' 연속 동작을 추진 방향이 나타나는 한 순간의 정지 자세로 구체화함.",
            "character_ids": []
          },
          {
            "shot_index": 10,
            "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": [
              "수리영",
              "인우"
            ],
            "original_description": "인우를 향해 입을 크게 벌린 채 분노를 터뜨리는 수리영의 일그러진 얼굴",
            "validator_reason": "'터뜨리는'이라는 연속적인 감정 표출 과정을 입을 크게 벌린 고정된 표정으로 수정하여 한 찰나로 만듦.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "피 묻은 낡은 사진 속 어린 소녀의 형상을 손가락으로 꾹 누르고 있는 수리영의 손 클로즈업",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "핏기가 가신 채 차갑게 얼어붙은 인우의 사색이 된 얼굴 클로즈업",
            "based_on_beat": 1,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "인우의 어깨 너머 조타실 안쪽 벽면을 향해 시선이 고정된 채 두 눈을 크게 뜬 수리영의 충격받은 얼굴",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "낡은 조타실 나무 벽면 위로 빼곡하게 그려진 기이하고 붉은색의 원 형태들 클로즈업",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "충격에 휩싸여 미간을 찌푸린 채 몸이 뒤로 비스듬히 기울어진 수리영의 상체",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "충격에 휩싸여 미간을 찌푸린 채 몸이 뒤로 기울어진 수리영의 비틀거리는 상체",
            "validator_reason": "'비틀거리는'이라는 연속 동작을 몸이 뒤로 기울어진 찰나의 자세로 수정.",
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "몸이 뒤로 기울어진 수리영을 노려보는 인우의 서늘한 눈빛 클로즈업",
            "based_on_beat": 2,
            "characters": [
              "인우",
              "수리영"
            ],
            "original_description": "비틀거리는 수리영을 노려보는 인우의 서늘한 눈빛 클로즈업",
            "validator_reason": "'비틀거리는'이라는 연속 동작을 몸이 기울어진 정지 상태로 수정.",
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "눈이 감긴 채 인우의 어깨 위로 쓰러져 늘어진 수리영의 창백한 옆얼굴",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "인우"
            ],
            "original_description": "눈이 감긴 채 인우의 어깨 위로 툭 무너져 내린 수리영의 창백한 옆얼굴",
            "validator_reason": "'무너져 내린'이라는 하강 과정을 이미 어깨에 쓰러져 늘어진 고정된 결과 상태로 수정.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 30,
        "scene_heading": "S#30. 바다 / 해질 무렵",
        "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": []
          }
        ]
      }
    ],
    "total_shots": 145,
    "changed_shots": 66
  },
  "step_id": "shot_validator",
  "run_id": "399bed39-b290-40e9-b144-a51a41ae615f",
  "resolved_model": "gemini-pro",
  "updated_at": "2026-07-23T01:29:03.909065+00:00",
  "schema_version": 1,
  "config_hash": "99914b932bd37a50",
  "project_config_snapshot": {}
}