{
  "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": [],
            "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": "노란색 폴리스 라인이 처진 숲속 사건 현장에 멈춰 선 한국인 경찰들의 뒷모습이 담긴 TV 뉴스 화면",
            "based_on_beat": 1,
            "characters": [
              "한국인 경찰들"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "들것에 덮인 흰 천의 양끝을 쥔 채 멈춰 선 한국인 경찰들의 모습이 담긴 TV 뉴스 화면",
            "based_on_beat": 1,
            "characters": [
              "한국인 경찰들"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "무전기를 입가에 댄 채 무리 한가운데 선 상태로 앞을 응시하는 혜수의 상체가 담긴 TV 뉴스 화면",
            "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": "어두운 표정으로 거실의 켜진 TV 화면을 응시하는 민숙의 옆얼굴",
            "based_on_beat": 1,
            "characters": [
              "민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "열린 방문 틈에 선 채 한 팔을 위로 뻗고 다른 손을 눈가에 얹어 정지한 수리영의 정면",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "한 손으로 TV 리모컨의 전원 버튼을 누르고 수리영을 향해 고개를 돌린 채 억지 미소를 머금은 민숙의 정면",
            "based_on_beat": 1,
            "characters": [
              "민숙",
              "수리영"
            ],
            "original_description": "한 손으로 TV 리모컨의 전원 버튼을 누른 채 고개를 돌려 수리영을 향해 억지 미소를 머금은 민숙의 정면",
            "validator_reason": "'고개를 돌려'라는 표현이 동작의 순차적 진행으로 읽힐 수 있어, '고개를 돌린 채'로 정지된 자세임을 명확히 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "식탁 의자에 턱을 괸 채 입을 비죽 내민 수리영의 상체",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "갈색 액체가 담긴 컵을 수리영 쪽으로 밀어놓은 채 멈춘 민숙의 손",
            "based_on_beat": 2,
            "characters": [
              "민숙",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "현관문 앞에서 한쪽 운동화 끈을 묶기 위해 허리를 숙인 수리영의 전신",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "민숙의 목을 끌어안은 채 어깨에 얼굴을 파묻은 수리영의 모습",
            "based_on_beat": 2,
            "characters": [
              "민숙",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "수리영의 시선(POV), 민숙의 손목 안쪽에 새겨진 짙은 색의 작은 원형 문양 클로즈업",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "민숙"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 6,
        "scene_heading": "S#6. 해안가 도로 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "푸른 바다가 보이는 해안 도로, 이어폰을 꽂고 자전거 핸들을 쥔 채 미소 지은 수리영의 상체, 머리카락이 주행 방향 반대로 휘날리고 있는",
            "based_on_beat": 0,
            "characters": [
              "수리영"
            ],
            "original_description": "푸른 바다가 보이는 해안 도로, 이어폰을 꽂고 자전거 핸들을 쥔 채 미소 지은 수리영의 상체",
            "validator_reason": "원문의 자전거 주행 동작에 따른 방향성과 속도감을 보존하기 위해 머리카락이 휘날리는 mid-action 상태를 추가함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 7,
        "scene_heading": "S#7. 유기견 보호원 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "이빨을 드러낸 채 철장 안에서 뒷다리로 선 커다란 검은 개의 정면",
            "based_on_beat": 1,
            "characters": [
              "커다란 검은 개"
            ],
            "original_description": "이빨을 드러내며 철장 안에서 뒷다리로 선 커다란 검은 개의 정면",
            "validator_reason": "'~하며'라는 시간 진행 표현을 배제하고 정지된 시각적 상태를 묘사하기 위해 '~채'로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "철장 바깥에서 개를 향해 미간을 찌푸린 채 날카롭게 노려보는 수리영의 눈매 클로즈업",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "바닥에 엎드린 개와, 그 개의 엉덩이에 주사기를 꽂은 채 멈춘 한국인 중년 수의사의 손",
            "based_on_beat": 1,
            "characters": [
              "개",
              "한국인 중년 수의사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "휴대전화를 귀에 댄 채 벽시계를 향해 시선을 고정한 초조한 표정의 수리영 옆얼굴",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "휴대전화를 귀에 댄 채 벽시계를 올려다보며 초조한 표정을 지은 수리영의 옆얼굴",
            "validator_reason": "'~하며'라는 동작 연결어를 삭제하고 시선이 고정된 한 순간의 상태로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "미용 가위를 쥔 채 개 쪽으로 고개를 돌린 한국인 여성 도우미의 모습",
            "based_on_beat": 2,
            "characters": [
              "한국인 여성 도우미"
            ],
            "original_description": "미용 가위를 들고 개 쪽으로 고개를 돌린 한국인 여성 도우미의 모습",
            "validator_reason": "'~고'라는 동작 연결어를 배제하고 시각적 고정 상태를 나타내는 '~채'로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "소형견을 품에 안은 채 가위를 쥐고 정지한 수리영의 상체",
            "based_on_beat": 2,
            "characters": [
              "소형견",
              "수리영"
            ],
            "original_description": "소형견을 품에 안고 가위를 든 채 멈춘 수리영의 상체",
            "validator_reason": "'~고'라는 시간 연속 단서를 배제하고 안고 있는 자세의 결과 상태로 고정함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 8,
        "scene_heading": "S#8. 번화가·대형 마트 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "화려한 네온사인과 길거리 포장마차 사이로 자전거 안장에 앉아 한쪽 페달을 밟아 내리는 중간 순간, 머리카락이 반대 방향으로 흩날리는 수리영의 전신",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "화려한 네온사인과 길거리 포장마차 사이로 자전거 페달을 밟고 선 수리영의 전신",
            "validator_reason": "원문의 이동 동작을 반영하여 자전거를 타는 추진력이 보존된 mid-action 찰나로 재작성했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "대형 마트 내부, 진열대 사이에서 주변으로 고개를 돌린 수리영의 상체",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "마트 유니폼을 입은 한국인 중년 여직원 앞에서 눈을 동그랗게 뜬 수리영의 정면",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "여직원"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "종이 상자를 든 채 수리영 쪽으로 고개를 내민 남자 직원의 옆얼굴",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "남자 직원"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "마트 자동문 밖을 향해 걷는 도중 한 발이 허공에 뜬 채로 한 손에 든 휴대전화 액정을 내려다보는 수리영의 모습",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "마트 자동문 밖으로 걸어 나온 수리영이 한 손에 든 휴대전화 액정을 내려다보는 모습",
            "validator_reason": "시간 순서(걸어 나온 후 내려다봄)를 제거하고 걷는 동작의 추진력을 보존하는 mid-stride 자세로 재작성했습니다.",
            "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": 9,
        "scene_heading": "S#9. 해안가 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 밤바다를 배경으로, 가로등 불빛 아래 자전거 핸들을 움켜쥐고 상체를 숙인 채 한쪽 페달을 밟고 있는 수리영의 측면 구도, 옷자락이 주행 반대 방향으로 날리는 정지 순간",
            "based_on_beat": 0,
            "characters": [
              "수리영"
            ],
            "original_description": "어두운 밤바다를 배경으로, 가로등 불빛 아래 자전거 핸들을 움켜쥐고 상체를 숙인 수리영의 측면 구도",
            "validator_reason": "자전거 주행의 추진력과 방향성을 보존하기 위해 mid-action 상태(페달 밟는 중, 옷자락 날림)로 재작성함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 10,
        "scene_heading": "S#10. 옥탑방 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 옥상, 평상 위 말린 식물 잎사귀들이 바람에 날려 허공에 떠 있는 상태",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "바닥에 흩어진 잎사귀 위로 멈춰 선 낡은 구두와 길게 늘어진 그림자",
            "based_on_beat": 1,
            "characters": [
              "낯선 남자"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "굳게 닫힌 낡은 철문과 문틈에 끼워진 종이 전단지",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "전단지 끝을 문틈 안쪽으로 깊숙이 밀어 넣은 낯선 남자의 손가락 클로즈업",
            "based_on_beat": 1,
            "characters": [
              "낯선 남자"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "살짝 벌어진 철문 틈 사이로 보이는 어두운 실내",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "불이 꺼진 거실 창문 커튼 위로 거대하게 비친, 두 사람이 뒤엉킨 검은 그림자 실루엣",
            "based_on_beat": 2,
            "characters": [
              "민숙",
              "낯선 남자"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "어둠 속 바닥에 쓰러진 민숙의 어깨 위로 얼굴을 파묻은 낯선 남자의 뒷모습 구도",
            "based_on_beat": 2,
            "characters": [
              "민숙",
              "낯선 남자"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 11,
        "scene_heading": "S#11. 옥탑 방 밖 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "다세대 빌라 대문 앞에 자전거를 세워둔 채 서 있는 수리영의 뒷모습",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "좁은 골목길을 가로질러 다세대 빌라 대문 앞에 자전거를 세운 채 멈춘 수리영의 뒷모습",
            "validator_reason": "'가로질러'라는 이동 과정의 표현이 정지 동작과 섞여 있어 시간 진행이 느껴지므로 정지 상태만 남김",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "어두운 계단 중턱에 선 채 고개를 위로 꺾어 옥상 쪽을 올려다보는 수리영의 얼굴",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "계단 끝에서 한 손으로 코를 막은 채 미간을 잔뜩 찌푸린 수리영의 상체",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "수리영의 시선(POV), 어두운 옥상 안쪽에 반쯤 열려 있는 녹슨 현관 철문",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "반쯤 열린 철문 앞을 향해 조심스럽게 한 발을 내디딘 수리영의 긴장된 표정",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 12,
        "scene_heading": "S#12. 옥탑방 안 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 거실, 끓다 식은 냄비와 켜진 TV의 불빛 속으로 한 발을 내디딘 수리영의 전신 구도",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "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": "수리영의 시선(POV), 어깨와 쇄골의 살점이 짐승에게 뜯긴 듯 잔혹하게 훼손되어 피를 흘린 채 바닥에 주저앉아 고개를 떨군 민숙의 참혹한 시신",
            "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": [
              "수리영"
            ],
            "original_description": "두 팔을 앞으로 든 채 몸을 뒤로 젖히며 한 발을 뒤로 뺀 수리영의 전신",
            "validator_reason": "'~하며'라는 시간 연결어를 제거하고 뒤로 물러서며 몸을 젖힌 정지 상태의 자세로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "휴대전화를 귓가에 밀착한 채 눈물이 볼을 타고 흐르는 상태로 멈춘 수리영의 측면",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "눈물을 흘리며 휴대전화를 귓가에 밀착한 수리영의 측면",
            "validator_reason": "'눈물을 흘리며'라는 연속 동작을 제거하고 눈물이 흐르는 순간의 단일 찰나 상태로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "죽은 민숙의 굳은 손아귀에 반쯤 쥐어진 구겨진 사진 클로즈업",
            "based_on_beat": 2,
            "characters": [
              "민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "구겨진 사진을 향해 손끝을 뻗은 채 멈춘 수리영의 손",
            "based_on_beat": 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": [
              "수리영"
            ],
            "original_description": "벽면을 향해 고개를 꺾은 채 눈을 질끈 감고 입을 크게 벌려 비명을 지르는 수리영의 정면",
            "validator_reason": "'비명을 지르는'이라는 연속 동작을 제거하고 입을 크게 벌린 정지 자세로 수정함.",
            "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": [
              "수리영",
              "혜수"
            ],
            "original_description": "수리영을 향해 양팔을 앞뒤로 뻗은 채 다급히 달려오는 혜수의 전신",
            "validator_reason": "'달려오는'이라는 연속 동작을 한 발이 공중에 뜬 mid-action 정지 순간으로 재작성함",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "혜수를 올려다보며 눈망울이 붉게 젖은 수리영의 얼굴 클로즈업",
            "based_on_beat": 2,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "눈썹을 치켜올리고 입을 벌린 채 그 자리에 멈춰 선 혜수의 놀란 표정",
            "based_on_beat": 2,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "옥탑방 계단을 향해 허리를 숙인 채 첫 계단을 밟은 혜수와, 그 바로 뒤에서 한 발을 허공에 든 채 달려가는 포즈의 김형사 뒷모습",
            "based_on_beat": 2,
            "characters": [
              "혜수",
              "김형사"
            ],
            "original_description": "옥탑방 계단을 향해 허리를 숙인 채 첫 계단을 밟은 혜수와 그 뒤를 쫓는 김형사의 뒷모습",
            "validator_reason": "'뒤를 쫓는'이라는 진행 동작을 한 발을 허공에 든 mid-action 순간으로 구체화함",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 14,
        "scene_heading": "S#14. 옥탑방 안 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "옥탑방 현관 밖으로 한 발을 내디딘 자세로 어깨를 늘어뜨린 채 허탈한 표정을 짓는 김형사의 상체",
            "based_on_beat": 1,
            "characters": [
              "김형사"
            ],
            "original_description": "옥탑방 현관 밖으로 걸어 나오며 어깨를 늘어뜨린 채 허탈한 표정을 짓는 김형사의 상체",
            "validator_reason": "금지된 진행형 연결어 '걸어 나오며'를 이동 방향을 보존한 걷기 중간의 정지 자세로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "김형사 뒤에 선 상태로 수리영을 향해 심각한 표정을 지은 혜수의 얼굴",
            "based_on_beat": 1,
            "characters": [
              "김형사",
              "수리영",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "열린 방문 틈으로 고개를 쑥 내민 수리영의 동그랗게 커진 눈",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "핏자국이나 붉은 표식 없이 지나치게 깔끔하게 정돈된 수리영의 방안 전경",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "텅 빈 방안에 시선을 고정한 채 혈색 없이 파리해진 수리영의 정면",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "텅 빈 방안을 바라보며 혈색 없이 파리해진 수리영의 정면",
            "validator_reason": "금지된 시간 연결어 '~하며(바라보며)'를 시선이 향해 있는 결과 상태 묘사로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "거실 식탁 앞에 두 손을 짚은 채 몸을 기울인 수리영의 측면 구도",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "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": [
              "김형사",
              "혜수"
            ],
            "original_description": "눈꼬리를 올리고 입매를 굳힌 채 김형사의 옆얼굴을 매섭게 노려보는 혜수",
            "validator_reason": "순차적 연결어인 '~고(올리고)'를 동시적 고정 상태를 나타내는 표현으로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "수리영의 어깨 위에 한 손을 얹은 채 눈높이를 맞추려 상체를 숙인 혜수",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "혜수를 멍하니 바라보는 수리영의 초점 잃은 측면 눈동자",
            "based_on_beat": 3,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 12,
            "description": "수리영 방 한구석, 백팩과 인형의 위치가 이전과 미세하게 비틀어진 채 놓여 있는 정지 구도",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 15,
        "scene_heading": "S#15. 해안가. 버스정류장 부근 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 밤바다를 등진 버스정류장 의자에 앉아 시선을 바닥에 둔 수리영의 멍한 옆모습",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "수리영의 얼굴 앞으로 차가운 음료수 캔을 불쑥 내민 채 멈춘 혜수의 손",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "의자에서 일어서서 두 주먹을 꽉 쥔 채 허리를 꼿꼿이 세우고 서 있는 수리영의 전신",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "의자에서 벌떡 일어나 두 주먹을 꽉 쥔 채 허리를 꼿꼿이 세운 수리영의 전신",
            "validator_reason": "'벌떡 일어나'라는 동작의 과정을 제외하고 일어선 직후의 정지된 자세로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "어둠 속 해안 도로를 따라 달리는 도중 한쪽 발이 공중에 떠 있고 반대쪽 발이 막 땅에 닿으려는 찰나의 수리영의 뒷모습",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "어둠 속 해안 도로를 따라 급하게 달려 나가는 수리영의 뒷모습",
            "validator_reason": "이동 동작인 '달려 나가는'을 역동성이 보존된 mid-action 순간으로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "달려가는 수리영의 등을 향해 양손을 입가에 모으고 소리치는 혜수의 정면 상체",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "혜수"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 16,
        "scene_heading": "S#16. 경찰서 사무실 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "경찰서 유리문을 반쯤 밀어젖힌 채 휴대전화를 귓가에 바짝 댄 혜수의 급박한 정면",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "original_description": "경찰서 유리문을 밀어 열며 휴대전화를 귓가에 바짝 댄 혜수의 급박한 정면",
            "validator_reason": "'~열며'라는 진행 연결어를 고정된 정지 자세('밀어젖힌 채')로 수정하여 한 찰나로 만들었습니다.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "사무실 책상에 앉아 턱을 괸 채 서류 더미를 쳐다보는 김형사의 측면",
            "based_on_beat": 1,
            "characters": [
              "김형사"
            ],
            "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": [
              "혜수"
            ],
            "original_description": "창밖의 짙은 어둠을 응시하며 눈을 가늘게 뜬 채 입매를 굳힌 혜수의 옆얼굴",
            "validator_reason": "금지된 시간 진행 연결어인 '~하며'를 제거하고 '응시한 채'라는 고정 상태 묘사로 변경했습니다.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 17,
        "scene_heading": "S#17. 옥탑방 / 동틀무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "푸른 새벽빛이 감도는 낡은 옥탑방 외벽 위로 노란 눈을 빛내며 고개를 불쑥 내민 검은 고양이",
            "based_on_beat": 0,
            "characters": [
              "검은 고양이"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "옥탑방 담벼락 위에서 앞발 하나를 허공에 든 채 담 안쪽을 내려다보는 검은 고양이의 측면 전신",
            "based_on_beat": 0,
            "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": [
              "수리영"
            ],
            "original_description": "소리에 반응해 눈을 번쩍 뜨고 어깨를 움츠린 수리영의 상체",
            "validator_reason": "순차적 행동을 암시하는 표현('뜨고')을 제거하고 완전히 멈춘 단일 결과 상태로 수정",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "거실에서 굳게 닫힌 수리영 방의 하얀 문을 바라보는 정면 구도",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "수리영 방의 둥근 금속 손잡이를 꽉 쥔 수리영의 손 클로즈업",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "살짝 열린 문틈 사이로 핏자국 하나 없이 깨끗한 방바닥이 보이는 구도",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영이 양손으로 방안 창문의 커튼 양끝을 꽉 쥔 채 멈춰 선 뒷모습",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "수리영의 시선(POV), 젖혀진 커튼 뒤로 시신 없이 텅 빈 먼지 낀 창틀의 정지 구도",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "고개를 숙이고 눈을 지그시 감은 채 가슴에 한 손을 얹은 수리영의 상체",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "화면이 켜진 휴대전화를 손바닥에 올려둔 채 놀란 표정으로 내려다보는 수리영의 얼굴",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "눈을 동그랗게 뜬 채 휴대전화를 귀에 바짝 붙인 수리영의 정면",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "굳은 표정으로 입술을 꽉 깨문 채 허공을 응시하는 수리영의 옆얼굴",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 12,
            "description": "인형이 매달린 백팩 끈을 한 손으로 쥔 채 방문 밖으로 걸음을 내딛는 중간 자세, 한 발이 바닥에서 막 떨어진 상태의 수리영 전신",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "인형이 매달린 백팩 끈을 한 손으로 말아 쥔 채 방문 밖으로 걸어 나오는 수리영의 전신",
            "validator_reason": "이동 동사('걸어 나오는')를 동적 동사 freeze 규칙에 따라 mid-action 자세로 보존하여 재작성",
            "character_ids": []
          },
          {
            "shot_index": 13,
            "description": "욕실 세면대 앞, 양손에 고인 물을 얼굴 쪽으로 가져간 상태로 멈춘 수리영의 상체",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 14,
            "description": "물방울이 맺힌 거울 안쪽에, 욕실 벽면 위로 선명하게 그려진 붉은 원이 비친 구도",
            "based_on_beat": 4,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 15,
            "description": "어깨를 굳히고 고개를 거울 밖 실제 욕실 벽면으로 돌린 채 시선을 고정하고 있는 수리영의 얼굴",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "original_description": "어깨를 굳힌 채 고개를 홱 돌려 거울 밖 실제 욕실 벽면을 쳐다보는 수리영의 얼굴",
            "validator_reason": "연속 동작을 암시하는 부사 '홱'과 진행형 '돌려'를 제거하고 단일 고정 상태로 수정",
            "character_ids": []
          },
          {
            "shot_index": 16,
            "description": "식탁 위 나무 액자 속에 갇힌 기록 이미지, 환하게 웃는 민숙의 얼굴 형상이 촛농처럼 기괴하게 뭉개져 흘러내리는 왜곡된 사진 클로즈업",
            "based_on_beat": 4,
            "characters": [
              "민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 17,
            "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": "마트 진열대 사이에서 고개를 돌린 수리영의 상체",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "마트 진열대 사이, 물건 쪽을 향해 멈춰 선 남자 직원 앞에서 수리영이 한쪽 발을 내딛은 mid-step 자세로 다가가는 옆얼굴",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "남자 직원"
            ],
            "original_description": "물건 쪽을 향해 멈춰 선 남자 직원 앞으로 다가간 수리영의 옆얼굴",
            "validator_reason": "수리영이 남자 직원 앞으로 다가가는 이동 동작을 결과 상태처럼 표현해 motion direction이 약해져, 한 찰나의 mid-action 자세로 보존했습니다.",
            "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": "마트 밖, 건물 외벽에 매달린 CCTV 카메라 렌즈 쪽을 올려다보는 수리영의 측면",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "수리영의 시선(POV), 마트 외벽에 고정된 둥근 CCTV 카메라 구도",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "휴대전화를 귀에 댄 채 입을 연 수리영의 정면",
            "based_on_beat": 1,
            "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": [
              "수리영",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "고개를 갸우뚱 기울인 채 혜수 쪽으로 얼굴을 향한 한국인 보안팀 직원의 정면",
            "based_on_beat": 1,
            "characters": [
              "한국인 보안팀 직원",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "어둡게 가려져 형체만 희미하게 보이는 모니터 속 CCTV 화면 클로즈업",
            "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": []
          }
        ]
      },
      {
        "scene_index": 21,
        "scene_heading": "S#21. 경찰서 안 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "서류를 든 채 혜수 앞을 막아선 김형사의 정면",
            "based_on_beat": 1,
            "characters": [
              "김형사",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "김형사를 향해 고개를 살짝 숙인 혜수의 측면",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "김형사를 향해 난감한 표정을 지은 혜수의 얼굴",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "혜수와 김형사 뒤에서 주변으로 고개를 돌린 수리영의 상체",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "혜수",
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "사무실 밖을 향해 걷는 중, 한 발이 바닥에서 막 떨어져 공중에 뜬 미드-스트라이드 자세인 김형사의 뒷모습",
            "based_on_beat": 1,
            "characters": [
              "김형사"
            ],
            "original_description": "사무실 밖을 향해 걸음을 내디딘 김형사의 뒷모습",
            "validator_reason": "걷는 동작이므로 추진 방향을 보존한 미드-액션(mid-stride) 정지 상태로 재작성했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "미소를 띤 채 한 손을 들어 올린 혜수의 정면",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "문 밖으로 걸어 나가는 중, 다리가 교차된 미드-스트라이드 자세의 한국인 형사들 등 뒤로 보이는 텅 빈 사무실 전경",
            "based_on_beat": 1,
            "characters": [
              "한국인 형사들"
            ],
            "original_description": "문 밖으로 걸음을 옮긴 한국인 형사들의 등 뒤로 보이는 텅 빈 사무실 전경",
            "validator_reason": "걸어 나가는 이동 동작이므로 미드-액션 정지 상태로 재작성했습니다.",
            "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": 1,
            "characters": [
              "시신"
            ],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "두 눈을 크게 뜬 채 입을 벌리고 얼어붙은 수리영의 얼굴",
            "based_on_beat": 1,
            "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": [
              "수리영"
            ],
            "original_description": "빈 사무실 좌우로 시선을 돌린 수리영의 긴장된 얼굴",
            "validator_reason": "'좌우로 시선을 돌린'은 연속 동작이므로 한 방향으로 시선이 멈춘 단일 찰나로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 15,
            "description": "마우스를 쥔 수리영의 손가락 클로즈업",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 16,
            "description": "수리영의 시선(POV), 해상 지도 위 좌표와 빨간 핀이 표시된 모니터 화면 클로즈업",
            "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": [
              "수리영"
            ],
            "original_description": "펜을 쥔 채 종이 위에 숫자 좌표를 적어 내린 수리영의 손",
            "validator_reason": "글씨를 적어 내리는 과정은 연속 동작이므로 펜이 종이에 닿은 한 찰나로 고정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 19,
            "description": "접은 메모지를 쥔 손가락이 주머니 입구에 반쯤 들어간 미드-액션 자세의 수리영의 손",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "접은 메모지를 주머니 안으로 밀어 넣은 수리영의 손가락",
            "validator_reason": "밀어 넣는 과정은 연속 동작이므로 손가락이 반쯤 들어간 찰나의 상태로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 20,
            "description": "출입문 밖을 향해 걷는 중, 한 발이 지면에서 허공으로 들린 미드-스트라이드 자세의 수리영 뒷모습",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "출입문 밖으로 발을 내디딘 수리영의 뒷모습",
            "validator_reason": "걷는 동작이므로 추진 방향을 보존한 미드-액션(mid-stride) 정지 상태로 재작성했습니다.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 22,
        "scene_heading": "S#22. 경찰서 밖 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "경찰서 밖, 자전거 페달 위에 발을 올린 수리영의 전신",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "자전거 핸들을 꽉 쥔 채 도로를 향해 상체를 숙인 수리영의 측면",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "PC방 안, 모니터 불빛에 비친 수리영의 진지한 정면",
            "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": 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": "원문의 '달리는' 추진력을 보존하기 위해 '멈춰 선' 표현을 제거하고 물보라를 일으키며 회전하는 순간으로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "비에 흠뻑 젖은 채 자전거 안장에 앉아 한쪽 페달을 힘껏 밟아 내리는 중간 동작의 수리영 전신, 뒤로 흩날리는 빗물",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "비에 흠뻑 젖은 채 자전거 페달을 강하게 밟은 수리영의 전신",
            "validator_reason": "자전거를 타고 달리는 동작의 방향성과 추진력을 명확히 하기 위해 mid-action 자세(페달을 밟아 내리는 중간 동작)로 구체화했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "눈을 부릅뜬 채 빗물 흐르는 앞을 노려보는 수리영의 굳은 얼굴 클로즈업",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "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": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "진흙이 묻은 낯선 발자국들이 방바닥에 찍혀 있는 구도 클로즈업",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "열린 방문 틈으로 붉은 원 형태가 그려진 벽면이 보이는 구도",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "벽면의 붉은 원 한가운데 꽂혀 있는 낡고 피 묻은 사진 클로즈업",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "붉은 원을 향해 조심스레 한 손을 뻗은 수리영의 측면",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "벽에서 떼어낸 피 묻은 사진을 눈앞까지 들어 올린 수리영의 손",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "수리영의 시선(POV), 7-80년대 시골 식당 앞 둥근 원 장식 아래 앉은 두 소녀가 찍힌 낡은 사진 클로즈업",
            "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": []
          }
        ]
      },
      {
        "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": 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": "'움켜쥐고 고정한'이 연속된 작업일 수 있어 닻줄을 묶는 과정의 한 찰나로 재작성함.",
            "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": 1,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "바다를 등진 채 휴대전화를 입가에 가져다 댄 수리영의 측면",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 12,
            "description": "배에 오르기 위해 뱃전 위로 한 발을 들어 올리고 다른 발은 바닥에 둔 승선 중간 자세의 수리영 전신",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "배에 오르기 위해 뱃전 위로 한 발을 들어 올린 수리영의 전신",
            "validator_reason": "배에 오르는 이동 동작의 추진력을 보존하기 위해 승선 과정의 한순간(mid-action)으로 명확히 함.",
            "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": [
              "혜수",
              "김형사"
            ],
            "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": 27,
        "scene_heading": "S#28. 바다 + 갑판 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "바다 한가운데 덩그러니 떠 있는 낡은 소형 어선의 외부 전경 구도",
            "based_on_beat": 0,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "갑판 위에 홀로 앉은 상태로, 펼쳐진 종이 지도를 앞을 향해 뻗은 채 멈춘 수리영의 상체",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영이 내민 지도를 내려다보며 미간을 잔뜩 찌푸린 인우의 얼굴",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "낡은 흑백 사진을 두 손가락으로 집어 든 채 앞으로 내민 수리영의 손",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "사진을 내려다본 채 눈을 크게 뜨고 입매를 굳힌 인우의 정면",
            "based_on_beat": 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": 3,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "조타실 문을 향해 거칠게 어깨를 비틀어 선 인우의 뒷모습",
            "based_on_beat": 3,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "인우의 뒤를 쫓아 조타실 입구를 향해 달려가는 도중, 한 발은 지면을 차고 다른 한 발은 허공에 뜬 채 상체가 앞으로 쏠린 수리영의 전신",
            "based_on_beat": 4,
            "characters": [
              "인우",
              "수리영"
            ],
            "original_description": "인우의 뒤를 쫓아 조타실 입구를 향해 한 발을 내디딘 수리영의 전신",
            "validator_reason": "추적하는 이동 동작의 추진력과 방향성을 보존하기 위해 mid-action 자세로 재작성함.",
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "조타실 문 안쪽으로 한쪽 어깨를 밀어 넣은 채 두 손을 앞으로 뻗은 수리영의 상체",
            "based_on_beat": 4,
            "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": [
              "수리영",
              "인우"
            ],
            "original_description": "수리영 쪽으로 고개를 꺾어 핏발 선 눈을 부릅뜬 인우의 측면",
            "validator_reason": "'고개를 꺾어'라는 시간 순서의 연결어를 제거하고 '고개를 꺾은 채'라는 정지 상태로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "인우를 향해 얼굴을 들이민 채 분노로 입술을 꽉 깨문 수리영의 일그러진 얼굴",
            "based_on_beat": 1,
            "characters": [
              "인우",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "낡은 사진 속, 둥근 원 장식 아래 앉은 한 소녀의 얼굴 위에 손가락을 짚은 수리영의 손 클로즈업",
            "based_on_beat": 2,
            "characters": [
              "소녀",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "수리영의 손가락 끝을 향해 시선을 고정한 채 턱이 살짝 벌어진 인우의 정면",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "눈썹을 위로 치켜올린 채 창백하게 굳어 있는 인우의 표정",
            "based_on_beat": 2,
            "characters": [
              "인우"
            ],
            "original_description": "눈썹을 위로 치켜올린 채 얼굴의 핏기가 가셔 창백해진 인우의 굳은 표정",
            "validator_reason": "'핏기가 가셔'라는 상태 변화 과정을 나타내는 표현을 제거하고 창백한 고정 상태로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "수리영의 시선(POV), 조타실 벽면에 어지럽게 겹쳐 그려진 수많은 붉은 원 문양들의 정지 구도",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "벽면에 그려진 붉은 원 문양을 향해 시선을 고정한 채 눈동자가 멍해진 수리영의 얼굴",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "눈꺼풀이 반쯤 감긴 채 옆으로 기우뚱하게 기울어진 수리영의 상체",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "original_description": "눈꺼풀이 반쯤 감긴 채 몸의 중심을 잃고 옆으로 기우뚱하게 무너진 수리영의 상체",
            "validator_reason": "'중심을 잃고'라는 선행 동작 표현을 제거하고, 기울어진 찰나의 정지 자세만 남겼습니다.",
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "서늘한 눈빛으로 허공을 응시하는 인우의 어깨 위로 고개를 떨군 채 쓰러진 수리영의 정지 구도",
            "based_on_beat": 4,
            "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": [],
            "character_ids": []
          }
        ]
      }
    ],
    "total_shots": 211,
    "changed_shots": 47
  },
  "step_id": "shot_validator",
  "run_id": "45196c0d-90be-4972-84a1-6e904ad61c99",
  "resolved_model": "gemini-pro",
  "updated_at": "2026-05-09T10:33:08.330716+00:00",
  "schema_version": 1,
  "config_hash": "99914b932bd37a50",
  "project_config_snapshot": {}
}