{
  "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": "이동 동작의 freeze 시 '멈춘'과 같은 정지 강조 표현을 피하고 추진력을 보존하는 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": [
              "검은 실루엣의 한국인 남자",
              "겁에 질린 남자"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "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": []
          },
          {
            "shot_index": 4,
            "description": "한국인 여자가 짙은 그림자가 깔린 바닥에 눈을 감고 늘어진 상태로 멈춘 전신.",
            "based_on_beat": 1,
            "characters": [
              "한국인 여자"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 3,
        "scene_heading": "S#3. 현장 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "폴리스 라인이 쳐진 사건 현장, 바닥에 놓인 시신 수거용 천 가장자리를 쥐고 있는 경찰과 주변에 늘어선 경찰들의 모습. 차분한 해안가 리얼리즘이 묻어나는 풍경.",
            "based_on_beat": 1,
            "characters": [
              "경찰",
              "경찰들"
            ],
            "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": 1,
            "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": "인물이 실제로 멈춘 상황이 아니므로 인위적인 '멈춘' 표현을 제거하고, 기지개를 켜는 중간(mid-action) 자세로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "민숙의 손가락이 TV 리모컨의 전원 버튼을 꾹 누른 순간의 손 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "식탁에 앉은 수리영이 약초 달인 물이 담긴 컵을 입술에 댄 채 위를 치켜뜬 모습.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "식탁 맞은편에 서서 수리영을 내려다보며 희미한 미소를 띤 민숙의 얼굴.",
            "based_on_beat": 2,
            "characters": [
              "민숙",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "현관 바닥에 앉아 양손으로 운동화 끈을 쥐고 있는 수리영의 등.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "현관 바닥에 주저앉아 운동화 끈을 쥔 채 멈춘 수리영의 등.",
            "validator_reason": "인물이 실제로 멈춘 상황이 아니므로 '멈춘' 표현을 제거하고, 신발 끈을 쥔 자세만으로 찰나를 묘사했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "민숙의 손목 피부 위에 작은 원형 표식이 뚜렷하게 새겨진 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "민숙"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 6,
        "scene_heading": "S#6. 해안가 도로 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "차가운 해무가 낀 해안가 도로 위, 이어폰을 낀 수리영이 자전거 안장에 앉아 한쪽 무릎을 구부려 페달을 밟는 중간 동작을 취하고 머릿결이 뒤로 날리는 측면 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "차가운 해무가 낀 해안가 도로 위, 이어폰을 낀 수리영이 자전거 안장에 앉아 핸들을 쥔 채 멈춰 선 측면 구도.",
            "validator_reason": "원문에 자전거로 달리는 이동 동작이 명시되어 있으므로, 멈춰 선 자세가 아닌 페달을 밟는 중간 동작(mid-action)으로 추진력을 보존하도록 수정했습니다.",
            "character_ids": []
          }
        ]
      },
      {
        "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": []
          }
        ]
      },
      {
        "scene_index": 8,
        "scene_heading": "S#8. 번화가·대형 마트 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "네온사인과 노점상 사이 짙은 그림자가 깔린 번화가, 수리영이 자전거 안장에 앉아 한쪽 무릎을 굽혀 페달을 밟고 있는 mid-action 순간의 전신, 옷자락과 머리카락이 이동 반대 방향으로 흩날리는 모습.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "네온사인과 노점상 사이 짙은 그림자가 깔린 번화가, 수리영이 자전거 페달에 발을 올린 채 멈춰 선 전신.",
            "validator_reason": "원문의 자전거를 모는 추진 동작이 정지 상태로 잘못 묘사되어, 이동 방향과 역동성을 보존하는 mid-action 순간으로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "밝은 조명의 마트 내부, 수리영이 작업복을 입은 40대 한국인 여직원과 마주 선 구도.",
            "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": []
          }
        ]
      },
      {
        "scene_index": 9,
        "scene_heading": "S#9. 해안가 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "달빛 섞인 황금빛이 비치는 어두운 해안도로, 수리영이 자전거 핸들을 꽉 쥐고 한쪽 무릎을 굽혀 페달을 밟아 내리며 몸을 앞으로 숙인 찰나의 실루엣.",
            "based_on_beat": 1,
            "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": 2,
            "characters": [
              "남자"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "창문 유리에 맺힌 2D 평면 그림자. 한 형체가 다른 형체의 어깨 쪽으로 고개를 꺾어 덮친 실루엣 형태.",
            "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": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "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": "가스레인지 위에 놓인 냄비 뚜껑 틈으로 굳은 듯 멈춘 하얀 김. 거실에는 켜진 TV 화면의 푸른 불빛이 맺힌 정물 상태.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "거실 식탁 위에 낡은 찻잔 두 개가 놓여 있고, 그중 하나가 바닥에 옆으로 엎어져 있는 정적 구도.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "수리영의 손이 자신의 어두운 방문 손잡이를 꽉 쥔 채 멈추고, 반쯤 열린 틈으로 짙은 그림자가 보이는 찰나.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영의 방바닥에 붉은 피가 흥건하게 고여 있고, 피 묻은 발자국이 창가 커튼 쪽으로 이어진 바닥 클로즈업.",
            "based_on_beat": 1,
            "characters": [],
            "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": "충격에 휩싸인 수리영이 두 눈을 크게 뜬 채, 한쪽 발을 뒤로 반쯤 뺀 주춤한 자세로 굳어버린 전신.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "충격에 휩싸인 수리영이 두 눈을 크게 뜬 채 한쪽 발을 뒤로 빼며 주춤하고 굳어버린 전신.",
            "validator_reason": "'빼며 주춤하고'라는 시간 연속적 묘사를 '반쯤 뺀 주춤한 자세'의 단일 찰나 상태로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "수리영의 가늘게 떨리는 손가락이 켜진 스마트폰 액정 화면에 닿은 채 멈춘 클로즈업.",
            "based_on_beat": 2,
            "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": [],
            "character_ids": []
          },
          {
            "shot_index": 14,
            "description": "수리영이 양손으로 자신의 머리를 감싼 채 입을 크게 벌리고 허공을 향해 얼어붙은 비명의 찰나.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 13,
        "scene_heading": "S#13. 옥탑방 외곽 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 밤, 수리영이 옥탑방 외부 계단을 밟고 급하게 내려오며 한 발이 공중에 떠 있는 전신.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "경광등 불빛이 번쩍이는 골목길, 열린 경찰차 문을 잡고 한 발을 아스팔트 바닥에 디딘 채 서 있는 혜수의 측면.",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "original_description": "경광등 불빛이 번쩍이는 골목길, 경찰차 문을 열고 한 발을 아스팔트 바닥에 디딘 채 멈춘 혜수의 측면.",
            "validator_reason": "'문을 열고'라는 선행 동작과 '디딘 채'라는 후행 동작이 연결된 것을 피하기 위해 열린 문을 잡고 있는 단일 정지 상태로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영이 초점 잃은 눈으로 허공을 멍하니 응시하며 나무토막처럼 굳어 있는 상체.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "혜수가 수리영의 양어깨를 두 손으로 단단히 잡은 채 심각한 표정으로 마주 선 정면 구도.",
            "based_on_beat": 2,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "혜수가 두 눈을 크게 뜨고 입을 살짝 벌린 채 경악한 표정으로 멈춘 얼굴 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "혜수와 김형사가 옥탑방 가파른 계단을 향해 상체를 숙이고 뛰어오르며 다리가 교차된 찰나.",
            "based_on_beat": 3,
            "characters": [
              "혜수",
              "김형사"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 14,
        "scene_heading": "S#14. 옥탑방 안 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "형광등 불빛 아래, 혜수와 김형사가 현관 앞에 나란히 서서 깨끗한 거실 쪽을 주시하며 멈춘 전신.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "자신의 방문턱을 막 넘는 mid-stride 순간, 몸이 앞으로 쏠려 한 발이 허공에 뜬 수리영의 측면.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 자신의 방문턱을 급하게 넘으며 몸이 앞으로 쏠린 정지 순간.",
            "validator_reason": "추진 동작(방문턱을 넘는)을 한 찰나의 mid-action freeze로 시각화하기 위해 구체적 자세로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "핏자국이나 붉은 표식 없이 지나치게 말끔하게 정돈된 수리영의 침대와 텅 빈 커튼 주변의 정적 구도.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "거실 식탁 위가 찻잔이나 얼룩 하나 없이 매끈하게 비워져 있는 상태.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "김형사가 미간을 잔뜩 찌푸린 채 수리영을 향해 삿대질하듯 손가락을 뻗고 멈춘 불만스러운 측면.",
            "based_on_beat": 3,
            "characters": [
              "김형사",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "혜수가 고개를 돌려 날카로운 눈빛으로 옆에 선 김형사를 노려보는 옆얼굴.",
            "based_on_beat": 3,
            "characters": [
              "혜수",
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "혜수가 수리영의 어깨 위에 한 손을 다정하게 얹고 안쓰러운 표정으로 마주 선 정면.",
            "based_on_beat": 3,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "수리영의 방바닥 한구석에 백팩과 낡은 인형이 이전과 약간 다른 위치에 덩그러니 놓여 있는 정물 구도.",
            "based_on_beat": 4,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 15,
        "scene_heading": "S#15. 해안가. 버스정류장 부근 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "차가운 해무가 낀 어두운 밤바다를 배경으로, 수리영이 버스정류장 벤치에 멍한 표정으로 홀로 앉아 있는 측면.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "혜수의 손이 차가운 캔 음료를 쥔 채 수리영의 눈앞으로 내밀고 멈춘 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영이 벤치에서 몸을 급히 일으키며 엉덩이가 살짝 허공에 뜬 정지 순간.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "수리영이 혜수를 등지고 짙은 그림자가 깔린 해안가 도로를 따라 힘껏 내달리며 한 발이 뜬 뒷모습.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "혜수가 멀어지는 수리영의 등을 향해 양손을 입가에 모으고 소리치는 자세로 멈춘 상체.",
            "based_on_beat": 2,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "가로등 뒤 짙은 그림자가 깔린 나뭇가지 틈새로, 해안가 도로에서 다리를 뻗어 내달리는 도중 한 발이 허공에 떠 있는 수리영과 그를 바라보고 서 있는 혜수의 모습이 작게 담긴 관찰자 시점 프레임.",
            "based_on_beat": 3,
            "characters": [
              "수리영",
              "혜수"
            ],
            "original_description": "가로등 뒤 짙은 그림자가 깔린 나뭇가지 틈새로, 해안가 도로를 달려가는 수리영과 남겨진 혜수의 모습이 작게 담긴 관찰자 시점 프레임.",
            "validator_reason": "이동 동작('달려가는')을 mid-action freeze 규칙에 따라 구체적인 정지 순간(한 발이 허공에 떠 있는 자세)으로 재작성함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 16,
        "scene_heading": "S#16. 경찰서 사무실 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "건조한 형광등 불빛의 경찰서 사무실, 혜수가 스마트폰을 귀에 댄 채 한 손으로 문을 반쯤 열고 한 발을 문지방 너머로 내딛은 찰나.",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "original_description": "건조한 형광등 불빛의 경찰서 사무실, 혜수가 스마트폰을 귀에 댄 채 문을 열고 들어서는 찰나.",
            "validator_reason": "'문을 열고 들어서는'은 두 동작의 시간 진행이므로, 문을 열며 발을 내딛는 mid-action 순간으로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "형사과 사무실 안, 김형사가 책상에 앉아 컴퓨터 모니터를 응시하며 턱을 괸 채 멈춘 상체.",
            "based_on_beat": 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": []
          }
        ]
      },
      {
        "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": []
          }
        ]
      },
      {
        "scene_index": 18,
        "scene_heading": "S#18. 안방 안 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "아침 햇살이 스며드는 안방, 수리영이 침대 가장자리에 머리를 기댄 채 두 눈을 감고 웅크려 늘어진 정지 상태.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "수리영이 번쩍 눈을 뜨고 고개를 든 채 화들짝 놀란 표정으로 멈춘 상체 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영이 굳게 닫힌 자신의 방문 앞에 서서 마른침을 삼키듯 턱을 약간 치켜든 측면.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "창가 앞에 선 수리영이 커튼 자락을 꽉 쥐고 옆으로 거칠게 젖히는 mid-action 순간의 자세.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "방 안으로 들어온 수리영이 창가 커튼 자락을 꽉 쥐고 옆으로 거칠게 밀어낸 정지 순간.",
            "validator_reason": "과거 시점의 '방 안으로 들어온'과 동작 완료를 의미하는 '밀어낸' 표현을 제거하고 커튼을 젖히는 도중의 찰나로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "화면이 켜진 스마트폰의 통화 버튼 위에 수리영의 손가락 끝이 맞닿아 있는 찰나의 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영의 손가락이 진동하며 화면이 켜진 스마트폰의 통화 버튼 위에 닿은 클로즈업.",
            "validator_reason": "연속적인 움직임인 '진동하며'를 제거하고 손가락이 화면에 닿은 시각적 정지 상태로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영이 낡은 인형이 매달린 백팩 끈을 한 손으로 꽉 쥔 채 거실 한가운데 꼿꼿이 서 있는 전신.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "아침 햇살이 비치는 욕실 세면대 앞, 턱밑에서 떨어지던 물방울이 허공에 멈춘 찰나에 거울 속 자신과 눈을 맞추고 서 있는 수리영의 정면.",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "original_description": "아침 햇살이 비치는 욕실 세면대 앞, 수리영이 물기가 뚝뚝 떨어지는 얼굴을 든 채 거울 속 자신과 눈을 맞춘 정면.",
            "validator_reason": "시간의 흐름이 포함된 '뚝뚝 떨어지는' 표현을 허공에 멈춘 물방울의 시각적 찰나로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "욕실 거울 표면에 수리영의 굳은 상체와 그 뒤쪽 타일 벽면의 붉은 원형 표식이 선명하게 맺혀 있는 2D 반사 이미지.",
            "based_on_beat": 4,
            "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": []
          },
          {
            "shot_index": 11,
            "description": "식탁 위 액자 속 사진 표면에 인화된 민숙과 수리영의 웃는 얼굴 중, 민숙의 얼굴 형태가 물감처럼 기괴하게 뭉개져 있는 2D 평면 이미지 클로즈업.",
            "based_on_beat": 4,
            "characters": [
              "민숙",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 12,
            "description": "수리영의 손바닥이 자신의 뺨에 찰싹 맞닿아 피부가 강하게 눌린 찰나의 얼굴 클로즈업.",
            "based_on_beat": 4,
            "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대 한국인 남성 보안직원"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 21,
        "scene_heading": "S#21. 경찰서 안 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "건조한 형광등 불빛의 경찰서 사무실 입구, 수리영과 혜수가 서류를 든 김형사를 향해 고개를 살짝 숙인 정지 순간.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "혜수",
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "김형사가 사인 서류를 쥔 손을 혜수 앞으로 내민 채 멈춘 측면.",
            "based_on_beat": 1,
            "characters": [
              "김형사",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "혜수가 수리영을 향해 난감한 표정으로 자신의 빈 책상 쪽을 가리키는 손동작의 정적 구도.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "텅 빈 경찰서 사무실, 혜수의 책상 앞 의자에 수리영이 홀로 웅크려 앉은 상체.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "책상 위에 어지럽게 널브러진 참혹한 살인 사건 현장 사진들의 2D 평면 이미지 클로즈업.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영이 두 눈을 크게 뜨고 사진들을 내려다보며 창백하게 얼어붙은 얼굴.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "경찰서 컴퓨터 모니터 화면 위, 해상 지도와 붉은 좌표 텍스트가 선명하게 떠 있는 2D 평면 이미지 클로즈업.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "수리영의 손가락이 볼펜을 꽉 쥐고 작은 메모지 위에 좌표 숫자를 남긴 채 멈춘 손 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "수리영이 둥글게 접은 메모지를 자신의 겉옷 주머니 안으로 반쯤 밀어 넣은 정지 순간.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "수리영이 텅 빈 사무실 문밖으로 한 발을 내딛는 도중 어깨를 돌려 주변에 시선을 고정한 측면.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 텅 빈 사무실 문밖으로 한 발을 내디딘 채 어깨를 돌려 주변을 힐끗 살피는 측면.",
            "validator_reason": "'살피는'이라는 연속적인 탐색 동작을 시선을 고정한 단일 정지 순간으로 수정하여 한 찰나 원칙을 적용함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 22,
        "scene_heading": "S#22. 경찰서 밖 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "흐린 잿빛 하늘 아래, 수리영이 자전거 안장에 앉아 한쪽 발로 페달을 꾹 밟은 전신.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "차가운 공기가 감도는 거리 위, 수리영이 자전거 핸들을 꽉 쥐고 몸을 앞으로 웅크린 채 페달을 밟고 있는 찰나, 옷자락이 진행 반대 방향으로 휘날리는 실루엣.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "차가운 공기가 감도는 거리 위, 수리영이 자전거 핸들을 꽉 쥐고 몸을 웅크린 채 멈춘 실루엣.",
            "validator_reason": "원문의 '달리는' 이동 동작을 누락하고 '멈춘' 상태로 묘사하여, 추진력을 보존하는 mid-action freeze 형태로 재작성함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 23,
        "scene_heading": "S#23. 어느 PC방 / 실내",
        "shots": [
          {
            "shot_index": 1,
            "description": "어둡고 푸른 불빛의 PC방 내부, 수리영이 모니터 화면을 뚫어지게 응시하며 마우스를 쥔 상체.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "프린터 배출구 틈으로 해상 지도가 인쇄된 종이가 반쯤 튀어나와 멈춘 정물 클로즈업.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영의 손이 여러 번 접힌 지도 뭉치를 낡은 백팩 안으로 깊숙이 밀어 넣은 정지 순간.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 24,
        "scene_heading": "S#24. 해안가 / 소나기",
        "shots": [
          {
            "shot_index": 1,
            "description": "검게 물든 먹구름 아래, 번개 빛이 번쩍이는 순간 세찬 빗줄기가 해안가 도로 위로 쏟아지는 풍경.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "빗물로 흠뻑 젖은 머리카락이 뺨에 달라붙은 수리영이 굳은 표정으로 자전거 핸들을 꽉 쥔 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 25,
        "scene_heading": "S#25. 옥탑방 안 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "옥탑방 거실 바닥에 진흙 묻은 낯선 발자국들이 어지럽게 찍혀 있고, 식탁 의자가 옆으로 쓰러져 있는 난장판 상태.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "현관에 선 수리영이 가빠진 호흡으로 어깨가 한껏 들린 채 두 눈을 크게 뜨고 굳어버린 전신.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "현관에 선 수리영이 가빠진 호흡으로 어깨를 들썩인 채 두 눈을 크게 뜨고 굳어버린 전신.",
            "validator_reason": "'들썩인 채'는 연속 동작을 암시할 수 있어, 어깨가 들린 고정된 상태로 수정하여 한 찰나를 명확히 함.",
            "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": "낡은 사진 속, 70년대 시골 식당 앞 평상에 앉은 12살 여자아이 두 명의 모습이 담긴 2D 평면 이미지 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "여자아이 두 명"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영이 침대 가장자리에 힘없이 주저앉은 채 초점 잃은 눈으로 허공을 응시하는 상체.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "백팩을 단단히 멘 수리영이 구겨진 사진을 주먹 안에 꽉 쥔 채 열린 현관문을 등지고 선 뒷모습.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 26,
        "scene_heading": "S#26. 포구 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "비가 그친 직후, 짙고 차가운 해무가 무겁게 깔린 텅 빈 포구의 정적인 풍경.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "축축한 갯바위 위에 앉은 수리영이 안개에 뒤덮인 바다를 향해 시선을 고정한 측면.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영의 무릎 위에 놓인 스마트폰 액정 화면에 혜수의 부재중 전화 알림창이 떠 있는 2D 평면 이미지 클로즈업.",
            "based_on_beat": 3,
            "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": []
          }
        ]
      },
      {
        "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": []
          },
          {
            "shot_index": 3,
            "description": "차가운 바닷바람에 낡은 금속 현관문이 반쯤 열린 틈으로 황량한 저녁하늘이 보이는 정적 구도.",
            "based_on_beat": 0,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 28,
        "scene_heading": "S#28. 바다 + 갑판 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "황금빛 노을이 비치는 짙푸른 바다 한가운데, 소형 어선 한 척이 고요하게 떠 있는 전경.",
            "based_on_beat": 0,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "갑판 위에 홀로 앉은 수리영이 인우를 향해 접힌 지도를 불쑥 내민 채 멈춘 측면.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "지도를 내려다보며 미간을 잔뜩 찌푸린 인우의 불만스러운 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "수리영의 손가락이 낡은 사진을 인우의 눈앞에 들이밀고 멈춘 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "사진을 마주한 인우가 두 눈을 크게 뜨고 입을 살짝 벌린 채 당황하여 굳어버린 얼굴.",
            "based_on_beat": 2,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영이 낡은 사진을 인우 쪽으로 바짝 들이댄 채 날카로운 눈빛으로 쏘아보는 상체.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "인우의 엉덩이가 갑판 바닥에서 허공으로 솟아오른 찰나의 전신.",
            "based_on_beat": 3,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "조타실 문을 향해 상체를 거칠게 숙인 채 내달리며 인우의 한 발이 공중에 뜬 뒷모습.",
            "based_on_beat": 3,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "자리에서 급히 몸을 일으킨 수리영이 한쪽 다리를 앞으로 뻗은 채 멈춘 전신 구도.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 29,
        "scene_heading": "S#29. 조타실 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 조타실 안, 조타기 손잡이를 쥔 인우의 양손 위에 수리영의 두 손이 단단히 덮인 채 멈춘 정지 구도.",
            "based_on_beat": 1,
            "characters": [
              "인우",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "수리영이 눈을 부릅뜨고 턱을 치켜든 채 분노한 표정으로 인우를 노려보는 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "인우가 상체를 뒤로 젖힌 방어적인 자세로 굳어버린 측면.",
            "based_on_beat": 1,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "수리영의 손가락이 낡은 사진 표면에 인화된 12살 여자아이의 얼굴을 꾹 누른 채 멈춘 클로즈업.",
            "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": 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": 3,
            "characters": [
              "인우",
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 30,
        "scene_heading": "S#30. 바다 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "수평선에 반쯤 걸친 붉은 해가 차가운 바다 수면 위에 황금빛 그림자를 길게 드리운 정적인 풍경.",
            "based_on_beat": 1,
            "characters": [],
            "original_description": "수평선 너머로 서서히 지는 해가 차가운 바다 수면 위에 황금빛 그림자를 길게 드리운 정물 구도.",
            "validator_reason": "'서서히 지는'이라는 시간 진행 표현을 '반쯤 걸친'이라는 정지 상태의 고정된 결과물로 수정하여 한 찰나를 명확히 함.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "짙고 무거운 해무가 거대한 장벽처럼 바다 한가운데를 덮고 있는 정적인 풍경.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "소형 어선의 뱃머리가 물살을 가르며 짙은 안개 띠의 경계면 안으로 반쯤 진입한 채 멈춘 한 찰나.",
            "based_on_beat": 1,
            "characters": [],
            "original_description": "소형 어선의 뱃머리가 짙은 안개 띠의 경계면 안으로 반쯤 먹혀 들어간 채 멈춘 찰나.",
            "validator_reason": "안개 속으로 이동하는 배의 추진 방향을 보존하기 위해 '물살을 가르며'라는 동적 단서를 포함한 mid-action 상태로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "칠흑 같은 안개 속으로 형체가 거의 가려진 채 소형 어선의 흐릿한 실루엣만 남은 정지 상태.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          }
        ]
      }
    ],
    "total_shots": 152,
    "changed_shots": 27
  },
  "step_id": "shot_validator",
  "run_id": "e3d2a87d-f9ee-4999-b487-40dbd6f7050e",
  "resolved_model": "gemini-pro",
  "updated_at": "2026-05-27T12:39:29.987421+00:00",
  "schema_version": 1,
  "config_hash": "99914b932bd37a50",
  "project_config_snapshot": {}
}