{
  "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": [
              "한국인 남자"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "우거진 수풀을 헤치며 앞으로 급하게 뛰쳐나가는 도중 상체가 앞으로 쏠린 자세로 굳은 한국인 남자의 잔뜩 겁에 질린 표정 정면.",
            "based_on_beat": 1,
            "characters": [
              "한국인 남자"
            ],
            "original_description": "우거진 수풀 사이에 선 한국인 남자의 잔뜩 겁에 질린 표정 정면.",
            "validator_reason": "원문의 '도망치는' 이동 동작의 추진력을 보존하기 위해 달리는 도중의 mid-action 상태로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "허공을 가르며 한국인 남자를 향해 날아들듯 뻗어 있는 검은 인영.",
            "based_on_beat": 1,
            "characters": [
              "한국인 남자",
              "검은 인영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "검은 인영이 바닥에 쓰러진 한국인 남자를 위에서 짓누른 채 멈춘 정지 구도.",
            "based_on_beat": 1,
            "characters": [
              "검은 인영",
              "한국인 남자"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 2,
        "scene_heading": "S#2. 도시 뒷골목 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 가로등 불빛 아래 전봇대에 몸을 밀착한 채 서 있는 한국인 남녀.",
            "based_on_beat": 1,
            "characters": [
              "한국인 남자",
              "한국인 여자"
            ],
            "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": 3,
        "scene_heading": "S#3. 현장 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "노란색 폴리스 라인 띠를 들고 서 있는 제복 차림의 한국인 경찰들.",
            "based_on_beat": 1,
            "characters": [
              "한국인 경찰들"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "경찰들 사이 들것 위에 놓인, 형태를 알아볼 수 없는 시신.",
            "based_on_beat": 1,
            "characters": [
              "경찰들",
              "시신"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "경찰 무리 중앙에서 팔짱을 낀 채 서서 현장을 주시하는 혜수.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "경찰들"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 4,
        "scene_heading": "S#4. 옥탑방 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "오래된 빌라 옥상 위 평화로운 옥탑방 건물을 위에서 내려다본 외부 전경.",
            "based_on_beat": 1,
            "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": "앞치마를 입고 거실에 서서 어두운 표정으로 TV 화면을 응시하는 강민숙(민숙).",
            "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": "강민숙(민숙)의 손가락이 TV 전원 버튼을 누른 채 멈춘 순간.",
            "based_on_beat": 1,
            "characters": [
              "강민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "강민숙(민숙)이 진한 갈색 액체가 담긴 컵을 식탁 위에 내려놓은 상태.",
            "based_on_beat": 2,
            "characters": [
              "강민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "식탁에 앉아 컵을 입가에 댄 채 미간을 찌푸린 수리영.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "현관 앞에서 한쪽 신발을 꿰어 신기 위해 몸을 굽힌 채 멈춘 수리영.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "수리영이 서 있는 강민숙(민숙)의 어깨 쪽에 코를 댄 채 미소 짓는 측면.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "강민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "강민숙(민숙)의 손목에 있는 또렷한 작은 원형 표식 클로즈업.",
            "based_on_beat": 2,
            "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": [
              "로트와일러"
            ],
            "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": "로트와일러의 엉덩이에 주사기 바늘을 찔러 넣는 자세의 50대 한국인 수의사.",
            "based_on_beat": 1,
            "characters": [
              "50대 한국인 수의사",
              "로트와일러"
            ],
            "original_description": "로트와일러의 엉덩이에 주사기를 찌른 채 멈춘 50대 한국인 수의사.",
            "validator_reason": "'멈춘'이라는 인위적인 정지 표현을 제거하고 행동이 이루어지는 순간으로 재작성함.",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "철창 앞에서 스마트폰을 귀에 댄 채 입술을 꾹 다문 수리영.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "작은 강아지를 무릎에 두고 가위로 털을 자르는 동작 중인 수리영.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "작은 강아지를 무릎에 두고 털 깎는 가위를 쥔 채 멈춘 수리영.",
            "validator_reason": "원문의 '멈춘'이라는 표현 대신 작업 중인 mid-action 찰나로 재작성함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 8,
        "scene_heading": "S#8. 번화가·대형 마트 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "화려한 네온사인과 포장마차가 있는 거리에서 앞으로 나아가는 자전거를 탄 채 바람에 머리카락이 뒤로 흩날리며 손잡이를 단단히 쥔 수리영의 상체.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "화려한 네온사인과 포장마차가 있는 거리에서 자전거 손잡이를 쥔 수리영의 상체.",
            "validator_reason": "원문의 자전거 이동 동작(추진력)을 시각적으로 보존하기 위해 이동 중임을 알 수 있는 단서(머리카락 흩날림)를 추가하여 정지 순간으로 재작성함.",
            "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": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "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 freeze 규칙에 따라 페달링 자세와 머리카락의 흐름을 추가함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 10,
        "scene_heading": "S#10. 옥탑방 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "옥상 평상 위, 말린 석창포 잎들이 바람에 날려 공중에 떠 있는 정지 순간.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "바닥에 드리워진 긴 그림자와 그 끝에 놓인 낡은 신발.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "옥탑방 철문 현관 앞에 서 있는, 얼굴이 보이지 않는 한국인 남자의 뒷모습.",
            "based_on_beat": 1,
            "characters": [
              "한국인 남자"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "남자의 손가락이 광고 전단지를 문틈 사이로 꾹 밀어 넣은 채 멈춘 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "남자"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "미세하게 열린 철문 틈 사이로 어두운 실내가 엿보이는 구도.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "실내 창문에 비친 그림자, 남자가 강민숙(민숙)의 어깨를 입으로 덮친 형상으로 겹쳐진 실루엣.",
            "based_on_beat": 1,
            "characters": [
              "남자",
              "강민숙"
            ],
            "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": [
              "수리영"
            ],
            "original_description": "계단 중간에 멈춰 서서 코를 찡그린 채 굳은 표정을 한 수리영.",
            "validator_reason": "원문의 '계단을 급히 오른다'는 추진력을 보존하기 위해 정지(멈춰 서서) 표현 대신 mid-action(디딘 자세)으로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "옥상 입구에서 바라본, 반쯤 열려 있는 옥탑방 현관 철문 정면.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 12,
        "scene_heading": "S#12. 옥탑방 안 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 거실 안, 희미한 스탠드 불빛 아래 고개를 돌려 주위를 살피는 수리영의 멈춘 상체.",
            "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": 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": 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": []
          }
        ]
      },
      {
        "scene_index": 13,
        "scene_heading": "S#13. 옥탑방 외곽 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "옥탑방 철문 밖을 빠져나와 공포에 질린 표정으로 허겁지겁 계단을 뛰어내려가는 도중, 한쪽 발이 다음 계단을 향해 허공에 떠 있는 수리영의 전신.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "옥탑방 철문 밖으로 뛰쳐나와 공포에 질린 표정으로 계단 한 칸을 디딘 채 굳은 수리영의 전신.",
            "validator_reason": "원문의 이동 동작을 정지('굳은') 상태로 표현하여 추진력이 누락되었으므로 mid-action 찰나로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "번쩍이는 경찰차 경광등 불빛 아래, 차 문을 열고 내린 채 굳은 표정으로 서 있는 혜수.",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "초점을 잃은 멍한 눈동자로 가파른 계단 아래 우두커니 서 있는 수리영의 정면.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "혜수의 옷깃을 두 손으로 꽉 쥔 채 절박하게 올려다보는 수리영의 옆얼굴.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "어두운 옥탑방 계단을 두 칸씩 밟고 뛰어오르는 도중, 한쪽 다리를 크게 뻗고 몸이 앞을 향해 솟구친 혜수와 김형사의 역동적인 뒷모습.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "김형사"
            ],
            "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": [
              "수리영"
            ],
            "original_description": "방 입구를 향해 상체를 앞으로 푹 숙인 수리영의 역동적인 측면.",
            "validator_reason": "단순히 몸을 숙인 정적 자세를 넘어, 이동 동작의 추진력을 시각적으로 보여주는 mid-action 모먼트로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "핏자국이나 시신 없이 말끔하게 정돈된 수리영의 방 내부 전경.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "텅 빈 방 한가운데 서서 핏기가 가신 파리한 얼굴로 허공을 응시하는 수리영.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "거실의 깨끗한 식탁 표면을 손끝으로 짚은 채 당혹스러운 표정을 지은 수리영의 상체.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "거실로 나와 깨끗한 식탁 표면을 손끝으로 짚은 채 당혹스러운 표정을 지은 수리영의 상체.",
            "validator_reason": "'거실로 나와'라는 시간 진행(순차적 행동)을 제거하고 식탁을 짚고 있는 고정된 상태만 남김.",
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "미간을 팍 구긴 채 입술을 삐죽이며 수리영을 못마땅하게 바라보는 김형사의 측면.",
            "based_on_beat": 2,
            "characters": [
              "김형사",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "날카로운 눈빛으로 김형사를 매섭게 쏘아보는 혜수의 얼굴 정면.",
            "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": []
          }
        ]
      },
      {
        "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": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "어둠 속 해안가 도로를 따라 앞으로 달려나가는 자세로 허공에 발이 떠 있는 수리영의 뒷모습.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "두 손을 입가에 모은 채, 달려나가는 자세의 수리영을 향해 입을 크게 벌린 혜수의 상체.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "수리영"
            ],
            "original_description": "두 손을 입가에 모은 채 멀어지는 수리영을 향해 입을 크게 벌린 혜수의 상체.",
            "validator_reason": "'멀어지는'이라는 시간 경과 표현을 찰나의 달리기 자세를 가리키는 표현으로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "먼발치 가로등 뒤에서, 입을 벌린 채 서 있는 혜수와 한쪽 발이 허공에 뜬 채 달려나가는 자세의 수리영을 함께 담아낸 관찰자 시점의 넓은 구도.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "수리영"
            ],
            "original_description": "먼발치 가로등 뒤에서 혜수와 멀어지는 수리영을 담아낸 관찰자 시점의 넓은 구도.",
            "validator_reason": "'멀어지는'이라는 진행형 표현을 삭제하고 각 인물의 mid-action 정지 순간으로 구체화함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 16,
        "scene_heading": "S#16. 경찰서 사무실 / 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": []
          }
        ]
      },
      {
        "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": 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": "커튼을 양옆으로 확 열어젖히는 mid-action 순간의 수리영, 양팔이 바깥쪽으로 뻗쳐 있고 커튼 천이 좌우로 펄럭이는 뒷모습.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "커튼을 양옆으로 쥔 채 팔을 벌린 수리영의 멈춘 뒷모습.",
            "validator_reason": "커튼을 열어젖히는 역동적 동작이므로 인위적인 정지('멈춘') 표현 대신 운동감이 보존된 mid-action 순간으로 재작성했습니다.",
            "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": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "백팩 끈을 어깨에 멘 채 방문 턱 너머로 한 발을 막 내딛는 mid-stride 자세의 수리영, 상체가 앞으로 기울어진 측면.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "백팩 끈을 어깨에 멘 채 한 발을 방문 턱 너머로 내디딘 자세로 멈춘 수리영.",
            "validator_reason": "밖으로 걸어나오는 이동 동작이므로 '멈춘'이라는 단어를 제거하고 추진력이 보존된 mid-stride 자세로 재작성했습니다.",
            "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": "싱크대 앞에서 유리컵을 기울여 물을 마시는 mid-action 순간의 수리영, 턱이 살짝 들려 있는 옆모습.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "싱크대 앞에서 유리컵을 입술에 대고 물을 머금은 채 멈춘 수리영의 옆모습.",
            "validator_reason": "물을 마시는 동작의 흐름을 보존하기 위해 강제적인 정지 표현을 없애고 자연스러운 mid-action 자세로 변경했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 16,
            "description": "식탁 위 액자 속 강민숙(민숙)의 얼굴 사진이 뭉개진 채 기괴하게 얼룩진 상태 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "강민숙(민숙)"
            ],
            "character_ids": []
          },
          {
            "shot_index": 17,
            "description": "테이블 위에 멀쩡하게 놓인 수리영과 강민숙(민숙)의 다정한 액자 사진 정물 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "강민숙(민숙)"
            ],
            "character_ids": []
          },
          {
            "shot_index": 18,
            "description": "자신의 양 뺨에 두 손바닥을 밀착시킨 채 눈을 질끈 감은 수리영의 정면.",
            "based_on_beat": 2,
            "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": [
              "수리영",
              "남자직원"
            ],
            "original_description": "마트 안 진열대 사이, 마트 남자 직원 앞에 바짝 다가서서 눈을 크게 뜬 수리영의 옆얼굴.",
            "validator_reason": "'다가서서'라는 순차적 연결어를 '다가선 채'로 변경하여 한 순간의 정지 상태로 명확히 함.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "골판지 박스를 가슴 높이로 든 채 수리영을 바라보는 마트 남자 직원의 정면.",
            "based_on_beat": 1,
            "characters": [
              "남자직원",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "마트 밖 처마 밑에 매달린 CCTV 카메라를 손가락으로 가리킨 채 멈춘 수리영의 뒷모습.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "스마트폰을 귀에 댄 채 심각한 표정으로 허공을 응시하는 수리영의 바스트 샷.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 20,
        "scene_heading": "S#20. 마트 총무과 / 실내",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 사무실 안, 모니터 화면을 향해 상체를 바짝 숙인 혜수와 수리영의 멈춘 자세.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "어두운 모니터 화면을 보며 고개를 갸우뚱한 채 멈춘 제복 차림의 한국인 보안직원 측면.",
            "based_on_beat": 1,
            "characters": [
              "한국인 보안직원"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "흐릿한 모니터 화면 불빛에 비친 수리영의 불안하게 확장된 눈동자 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "흐릿한 모니터 화면 불빛에 비친 수리영의 불안하게 떨리는 눈동자 클로즈업.",
            "validator_reason": "'떨리는'이라는 연속 동작을 '확장된'이라는 한 순간의 고정 상태 묘사로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "혜수가 한국인 보안직원을 향해 고개를 돌린 채 입술을 살짝 벌리고 멈춘 정지 구도.",
            "based_on_beat": 2,
            "characters": [
              "혜수",
              "한국인 보안직원"
            ],
            "original_description": "혜수가 한국인 보안직원을 향해 고개를 돌리고 입술을 뗀 채 멈춘 정지 구도.",
            "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": "텅 빈 사무실 안에서 고개를 돌려 어깨너머로 주위를 살피는 수리영의 멈춘 상체.",
            "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": 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": []
          }
        ]
      },
      {
        "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": "추진 동작 중 인위적인 정지 표현('허공에 멈춘')을 사용하여 동적 동사 freeze 규칙을 위반했으므로, mid-action 순간과 motion direction을 보존하도록 재작성함.",
            "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": []
          },
          {
            "shot_index": 4,
            "description": "열린 백팩 안으로 빳빳한 지도 뭉치를 찔러 넣은 채 멈춘 수리영의 측면.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 24,
        "scene_heading": "S#24. 해안가 / 소나기",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 먹구름 낀 해안가 도로 위로 세차게 쏟아지는 굵은 소나기 빗줄기.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "젖은 머리카락이 이마에 달라붙은 채 빗물 섞인 눈을 부릅뜬 수리영의 얼굴 정면.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "쏟아지는 빗속에서 한쪽 자전거 페달을 강하게 내리누르는 찰나, 몸을 앞으로 잔뜩 기울인 수리영의 역동적인 전신.",
            "based_on_beat": 2,
            "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": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "수리영의 방 하얀 벽면 한가운데 붉은색으로 짙게 칠해진 커다란 원형 표식과 중앙에 꽂힌 낡은 사진.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "벽에 꽂힌 사진 가장자리를 손가락으로 쥔 채 얼어붙은 수리영의 뒷모습.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "십자가처럼 기괴한 둥근 원이 달린 건물과 두 명의 한국인 어린 여자아이가 찍힌 낡고 피 묻은 사진 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "어린 여자아이"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "피 묻은 사진을 쥔 채 침대 가장자리에 걸터앉아 멍한 눈으로 바닥을 응시하는 수리영의 측면.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "백팩을 메고 한 손에 구겨진 사진을 꽉 쥔 채 열린 현관문 턱을 한 발로 디딘 자세로 굳은 수리영.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 26,
        "scene_heading": "S#26. 포구 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "비가 멎은 해질 무렵, 짙은 안개로 뒤덮여 시야가 흐릿한 텅 빈 포구의 고요한 전경.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "젖은 갯바위 위에 웅크리고 앉아 안개 낀 잿빛 바다를 응시하는 수리영의 뒷모습.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "'혜수이모'라는 발신자 이름이 뜬 채 멈춰 있는 수리영의 스마트폰 액정 화면 클로즈업.",
            "based_on_beat": 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": 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": 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": []
          },
          {
            "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": []
          }
        ]
      },
      {
        "scene_index": 28,
        "scene_heading": "S#28. 바다 + 갑판 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "해질 무렵 붉은빛이 감도는 고요한 바다 한가운데 홀로 떠 있는 소형 어선의 원경.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "갑판 바닥에 앉은 채 지도를 앞으로 불쑥 내민 자세로 멈춘 수리영의 측면.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영의 손에 들린 지도를 내려다보며 미간을 깊게 찌푸린 인우의 얼굴 정면.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "수리영의 손가락 사이에 팽팽하게 끼워진 낡은 흑백 사진 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "사진을 마주하고 두 눈이 커진 채 어깨를 흠칫 굳힌 인우의 상체.",
            "based_on_beat": 2,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "허공을 향해 고개를 돌린 채 입술을 꽉 깨물고 시선을 피하는 인우의 옆얼굴.",
            "based_on_beat": 2,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "인우의 턱밑까지 사진을 바짝 들이대며 날카로운 눈빛을 쏘아보는 수리영의 바스트 샷.",
            "based_on_beat": 3,
            "characters": [
              "인우",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "조타실 입구를 향해 어깨를 강하게 비틀고 한 발을 바닥에서 막 떼어내며 달려나가는 mid-action 순간의 인우의 역동적인 전신.",
            "based_on_beat": 3,
            "characters": [
              "인우"
            ],
            "original_description": "갑판에서 벌떡 일어나 조타실 입구를 향해 어깨를 비틀어 몸을 돌린 자세로 멈춘 인우의 역동적인 전신.",
            "validator_reason": "이동 및 추진 동작의 방향성을 살리기 위해 불필요한 정지 표현을 제거하고 mid-action 순간으로 수정했습니다.",
            "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": 2,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "낡은 사진 속 한국인 여자아이의 얼굴 위를 꾹 짚은 수리영의 떨리는 손가락 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "핏기가 싹 가신 창백한 낯빛으로 두 눈을 부릅뜬 인우의 굳은 얼굴 정면.",
            "based_on_beat": 2,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "인우의 어깨너머 벽면으로 시선을 둔 채 입을 떡 벌리고 얼어붙은 수리영의 바스트 샷.",
            "based_on_beat": 3,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "좁고 낡은 조타실 내부 벽면 가득 기괴하게 덧그려진 수많은 붉은 원 형상들의 섬뜩한 전경.",
            "based_on_beat": 3,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "조타실 벽판 한가운데 핏빛처럼 선명하게 칠해진 커다란 붉은 원 클로즈업.",
            "based_on_beat": 3,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "극도의 공포에 질려 눈물이 맺힌 채 인우를 올려다보는 수리영의 얼굴 정면.",
            "based_on_beat": 4,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "고개를 살짝 숙여 수리영을 무표정하고 차갑게 내려다보는 인우의 서늘한 시선.",
            "based_on_beat": 4,
            "characters": [
              "인우",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "두 눈을 감은 채 완전히 힘이 풀려 인우의 어깨 위로 무너져 내린 자세로 멈춘 수리영의 전신.",
            "based_on_beat": 4,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 30,
        "scene_heading": "S#30. 바다 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "수면 위로 눈부신 황금빛 태양의 그림자가 일렁임 없이 길게 멈춰 있는 해질녘 바다 풍경.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "바다와 하늘의 경계를 완전히 지워버리듯 수평선을 가로막고 솟아오른 짙은 잿빛 안개 장벽의 압도적인 전경.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "두꺼운 안개 띠 속으로 낡은 어선이 진입하며 뱃머리를 따라 물살이 V자로 갈라지는 찰나의 모습.",
            "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": 174,
    "changed_shots": 31
  },
  "step_id": "shot_validator",
  "run_id": "43f2a18f-a91d-4dec-8236-e2078cfd6c72",
  "resolved_model": "gemini-pro",
  "updated_at": "2026-07-20T20:26:54.900300+00:00",
  "schema_version": 1,
  "config_hash": "99914b932bd37a50",
  "project_config_snapshot": {}
}