{
  "status": "completed",
  "completed_count": 30,
  "applicable_count": 30,
  "failed_count": 0,
  "data": {
    "scenes": [
      {
        "scene_index": 1,
        "scene_heading": "S#1. 숲속 / 해 질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "30대 한국인 남성이 한쪽 신발이 벗겨진 채 우거진 수풀 속에서 한쪽 발이 공중에 뜬 달리기 도중의 역동적 찰나를 담은 전신.",
            "based_on_beat": 1,
            "characters": [
              "30대 한국인 남성"
            ],
            "original_description": "30대 한국인 남성이 한쪽 신발이 벗겨진 채 우거진 수풀 속에서 뛰어가는 자세로 멈춘 전신.",
            "validator_reason": "이동 동작에서 인위적인 정지를 뜻하는 단어('멈춘')를 피하고, 추진력 방향이 보존된 mid-action 찰나로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "30대 한국인 남성의 허벅지에 깊게 파인 커다란 이빨 자국 위로 붉은 피가 맺혀 있는 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "30대 한국인 남성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "겁에 질린 30대 한국인 남성의 두 눈이 크게 떠진 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "30대 한국인 남성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "검은 인영이 공중에 뜬 채 30대 한국인 남성을 향해 몸을 날린 체공 찰나.",
            "based_on_beat": 1,
            "characters": [
              "검은 인영",
              "30대 한국인 남성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "검은 인영이 바닥에 쓰러진 30대 한국인 남성의 가슴 위를 강하게 짓누른 채 입을 크게 벌리고 있는 찰나.",
            "based_on_beat": 1,
            "characters": [
              "검은 인영",
              "30대 한국인 남성"
            ],
            "original_description": "검은 인영이 바닥에 쓰러진 30대 한국인 남성의 가슴 위를 짓누르며 입을 크게 벌린 정지 순간.",
            "validator_reason": "능동적인 힘이 작용하는 접촉 씬에서 불필요하게 정지를 강조하는 '정지 순간' 표현을 제거하고, 압박하는 상태 그대로의 찰나로 수정했습니다.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 2,
        "scene_heading": "S#2. 도시 뒷골목 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "희미한 가로등 불빛 아래, 20대 한국인 남성과 20대 한국인 여성이 전봇대에 밀착한 채 마주 선 모습.",
            "based_on_beat": 1,
            "characters": [
              "20대 한국인 남성",
              "20대 한국인 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "어두운 그림자 속에서 붉게 빛나는 20대 한국인 남성의 두 눈동자 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "20대 한국인 남성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "20대 한국인 남성의 입이 20대 한국인 여성의 목덜미를 꽉 문 채 멈춘 측면.",
            "based_on_beat": 1,
            "characters": [
              "20대 한국인 남성",
              "20대 한국인 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "20대 한국인 여성이 바닥에 축 늘어진 채 쓰러져 있고, 그 위로 피 묻은 입술의 20대 한국인 남성이 서 있는 구도.",
            "based_on_beat": 1,
            "characters": [
              "20대 한국인 여성",
              "20대 한국인 남성"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 3,
        "scene_heading": "S#3. 현장 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "30대 한국인 남성 경찰이 야외 공터에 쳐진 노란색 폴리스 라인 테이프를 팽팽하게 쥔 채 서 있는 모습.",
            "based_on_beat": 1,
            "characters": [
              "30대 한국인 남성 경찰"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "40대 한국인 남성 감식반원 두 명이 흰 천이 덮인 들것의 양끝을 허리 높이까지 들어 올린 정지 순간.",
            "based_on_beat": 1,
            "characters": [
              "40대 한국인 남성 감식반원 두 명"
            ],
            "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": [
              "수리영"
            ],
            "original_description": "수리영이 방문을 열고 나와 양팔을 머리 위로 뻗은 채 기지개를 켠 자세로 멈춘 전신.",
            "validator_reason": "'문을 열고 나와'라는 시간 순차적 동작을 제거하고 단일 정지 자세로 수정함.",
            "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": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "수리영이 선 채로 고개를 숙여 민숙의 어깨 쪽으로 얼굴을 가까이 댄 채 미소 띤 측면.",
            "based_on_beat": 2,
            "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": "낮 시간대, 해안가 도로에서 수리영이 이어폰을 꽂은 채 자전거 안장에 앉아 한쪽 무릎을 굽히며 페달을 내리누르는 중간의 역동적인 측면, 바람에 머리카락과 옷깃이 뒤로 날리는 상태.",
            "based_on_beat": 0,
            "characters": [
              "수리영"
            ],
            "original_description": "낮 시간대, 수리영이 귀에 이어폰을 꽂은 채 자전거 안장에 앉아 앞을 향해 고개를 든 정지 측면.",
            "validator_reason": "자전거를 타고 달리는 이동 동작이므로 정지(motionless)가 아닌 페달을 밟는 중간(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": "로트와일러가 바닥에 배를 깔고 엎드려 시선을 위로 치켜뜬 모습.",
            "based_on_beat": 1,
            "characters": [
              "로트와일러"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "50대 한국인 남성 수의사가 엎드린 로트와일러의 엉덩이 근육에 주사기 바늘을 깊이 찔러 넣은 찰나.",
            "based_on_beat": 1,
            "characters": [
              "50대 한국인 남성 수의사",
              "로트와일러"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영이 갇혀 있는 개들을 향해 양어깨를 축 늘어뜨린 상체.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영이 스마트폰을 한쪽 귀에 바짝 댄 채 미간을 찌푸린 얼굴.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "수리영이 바닥에 쪼그려 앉아 작은 개의 등 위로 연고가 묻은 손가락을 댄 채 멈춘 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "작은 개"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 8,
        "scene_heading": "S#8. 번화가·대형 마트 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "네온사인이 켜진 해질 무렵의 번화가, 수리영이 노점상들 사이에서 자전거 핸들을 꽉 쥔 채 상체를 앞으로 숙이고 한쪽 페달을 힘껏 밟아 내리는 중간 찰나의 전신.",
            "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": "수리영과 유니폼을 입은 40대 한국인 여성 마트 직원이 마주 선 채 눈을 맞춘 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "40대 한국인 여성 마트 직원"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "남자 직원이 종이상자를 가슴 높이로 든 채 수리영을 향해 고개를 돌린 측면.",
            "based_on_beat": 1,
            "characters": [
              "남자 직원",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "마트 밖 야외 조명 아래, 수리영이 스마트폰 화면을 내려다보며 굳은 표정으로 서 있는 상체.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "마트 밖 야외 조명 아래로 나온 수리영이 스마트폰 화면을 내려다보며 굳은 표정으로 서 있는 상체.",
            "validator_reason": "과거 시제의 움직임을 암시할 수 있는 '나온'이라는 표현을 제거하여 완벽한 정지 상태로 교정했습니다.",
            "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": 2,
            "characters": [
              "남자",
              "여자"
            ],
            "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": "수리영이 얇은 강판 스트링거와 파이프 난간으로 이루어진 건물 외벽 철제 증축 계단에서 위쪽 발판에 한 발을 딛고 다른 발은 허공에 뜬 채 급히 오르는 mid-action의 역동적인 전신.",
            "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": []
          },
          {
            "shot_index": 4,
            "description": "어둠 속에서 옥탑방의 현관 철문이 안쪽으로 절반쯤 열려 있는 정적인 풍경.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 12,
        "scene_heading": "S#12. 옥탑방 안 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "수리영이 옥탑방 거실 한가운데 서서 끓다 식은 냄비가 놓인 주방 쪽을 향해 고개를 돌린 정면.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "수리영이 자신의 방문 손잡이를 꽉 쥔 채 멈춰 선 뒷모습.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영 방 바닥에 흥건하게 고인 붉은 핏자국 클로즈업.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "바닥의 붉은 핏자국이 닫힌 창문 커튼 아래까지 길게 이어진 정물 구도.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영이 한 손으로 창문 커튼의 끝단을 꽉 쥔 채 어깨를 잔뜩 움츠린 측면.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "커튼 뒤, 살점이 뜯긴 어깨 위로 피가 묻은 채 앉아 고개를 푹 수그린 민숙의 상체.",
            "based_on_beat": 1,
            "characters": [
              "민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "수리영이 두 눈을 커다랗게 뜬 채 양손으로 입을 틀어막은 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "민숙의 쇄골 부위에 깊게 파인 거친 잇자국 위로 붉은 피가 맺혀 있는 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "수리영이 겁에 질린 표정으로 뒤로 물러나다 바닥에 엉덩이가 닿기 직전 반쯤 주저앉은 mid-action 자세.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 겁에 질린 표정으로 뒤로 주춤하며 바닥에 주저앉은 자세.",
            "validator_reason": "주춤하며 주저앉는 연속 동작을 뒤로 물러나다 넘어지는 순간의 mid-action 자세로 고정함.",
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "수리영이 떨리는 손가락으로 스마트폰 화면을 꾹 누른 상태의 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "수리영이 스마트폰을 귀에 바짝 댄 채 눈물이 맺힌 눈으로 앞을 주시하는 얼굴.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 12,
            "description": "바닥에 늘어진 민숙의 핏기 없는 손가락 사이에 구겨진 사진 한 장이 쥐어져 있는 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 13,
            "description": "민숙의 손목 안쪽에 새겨진 원형 표식이 짙은 붉은색을 띤 상태의 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 14,
            "description": "수리영 방 침대 위쪽 벽면에 붉은색 원형 자국이 선명하게 그려져 있는 정적 풍경.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 15,
            "description": "수리영이 두 눈을 질끈 감고 입을 크게 벌린 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "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": "수리영이 옥탑방 아래 골목에 멈춰 서서 초점 없는 눈으로 허공을 응시하는 상체.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "경찰차 문 옆에 선 혜수가 수리영 쪽을 향해 고개를 돌린 측면.",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "혜수가 수리영의 양어깨를 두 손으로 단단히 쥔 채 눈을 맞춘 구도.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영이 창백한 얼굴로 혜수를 올려다보며 입술을 살짝 벌린 정지 순간.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "혜수가 눈썹을 치켜올리고 입을 반쯤 벌린 채 굳어버린 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "혜수와 김형사가 철제 증축 계단에서 윗 발판으로 도약하듯 한쪽 무릎을 깊게 굽힌 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": [
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "혜수가 열린 현관문 너머에 선 수리영을 향해 고개를 돌린 측면.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영이 자신의 방 문턱에 선 채 두 눈을 크게 뜬 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "핏자국 하나 없이 깨끗하게 정돈된 수리영 방 내부와 굳게 닫힌 커튼이 보이는 정적 구도.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영이 멍한 표정으로 텅 빈 방 안을 응시하며 굳어 있는 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "거실 식탁 위가 찻잔 없이 말끔하게 비워져 있는 정지 풍경.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "수리영이 텅 빈 식탁 모서리에 손을 얹은 채 허탈한 표정으로 멈춰 선 상체.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "김형사가 턱을 치켜들고 눈살을 찌푸린 채 수리영을 내려다보는 측면.",
            "based_on_beat": 3,
            "characters": [
              "김형사",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "혜수가 날카로운 눈빛으로 김형사를 노려보며 턱을 당긴 얼굴 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "혜수",
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "혜수가 수리영의 어깨를 한 손으로 감싸 쥐고 부드러운 시선으로 바라보는 구도.",
            "based_on_beat": 3,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "수리영 방 한구석에 놓인 백팩과 곰인형이 비스듬하게 기대어져 있는 정물 구도.",
            "based_on_beat": 3,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 15,
        "scene_heading": "S#15. 해안가. 버스정류장 부근 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 밤바다를 배경으로 수리영이 버스정류장 벤치에 등을 기댄 채 허공을 응시하는 상체.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "혜수가 캔 음료를 쥔 손을 벤치에 앉은 수리영의 가슴 앞까지 내민 정지 순간.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영이 벤치 앞에서 허리를 곧게 편 채 혜수와 마주 서 있는 전신.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "혜수"
            ],
            "original_description": "수리영이 벤치에서 허리를 곧게 펴고 일어나 혜수와 마주 선 전신.",
            "validator_reason": "'일어나'와 '마주 선'의 순차적 동작이 섞여 있어 마주 서 있는 단일 정지 상태로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "멀리 떨어진 어둠 속에서 가로등 아래 멈춰 선 수리영과 혜수의 뒷모습을 바라본 POV 구도.",
            "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": "원문의 '들어오면서'라는 이동 동작의 추진력을 보존하기 위해 정지 자세를 mid-stride 모먼트로 재작성함.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "김형사가 사무실 책상 앞에 앉아 혜수를 향해 고개를 돌린 상체.",
            "based_on_beat": 1,
            "characters": [
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "혜수가 화면이 켜진 스마트폰을 김형사의 얼굴 높이로 바짝 내민 측면.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "혜수가 미간을 찌푸리고 단호한 눈빛으로 허공을 노려보는 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 17,
        "scene_heading": "S#17. 옥탑방 / 동틀무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "푸르스름한 새벽빛 아래, 낡은 옥탑방 창문 틈으로 희미한 불빛이 새어 나오는 정적 풍경.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "어둠이 깔린 담장 위에 선 검은 고양이가 불 켜진 옥탑방 쪽을 향해 고개를 돌린 측면.",
            "based_on_beat": 1,
            "characters": [
              "검은 고양이"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "검은 고양이가 담장 아래를 향해 네 발을 허공으로 쭉 뻗은 체공 찰나.",
            "based_on_beat": 1,
            "characters": [
              "검은 고양이"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 18,
        "scene_heading": "S#18. 안방 안 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "침대 모서리에 머리를 기댄 채 두 눈을 크게 뜬 수리영의 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "침대 모서리에 머리를 기댄 채 눈을 감고 있던 수리영이 두 눈을 번쩍 뜬 얼굴 클로즈업.",
            "validator_reason": "'감고 있던' 과거 상태와 '눈을 뜬' 현재 상태가 섞여 있어, 눈을 뜬 하나의 정지된 순간으로 수정했습니다.",
            "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": "'방 안으로 들어온'이라는 선행 동작을 삭제하고 커튼을 젖힌 결과 상태의 한 순간만 남겼습니다.",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영이 한 손으로 스마트폰을 귀에 바짝 대고 초조한 표정으로 멈춰 선 상체.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영의 한 손이 인형이 달린 백팩의 어깨끈을 꽉 움켜쥔 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "욕실 세면대 앞에 선 수리영이 물기가 묻은 얼굴로 거울 속 자신을 응시하는 상체.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "거울에 비친 욕실 타일 벽면 한가운데 붉은색 원형 표식이 선명하게 드러난 정적 구도.",
            "based_on_beat": 3,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "눈을 크게 뜬 채 욕실 벽 쪽으로 고개를 돌린 상태로 경직된 수리영의 측면.",
            "based_on_beat": 3,
            "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": [
              "수리영"
            ],
            "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": "마트 밖, 건물 외벽 높은 곳에 매달린 CCTV 카메라를 향해 수리영이 손가락을 곧게 뻗어 가리킨 뒷모습.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "수리영이 스마트폰을 한쪽 귀에 바짝 밀착시킨 채 굳은 표정으로 허공을 응시하는 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 20,
        "scene_heading": "S#20. 마트 총무과 / 실내",
        "shots": [
          {
            "shot_index": 1,
            "description": "30대 한국인 남성 보안 직원이 컴퓨터 모니터 앞에 앉아 있고, 그 옆에 선 혜수와 뒤에 선 수리영이 화면을 향해 상체를 기울인 구도.",
            "based_on_beat": 1,
            "characters": [
              "30대 한국인 남성 보안 직원",
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "모니터 화면 속, 어두운 화질로 인해 두 사람의 형체가 까만 실루엣으로 뭉개져 보이는 2D 정지 이미지.",
            "based_on_beat": 1,
            "characters": [
              "두 사람"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영이 두 손을 가슴 앞으로 모아 꽉 쥔 채 초조한 눈빛으로 모니터를 내려다보는 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "혜수가 고개를 옆으로 돌린 채 앉아 있는 30대 한국인 남성 보안 직원의 얼굴을 똑바로 바라보는 측면.",
            "based_on_beat": 2,
            "characters": [
              "혜수",
              "30대 한국인 남성 보안 직원"
            ],
            "original_description": "혜수가 고개를 옆으로 돌려 앉아 있는 30대 한국인 남성 보안 직원의 얼굴을 똑바로 바라보는 측면.",
            "validator_reason": "'고개를 돌려 바라보는'은 연속된 두 동작으로 해석될 수 있어, '돌린 채'라는 고정 상태로 수정함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 21,
        "scene_heading": "S#21. 경찰서 안 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "경찰서 사무실 출입구를 통과해 안으로 들어선 혜수와 수리영이 나란히 멈춰 선 전신.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "김형사가 빽빽한 글씨가 적힌 종이 서류 뭉치를 쥔 손을 혜수의 가슴 앞까지 내민 정지 순간.",
            "based_on_beat": 1,
            "characters": [
              "김형사",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "혜수가 자신의 손목시계를 내려다보며 미간을 찌푸린 난감한 표정의 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "경찰 제복을 입은 다수의 남녀가 사무실 밖을 향해 걷는 자세에서 한쪽 발이 허공에 뜬 mid-action 상태로 멈춘 어수선한 배경 속, 빈 책상 앞 의자에 덩그러니 앉은 수리영의 정적 구도.",
            "based_on_beat": 1,
            "characters": [
              "경찰 제복을 입은 다수의 남녀",
              "수리영"
            ],
            "original_description": "경찰 제복을 입은 다수의 남녀가 사무실 밖을 향해 빠르게 걸음을 옮기는 어수선한 배경 속, 빈 책상 앞 의자에 덩그러니 앉은 수리영의 정적 구도.",
            "validator_reason": "'빠르게 걸음을 옮기는'이라는 동적 표현을 이동 방향성이 보존된 mid-action 정지 순간으로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "책상 위, 목과 어깨의 살점이 뜯겨나간 시신이 찍힌 끔찍한 현장 사진 여러 장이 어지럽게 널려 있는 정물.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영이 책상 위 사진들을 내려다보며 두 눈을 커다랗게 뜨고 입을 반쯤 벌린 경악한 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "책상 위 컴퓨터 모니터 화면 정중앙에 파란색 바다 배경과 붉은색 좌표 텍스트 팝업창이 떠 있는 2D 이미지.",
            "based_on_beat": 3,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "수리영이 텅 빈 사무실 주변을 살피기 위해 눈동자를 옆으로 향한 채 고개를 돌린 고정된 측면.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 눈동자를 굴려 텅 빈 사무실 주변을 살피기 위해 고개를 옆으로 돌린 측면.",
            "validator_reason": "'눈동자를 굴려'라는 연속적인 동작 표현을 시선이 고정된 정적 상태로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "수리영의 검지손가락이 컴퓨터 마우스의 왼쪽 버튼을 꾹 누른 상태로 멈춘 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "수리영이 한 손으로 펜을 꽉 쥔 채 펜촉이 작은 메모지 위 복잡한 좌표 숫자 끝에 닿아 있는 손 클로즈업.",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 한 손으로 펜을 꽉 쥔 채 작은 메모지 위에 복잡한 좌표 숫자를 적고 있는 손 클로즈업.",
            "validator_reason": "'적고 있는'이라는 연속 동작을 펜이 종이에 닿아 있는 정지 순간으로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "수리영이 반으로 접은 메모지를 자신의 바지 주머니 안으로 깊숙이 밀어 넣은 상태의 손.",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 12,
            "description": "수리영이 사무실 출입구 쪽을 향해 발걸음을 떼며 한쪽 발이 바닥에서 살짝 들린 mid-stride 상태의 뒷모습 전신.",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 의자에서 일어나 사무실 출입구 쪽을 향해 발걸음을 떼려는 찰나의 뒷모습 전신.",
            "validator_reason": "'일어나'와 '발걸음을 떼려는'이라는 연속된 시간 흐름을 이동 방향성이 보존된 mid-stride 정지 순간으로 단일화함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 22,
        "scene_heading": "S#22. 경찰서 밖 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "경찰서 건물 앞, 수리영이 자전거 안장에 엉덩이를 걸친 채 한쪽 발을 페달에 올린 모습.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "경찰서 건물 앞, 수리영이 자전거 안장에 엉덩이를 걸친 채 한쪽 발을 페달에 올린 정지 순간.",
            "validator_reason": "불필요한 '정지 순간'이라는 메타 표현을 제거하여 순수한 시각적 상태만 남김.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "수리영이 상체를 자전거 핸들 쪽으로 잔뜩 숙인 채 한쪽 무릎을 아래로 굽혀 페달을 밟는(mid-pedal) 자세의 측면, 옷자락과 머리카락이 진행 반대 방향으로 휘날리는 모습.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 상체를 자전거 핸들 쪽으로 잔뜩 숙인 채 두 다리에 힘을 주어 페달을 밟은 자세로 멈춘 측면.",
            "validator_reason": "자전거로 달리는 이동 동작이므로 '멈춘' 표현을 피하고, 추진력과 방향성이 보존된 mid-action 자세로 수정함.",
            "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": "컴퓨터 모니터 화면 속, 붉은색 위치 마커가 찍힌 정밀한 해안가 지도가 표시된 2D 정지 이미지.",
            "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": []
          }
        ]
      },
      {
        "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": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "세찬 빗줄기 속 해안도로 한가운데서 수리영이 자전거 핸들을 꽉 쥔 채 한쪽 페달을 강하게 밟아 내리는 mid-pedal 자세로, 바퀴에서 거센 물보라가 허공에 튀어 오르는 순간의 전신.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "세찬 빗줄기 속 해안도로 한가운데서 수리영이 자전거 핸들을 꽉 쥔 채 거세게 물보라를 일으키며 달리는 자세의 전신.",
            "validator_reason": "자전거로 이동하는 동작의 추진력과 방향성을 보존하기 위해 페달을 밟는 mid-action 찰나로 구체화했습니다.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 25,
        "scene_heading": "S#25. 옥탑방 안 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "열린 옥탑방 현관문 틈으로, 바닥에 나뒹구는 식탁 의자들과 사방에 어지럽게 흩어진 가재도구들이 보이는 정적 구도.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "수리영이 현관 문턱에 멈춰 선 채 한 손으로 자신의 가슴을 강하게 움켜쥐고 숨을 헐떡이는 상체.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "열린 방문 너머 벽면 한가운데, 붉은색으로 칠해진 거친 원형 자국 정중앙에 끝이 낡은 사진 한 장이 박혀 있는 정물.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "수리영이 벽면 앞까지 바짝 다가가 사진을 향해 한쪽 손을 곧게 뻗은 측면.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영의 손가락 사이에 쥐어진 낡은 사진 속, 지붕 위에 둥근 원이 달린 시골 식당 앞에 12살 가량의 어린 여자아이 둘이 나란히 앉아 있는 2D 이미지 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "12살 가량의 어린 여자아이 둘"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "낡은 사진을 눈앞에 든 수리영이 두 눈을 커다랗게 뜨고 충격에 휩싸인 채 굳어버린 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "수리영이 어질러진 방 안 침대 가장자리에 힘없이 털썩 주저앉은 채 고개를 푹 수그린 자세.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "등에 백팩을 멘 수리영이 구겨진 사진을 꽉 쥔 주먹을 허벅지 옆에 단단히 붙인 채, 한 발은 열린 현관문 밖에 내딛고 다른 발은 문턱 안쪽에 남긴 뒷모습.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "등에 백팩을 멘 수리영이 구겨진 사진을 꽉 쥔 주먹을 허벅지 옆에 단단히 붙인 채 열린 현관문 밖으로 나서는 뒷모습.",
            "validator_reason": "밖으로 나가는 이동 동작을 한 찰나의 mid-step 자세로 고정해 motion direction을 보존했습니다.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 26,
        "scene_heading": "S#26. 포구 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "짙은 안개가 두껍게 깔려 시야가 차단된 텅 빈 포구의 고요한 풍경.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "수리영이 포구 구석의 거친 갯바위 위에 두 무릎을 모으고 앉아 멍한 시선으로 안개 낀 바다를 응시하는 전신.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영의 손에 들린 스마트폰 화면 중앙에 '혜수 이모'라는 글자가 선명하게 떠 있는 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "짙은 안개 속에서 흐릿한 윤곽을 드러낸 낡은 어선 한 척이 포구 콘크리트 바닥 쪽에 정박해 있는 풍경.",
            "based_on_beat": 2,
            "characters": [],
            "original_description": "짙은 안개 속에서 흐릿한 윤곽을 드러낸 낡은 어선 한 척이 포구 콘크리트 바닥 쪽을 향해 다가와 멈춘 풍경.",
            "validator_reason": "다가와서 멈추는 두 동작의 연속적 묘사를 정박한 고정 상태 하나로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "인우가 배 갑판 위에서 두꺼운 정박용 밧줄을 양손으로 단단히 쥔 채 상체를 숙인 정지 순간.",
            "based_on_beat": 2,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영이 정박한 배 앞 콘크리트 바닥에 선 채, 갑판 위의 인우를 올려다보는 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "인우"
            ],
            "original_description": "수리영이 갯바위에서 일어나 정박한 배 앞까지 걸음을 옮긴 뒤 갑판 위의 인우를 올려다보는 구도.",
            "validator_reason": "일어나서 걷고 올려다보는 순차적 시간 진행을 배 앞에 서서 올려다보는 하나의 정지 상태로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "인우가 무심하고 차가운 눈빛으로 턱을 아래로 당긴 채 수리영을 힐끗 내려다보는 얼굴.",
            "based_on_beat": 3,
            "characters": [
              "인우",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "수리영이 배 아래에 선 채 두 손을 가슴 앞으로 간절하게 모아 쥐고 인우의 눈을 뚫어지게 응시하는 상체.",
            "based_on_beat": 3,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "인우가 고민하듯 고개를 한쪽으로 살짝 기울인 채 입술을 비죽 내민 측면.",
            "based_on_beat": 3,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "수리영이 짙은 안개가 낀 바다 쪽으로 몸을 돌린 채 스마트폰 하단 마이크를 입술 근처에 바짝 댄 측면.",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "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": 2,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "두 눈을 크게 뜬 채 당황하여 굳어버린 인우의 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "인우"
            ],
            "original_description": "인우가 사진을 본 뒤 두 눈을 크게 뜬 채 당황하여 굳어버린 얼굴 클로즈업.",
            "validator_reason": "'본 뒤'라는 시간 순서 표현을 제거하고 단일 결과 상태로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영의 손가락이 사진 속 작게 적힌 글자를 가리킨 채 멈춘 손 클로즈업.",
            "based_on_beat": 3,
            "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": [
              "수리영"
            ],
            "original_description": "수리영이 인우를 잡기 위해 앞을 향해 한쪽 발을 거칠게 내디딘 역동적인 정지 자세.",
            "validator_reason": "정지 자세라는 모호한 표현 대신, 이동 방향의 추진력이 실린 mid-action 찰나로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 8,
            "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": "수리영의 주관적 시야 속, 조타실 유리창과 벽면에 붉은색 원형 표식들이 어지럽게 겹쳐 떠 있는 기괴한 2D 환각 이미지.",
            "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": []
          }
        ]
      },
      {
        "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": "배가 이동하는 상황이므로 '정지된' 표현을 제외하고, 선수 주변에 일어나는 물살로 배의 추진력을 보존하여 묘사함.",
            "character_ids": []
          }
        ]
      }
    ],
    "total_shots": 172,
    "changed_shots": 35
  },
  "step_id": "shot_validator",
  "run_id": "88e2e20f-1b60-4ce8-bd62-8f2e81cb0d78",
  "resolved_model": "gemini-pro",
  "updated_at": "2026-07-08T07:36:45.233095+00:00",
  "schema_version": 1,
  "config_hash": "99914b932bd37a50",
  "project_config_snapshot": {}
}