{
  "status": "completed",
  "completed_count": 29,
  "applicable_count": 29,
  "failed_count": 0,
  "data": {
    "scenes": [
      {
        "scene_index": 1,
        "scene_heading": "S#1. 숲속 / 해 질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "축축하고 안개 낀 수풀을 헤치며 급히 뛰는 도중, 한쪽 발을 땅에서 막 뗀 자세로 뒤를 돌아보며 겁에 질린 표정을 한 동양인 남성.",
            "based_on_beat": 1,
            "characters": [
              "동양인 남성"
            ],
            "original_description": "축축하고 안개 낀 수풀 속에 주저앉은 겁에 질린 표정의 동양인 남성.",
            "validator_reason": "원문의 '도망치는' 동작의 방향성과 추진력을 보존하기 위해 mid-action freeze로 재작성했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "피가 흐르는 동양인 남성의 허벅지에 선명하게 파인 커다란 이빨 자국 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "동양인 남성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "어둠 속에서 동양인 남성을 향해 허공에 떠 있는 검은 형체의 실루엣.",
            "based_on_beat": 1,
            "characters": [
              "동양인 남성",
              "검은 형체"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "검은 형체가 동양인 남성의 몸을 강하게 부딪치며 덮치는 순간, 남자의 상체가 중심을 잃고 바닥으로 크게 꺾여 넘어지는 찰나.",
            "based_on_beat": 1,
            "characters": [
              "동양인 남성",
              "검은 형체"
            ],
            "original_description": "바닥에 눕혀진 동양인 남성의 몸 위로 엎드려 짓누른 검은 형체.",
            "validator_reason": "원문의 덮치는 능동적 신체 역학과 영향받은 대상의 자세 불균형을 보존하는 mid-impact 찰나로 재작성했습니다.",
            "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": "원문의 살점을 뜯는 능동적 접촉이 '닿아 있는'이라는 모호한 상태로 약화되어, 힘과 능동성이 보존된 mid-impact 찰나로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "젖은 아스팔트 바닥에 축 늘어진 채 누워 있는 동양인 여성.",
            "based_on_beat": 1,
            "characters": [
              "동양인 여성"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 3,
        "scene_heading": "S#3. 현장 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "축축한 안개가 낀 숲속, 노란색 폴리스 라인 주변에 멈춰 서 있는 동양인 남녀 무리.",
            "based_on_beat": 1,
            "characters": [
              "동양인 남녀 무리"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "사건 현장을 향해 시선을 고정한 채 무리 사이에 서 있는 혜수.",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "바닥에 덮인 천 아래로 불룩하게 솟아 있는 두 개의 시신 형태.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 4,
        "scene_heading": "S#4. 옥탑방 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "낮게 깔린 안개와 흐린 자연광 아래, 인천 변두리의 낡은 빌라 옥탑방이 내려다보이는 정적이고 스산한 부감 구도.",
            "based_on_beat": 0,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 5,
        "scene_heading": "S#5. 옥탑방 안 / 실내",
        "shots": [
          {
            "shot_index": 1,
            "description": "거실 창문으로 들어오는 빛줄기 아래, 어두운 표정으로 정면을 뚫어지게 응시하는 민숙.",
            "based_on_beat": 1,
            "characters": [
              "민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "양팔을 위로 뻗은 채 방문 앞에 서 있는 수리영.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "손가락으로 리모컨 버튼을 꾹 누른 채 멈춘 민숙의 손.",
            "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": 2,
            "characters": [
              "수리영",
              "민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "입가에 미소를 머금은 채 멈춘 민숙의 정면 얼굴.",
            "based_on_beat": 2,
            "characters": [
              "민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "민숙의 손목에 뚜렷하게 새겨진 작은 원형 표식 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "무덤덤한 표정으로 아래를 향해 시선을 고정한 수리영의 얼굴.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 6,
        "scene_heading": "S#6. 해안가 도로 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "짙은 해무가 낀 축축한 해안가 도로 위에서 밝은 표정으로 자전거 안장에 앉아 페달을 밟고 있는 수리영, 한쪽 무릎이 굽혀져 있고 머리카락이 주행 반대 방향으로 흩날리는 찰나.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "짙은 해무가 낀 축축한 해안가 도로 위에서 밝은 표정으로 자전거 핸들을 쥔 수리영.",
            "validator_reason": "자전거를 타고 달리는 이동 동작이므로 정지 자세가 아닌 motion direction을 보존한 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대 동양인 남성"
            ],
            "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": "인위적인 정지 표현('멈춘')을 제거하고 작업 중인 상태의 고정된 자세로 재작성했습니다.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 8,
        "scene_heading": "S#8. 번화가·대형 마트 / 해질 무렵",
        "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": "진열대 앞에서 40대 동양인 여성과 마주 보고 서 있는 수리영.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "40대 동양인 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "종이박스를 양손에 든 채 통로에 서 있는 남자 직원.",
            "based_on_beat": 2,
            "characters": [
              "남자 직원"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "미간을 살짝 찌푸린 의아한 표정으로 남자 직원을 응시하는 수리영.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "남자 직원"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "축축한 밤거리의 가로등 아래, 마트 밖에서 스마트폰을 귀에 댄 수리영.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "두 손으로 자전거 핸들을 꽉 쥔 수리영의 상체.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 9,
        "scene_heading": "S#9. 해안가 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "짙은 어둠과 안개가 깔린 해안도로 위에서 자전거 핸들에 바짝 엎드린 채 한쪽 다리에 힘을 실어 페달을 밟고 있는 수리영의 측면, 뒤로 흩날리는 머리카락과 옷자락.",
            "based_on_beat": 0,
            "characters": [
              "수리영"
            ],
            "original_description": "짙은 어둠과 안개가 깔린 해안도로 위에서 자전거 핸들에 바짝 엎드린 수리영의 측면.",
            "validator_reason": "원문의 자전거를 타고 달려가는 이동 동작의 추진력과 방향성을 mid-action(페달을 밟는 순간, 흩날리는 머리카락)으로 보존함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 10,
        "scene_heading": "S#10. 옥탑방 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어스름한 달빛 아래 옥상 평상 위에 놓인 말린 약초 잎사귀들.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "바닥에 길게 드리워진 남성의 짙은 그림자.",
            "based_on_beat": 1,
            "characters": [
              "남성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "옥탑방 철문 앞에 멈춰 선 낡은 신발 클로즈업.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "문틈에 끼워진 전단지 위를 누르고 있는 손가락.",
            "based_on_beat": 1,
            "characters": [
              "손가락"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "여성의 형체를 덮누른 채 어깨 쪽에 고개를 파묻은 남성의 실루엣이 평면적으로 비친 창문 표면.",
            "based_on_beat": 1,
            "characters": [
              "여성",
              "남성"
            ],
            "original_description": "여성의 형체를 덮쳐 어깨 쪽에 고개를 파묻은 남성의 실루엣이 평면적으로 비친 창문 표면.",
            "validator_reason": "'덮쳐'라는 연속 동작의 연결어를 '덮누른 채'라는 결과 상태 묘사로 수정하여 한 찰나의 정지 순간을 명확히 함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 11,
        "scene_heading": "S#11. 옥탑 방 밖 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 다세대 빌라의 좁은 콘크리트 계단을 급히 오르는 중간, 한 발만 계단에 닿은 채 위를 향하는 역동적인 자세의 수리영.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "어두운 다세대 빌라의 좁은 콘크리트 계단에 한 발을 디딘 수리영.",
            "validator_reason": "계단을 오르는 이동 동작의 추진력을 보존하기 위해 공중에 뜬 역동적인 mid-action 순간으로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "옥상 입구에 서서 코끝을 심하게 찡그린 수리영의 얼굴.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "어둠 속에서 틈이 살짝 벌어진 채 멈춰 있는 옥탑방 현관 철문.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "크게 떠진 불안한 눈으로 벌어진 문틈을 응시하는 수리영.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 12,
        "scene_heading": "S#12. 옥탑방 안 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "끓다 식은 냄비와 켜진 TV, 거실 스탠드 불빛이 비치는 어두운 거실 전경.",
            "based_on_beat": 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": 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": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "스마트폰을 귀에 댄 채 긴장감에 손을 꽉 쥐고 굳어 있는 수리영.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "부들부들 떨리는 손으로 스마트폰을 귀에 댄 수리영.",
            "validator_reason": "'떨리는'이라는 연속 동작/상태를 단일 정지 자세로 수정하여 찰나의 원칙을 강조함.",
            "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": []
          }
        ]
      },
      {
        "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": [
              "수리영"
            ],
            "original_description": "어두운 다세대 빌라의 콘크리트 계단을 딛고 선 수리영.",
            "validator_reason": "원문의 '허겁지겁 계단을 내려간다'는 이동 동작의 추진력을 보존하기 위해, 정지된(선) 자세가 아닌 뛰어내려가는 mid-stride 자세로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "도로변에 정차된 차량 옆에 멈춰 선 혜수.",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "초점을 잃은 눈으로 허공을 응시하는 수리영의 정면 얼굴.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영을 올려다보는 심각한 표정의 혜수.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "크게 놀라 눈을 부릅뜬 혜수의 얼굴 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "옥탑방 계단을 향해 뛰어올라가는 자세의 혜수와 김형사.",
            "based_on_beat": 2,
            "characters": [
              "혜수",
              "김형사"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 14,
        "scene_heading": "S#14. 옥탑방 안 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "옥탑방 현관 앞에서 허탈한 표정을 지은 김형사.",
            "based_on_beat": 1,
            "characters": [
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "김형사 뒤에서 옥탑방 내부를 응시하는 혜수와 수리영.",
            "based_on_beat": 1,
            "characters": [
              "김형사",
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "방 안을 향해 한쪽 발을 내딛고 상체를 앞으로 기울인 mid-action 자세의 수리영 뒷모습.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "방 안으로 급히 뛰어 들어가는 자세의 수리영 뒷모습.",
            "validator_reason": "이동 동작(뛰어 들어가는)을 추진력과 방향이 보존된 mid-action freeze 묘사로 구체화하여 재작성함.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "핏자국 하나 없이 깨끗하게 정돈된 방 안을 멍하니 쳐다보는 수리영.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "핏기 없이 창백해진 수리영의 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "깨끗한 식탁 앞 빈 공간을 손가락으로 가리키는 수리영.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "미간을 한껏 찌푸린 짜증 난 표정의 김형사.",
            "based_on_beat": 2,
            "characters": [
              "김형사"
            ],
            "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": []
          }
        ]
      },
      {
        "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": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "한 발은 바닥을 박차고 다른 발은 공중에 떠 있는 달리기 중간(mid-stride) 자세로, 몸이 앞으로 기울어진 수리영의 뒷모습.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "달려가는 자세의 수리영 뒷모습.",
            "validator_reason": "달려가는 이동 동작의 추진력을 보존하기 위해, 한 발이 들리고 몸이 쏠린 mid-action 상태로 재작성했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영의 뒷모습을 향해 입을 벌리고 서 있는 혜수.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "멀리서 혜수와 수리영을 내려다보는 스산한 분위기의 부감 구도.",
            "based_on_beat": 2,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 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": "스마트폰을 귀에 댄 채 굳은 표정으로 서 있는 수리영.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "인형이 달린 백팩의 끈을 한 손으로 쥔 수리영.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "물기가 맺힌 얼굴로 욕실 거울을 쳐다보는 수리영.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "거울 속 평면 이미지로 비치는, 욕실 벽면에 선명하게 새겨진 붉은 원.",
            "based_on_beat": 3,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "머리카락이 회전 방향으로 흩날리는 가운데 고개를 벽 쪽으로 돌린 채 텅 빈 욕실 벽을 응시하는 수리영의 뒷모습.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "고개를 홱 돌려 텅 빈 욕실 벽을 응시하는 수리영의 뒷모습.",
            "validator_reason": "'고개를 홱 돌려'라는 연속/속도 묘사를 mid-action freeze 형태로 수정하여 순간의 방향성을 보존함.",
            "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": [
              "수리영"
            ],
            "original_description": "입을 크게 벌린 채 몸을 뒤로 젖히며 멈춘 수리영.",
            "validator_reason": "'몸을 뒤로 젖히며 멈춘'이라는 시간 경과 표현을 제거하고, 완전히 젖혀진 고정 자세의 찰나로 변경함.",
            "character_ids": []
          },
          {
            "shot_index": 15,
            "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": "종이박스를 든 채 수리영을 내려다보는 남자 직원.",
            "based_on_beat": 1,
            "characters": [
              "남자 직원"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "마트 밖 처마 밑, 천장에 달린 CCTV 카메라를 향해 손가락을 뻗은 채 멈춘 수리영.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "CCTV 아래에서 스마트폰을 귀에 댄 채 굳은 표정으로 서 있는 수리영.",
            "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": "30대 동양인 남성 뒤에 서서 모니터를 응시하는 혜수와 수리영.",
            "based_on_beat": 1,
            "characters": [
              "30대 동양인 남성",
              "혜수",
              "수리영"
            ],
            "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": [
              "김형사",
              "혜수"
            ],
            "original_description": "혜수를 향해 서류 뭉치를 내민 채 멈춘 김형사의 손.",
            "validator_reason": "인물이 실제로 동작을 멈춘 상황이 아니므로, 인위적인 '멈춘' 표현을 제거하고 서류를 내미는 자세로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "서류를 손에 쥔 채 고개를 숙이고 있는 혜수의 상체.",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "텅 빈 사무실 책상 앞 의자에 멍하니 앉아 있는 수리영.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "책상 위, 훼손된 여성 시신의 모습이 담긴 폴라로이드 사진 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "여성 시신"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "사진을 내려다보며 입을 크게 벌리고 굳어버린 수리영의 정면 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "책상 위, 지도 위에 붉은 점과 좌표가 떠 있는 모니터 화면.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "모니터를 바라보며 마우스 위에 손을 얹은 채 긴장한 자세로 화면을 응시하는 수리영.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "모니터를 바라보며 마우스 위에 손을 얹은 채 멈춘 수리영.",
            "validator_reason": "망설이는 상황이므로 물리적인 '멈춘' 상태보다는 긴장하며 대기하는 자세로 다듬었습니다.",
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "작은 메모지 위에 볼펜 끝을 대고 글씨를 적어 내려가는 도중인 수리영의 손.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "작은 메모지 위에 볼펜 끝을 꾹 누른 채 멈춘 수리영의 손.",
            "validator_reason": "메모를 작성하는 동적 동작 중이므로 '멈춘' 표현을 빼고 글씨를 쓰는 중간의 찰나로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "접힌 메모지를 꽉 쥔 채 주머니에 손을 넣고 서 있는 수리영.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 22,
        "scene_heading": "S#22. 경찰서 밖 / D, S#23. 어느 PC방 / 실내",
        "shots": [
          {
            "shot_index": 1,
            "description": "경찰서 앞, 자전거 안장에 앉아 힘차게 페달을 밟으며 앞으로 나아가는 중간 순간의 수리영, 머리카락이 뒤로 날리며 앞을 노려보는 자세.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "경찰서 앞, 자전거 안장에 앉아 앞을 노려보는 수리영.",
            "validator_reason": "원문 대본의 '달리는' 이동 동작이 누락되어 있어, 추진력과 방향성을 보존하는 mid-action 순간으로 재작성했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "어두운 PC방 안, 모니터 화면 불빛에 비친 수리영의 무표정한 얼굴.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "모니터 화면 속 평면 이미지로 떠 있는, 특정 위치가 표시된 디지털 지도.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "접힌 종이 지도를 백팩 안으로 반쯤 밀어 넣은 채 멈춘 수리영의 손.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "출력된 종이 지도를 접어 백팩 안으로 밀어 넣은 채 멈춘 수리영의 손.",
            "validator_reason": "'접어'와 '밀어 넣은'이라는 두 연속 동작을 피하기 위해, 지도가 이미 접힌 상태에서 가방에 들어가는 하나의 정지된 찰나로 수정했습니다.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 23,
        "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": [
              "수리영"
            ],
            "original_description": "세차게 쏟아지는 빗속에서 자전거 핸들에 바짝 엎드린 수리영의 측면.",
            "validator_reason": "원문의 이동 동작(달리는)의 추진력과 방향성을 보존하기 위해 페달을 밟는 mid-action 찰나로 묘사를 보강함.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "빗물이 고인 아스팔트를 가르며 물보라를 튕겨내고 있는 자전거 앞바퀴의 찰나 클로즈업.",
            "based_on_beat": 1,
            "characters": [],
            "original_description": "빗물이 고인 아스팔트를 짓누르고 있는 자전거 앞바퀴 클로즈업.",
            "validator_reason": "자전거의 주행 방향성과 속도감을 시각적으로 보존하기 위해 정적인 표현(짓누르는) 대신 물보라가 이는 mid-action 찰나로 수정함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 24,
        "scene_heading": "S#25. 옥탑방 안 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "옥탑방 거실, 바닥에 쓰러진 식탁 의자들과 어지럽게 널브러진 물건들.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "엉망이 된 거실을 보며 현관 입구에 얼어붙은 수리영.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "방문 너머 벽면에 붉은색 페인트로 선명하게 그려진 커다란 원.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "붉은 원 한가운데에 꽂혀 있는, 피가 묻은 낡은 사진 클로즈업.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "벽에서 떼어낸 사진의 모서리를 두 손가락으로 쥔 수리영의 손.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "사진 속 평면 이미지로 존재하는, 십자가 모양의 원형 구조물이 있는 옛날 건물 앞에 앉아 있는 어린 여자아이 두 명의 모습.",
            "based_on_beat": 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": 25,
        "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": "이동 동작인 '다가오는'을 motion direction이 보존된 mid-action(물살을 일으키며 나아가는 중) 순간으로 수정함.",
            "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": 26,
        "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": [
              "혜수"
            ],
            "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": []
          }
        ]
      },
      {
        "scene_index": 27,
        "scene_heading": "S#28. 바다 + 갑판 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "해질 무렵 소형 어선의 갑판 위, 인우를 향해 지도를 내민 채 멈춘 수리영.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "수리영이 내민 지도를 내려다보며 미간을 찌푸린 인우의 정면 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "인우",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "인우의 시야를 향해 낡은 사진을 불쑥 내민 수리영의 손.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "수리영의 손에 들린 사진을 보고 눈이 커진 채 당황한 표정으로 굳어버린 인우의 얼굴.",
            "based_on_beat": 2,
            "characters": [
              "인우",
              "수리영"
            ],
            "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": 3,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 28,
        "scene_heading": "S#29. 조타실 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "어둑한 조타실 내부, 선박의 방향타를 양손으로 꽉 움켜쥔 인우의 손.",
            "based_on_beat": 1,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "방향타를 잡은 인우의 팔을 두 손으로 꽉 붙잡고 매섭게 노려보는 수리영.",
            "based_on_beat": 1,
            "characters": [
              "인우",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영을 향해 굳은 표정으로 입을 크게 벌리고 멈춘 인우의 측면 얼굴.",
            "based_on_beat": 1,
            "characters": [
              "인우",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "구겨진 낡은 사진 속 평면 이미지로 존재하는 한 어린아이의 모습을 손가락으로 꾹 가리킨 수리영의 손.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "핏기가 가신 창백한 얼굴로 허공을 응시하며 굳어버린 인우의 정면 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "인우의 어깨너머로 보이는, 조타실 벽면에 어지럽고 선명하게 그려진 수많은 붉은 원들.",
            "based_on_beat": 3,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "벽면의 붉은 원들을 바라보며 극도의 충격에 빠져 초점을 잃은 수리영의 얼굴 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "눈이 반쯤 감긴 채 몸이 앞으로 쏠려 기울어진 수리영의 상체.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "인우의 어깨에 머리를 기댄 채 축 늘어진 수리영의 뒷모습.",
            "based_on_beat": 3,
            "characters": [
              "인우",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "자신의 어깨에 쓰러진 수리영을 서늘하게 내려다보는 인우의 눈빛 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "인우",
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 29,
        "scene_heading": "S#30. 바다 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "황금빛 노을이 짙게 반사되는 고요한 바다 위를 떠 있는 소형 어선의 원경.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "어선의 진행 방향 앞을 가로막고 있는 거대하고 짙은 안개 벽의 위압적인 모습.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "선체의 앞부분 절반이 뿌연 안개 속으로 진입하며 뱃머리에 물살을 일으키고 있는 소형 어선의 측면 구도.",
            "based_on_beat": 1,
            "characters": [],
            "original_description": "선체의 앞부분 절반이 뿌연 안개 속으로 완전히 잠긴 채 멈춘 소형 어선의 측면 구도.",
            "validator_reason": "원문의 이동 동작을 '멈춘'으로 변환하여 추진력이 상실되었으므로 진입하며 물살을 가르는 찰나로 수정함.",
            "character_ids": []
          }
        ]
      }
    ],
    "total_shots": 174,
    "changed_shots": 27
  },
  "step_id": "shot_validator",
  "run_id": "071aef05-cec0-4a15-85fc-8f62b1303c33",
  "resolved_model": "gemini-pro",
  "updated_at": "2026-05-31T23:33:40.513074+00:00",
  "schema_version": 1,
  "config_hash": "99914b932bd37a50",
  "project_config_snapshot": {}
}