{
  "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": "어둡고 거친 숲속 수풀을 거칠게 헤치며 앞으로 뛰어가는 금월산 피해 남성의 mid-action 찰나, 한쪽 신발이 벗겨진 맨발이 땅에서 떨어져 있고 앞쪽 수풀이 밀려나는 모습.",
            "based_on_beat": 1,
            "characters": [
              "금월산 피해 남성"
            ],
            "original_description": "어둡고 거친 숲속 수풀 사이로, 한쪽 신발이 벗겨진 금월산 피해 남성이 잔뜩 웅크린 채 멈춘 정지 순간.",
            "validator_reason": "도망치는 동작의 추진력을 상실한 정지 묘사 대신, 방향성이 보존된 mid-action 찰나로 재작성함.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "진흙이 묻은 금월산 피해 남성의 땀에 젖은 얼굴이 공포로 심하게 일그러진 정면 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "금월산 피해 남성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "허공에서 튀어나온 검은 형상의 정체불명 존재가 금월산 피해 남성의 머리 위로 두 팔을 뻗은 채 체공 중인 1/1000초의 찰나.",
            "based_on_beat": 1,
            "characters": [
              "정체불명 존재",
              "금월산 피해 남성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "바닥에 쓰러진 금월산 피해 남성의 몸통 위를 짙은 그림자 같은 존재가 완전히 짓누른 채 정지된 하이앵글 구도.",
            "based_on_beat": 1,
            "characters": [
              "그림자 같은 존재",
              "금월산 피해 남성"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 2,
        "scene_heading": "S#2. 도시 뒷골목 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "희미하고 차가운 가로등 불빛 아래, 어두운 골목길 전봇대에 한국인 신원미상 남성과 효장동 피해 여성이 몸을 바싹 밀착한 측면 구도.",
            "based_on_beat": 1,
            "characters": [
              "한국인 신원미상 남성",
              "효장동 피해 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "어둠 속에서 한국인 신원미상 남성의 두 눈동자만 핏빛으로 붉게 번쩍이는 얼굴 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "한국인 신원미상 남성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "한국인 신원미상 남성의 입술이 효장동 피해 여성의 목덜미를 깊게 문 채, 검붉은 핏방울이 공중에 튄 정지 순간.",
            "based_on_beat": 1,
            "characters": [
              "한국인 신원미상 남성",
              "효장동 피해 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "목에서 피를 흘리는 효장동 피해 여성이 전봇대 아래 차가운 시멘트 바닥에 힘없이 늘어진 채 멈춘 정지 구도.",
            "based_on_beat": 1,
            "characters": [
              "효장동 피해 여성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "텅 빈 어두운 골목길 바닥에 효장동 피해 여성이 미동 없이 쓰러져 있는 적막하고 넓은 앵글.",
            "based_on_beat": 2,
            "characters": [
              "효장동 피해 여성"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 3,
        "scene_heading": "S#3. 현장 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "채도가 낮고 스산한 숲속 흙바닥 위, 노란색 폴리스 라인 너머로 하얀 천이 덮인 시신 들것이 놓인 정물 구도.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "어두운 감식복을 입은 한국인 경찰들이 흙바닥에 쪼그려 앉아 시신 쪽을 향해 장갑 낀 손을 뻗은 채 멈춘 정지 순간.",
            "based_on_beat": 1,
            "characters": [
              "한국인 경찰들"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "무거운 안색을 띤 혜수가 폴리스 라인 앞 경찰 무리 한가운데서 무전기를 쥔 채 꼿꼿이 서 있는 상반신 정면.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "경찰 무리"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 4,
        "scene_heading": "S#4. 옥탑방 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "빛바랜 콘크리트 건물들이 빼곡하게 들어선 인천 변두리 주택가의 건조하고 회색빛 도는 전경 부감.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "오래된 다세대 빌라 옥상 위, 녹슨 철문이 달린 낡은 옥탑방 외부가 삭막하게 담긴 넓은 정지 구도.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 5,
        "scene_heading": "S#5. 옥탑방 안 / 실내",
        "shots": [
          {
            "shot_index": 1,
            "description": "빛이 가늘게 떨어지는 거실 싱크대 위에 흙 묻은 씻다 만 약초가 놓여 있고, 수도꼭지 끝에 물방울이 맺힌 정물 클로즈업.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "앞치마를 두른 강민숙이 미간을 찌푸린 채 거실 TV 화면을 뚫어지게 응시하는 측면 상반신.",
            "based_on_beat": 1,
            "characters": [
              "강민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "열린 방문 앞에 선 수리영이 양팔을 천장으로 뻗은 채 눈을 감고 기지개를 켜는 정지 순간.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "방문을 열고 나온 수리영이 양팔을 천장으로 뻗은 채 눈을 감고 있는 정지 순간.",
            "validator_reason": "'문을 열고 나온'이라는 연속/순차 동작을 제거하고 열린 문 앞에 선 고정 상태로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "강민숙의 엄지손가락이 TV 리모컨의 전원 버튼을 깊게 누른 채 멈춘 손 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "강민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "낡은 식탁에 마주 앉은 수리영이 검은 물이 담긴 컵의 테두리를 입술에 댄 채 멈춘 정지 컷.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "식탁 위에 놓인 강민숙의 맨 손목 안쪽에 새겨진 작고 기하학적인 원형 표식이 선명하게 드러난 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "강민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "현관 바닥에 주저앉은 수리영의 손이 운동화 뒤축을 쥔 채 멈춘 정지 순간.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "외출 복장의 수리영이 강민숙의 어깨에 코를 박고 눈을 반쯤 감은 채 옅게 미소 짓는 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "강민숙"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 6,
        "scene_heading": "S#6. 해안가 도로 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "서늘한 톤의 해안가 도로 위, 이어폰을 낀 수리영이 자전거 안장에 앉아 고개를 위로 들고 눈을 감은 정면 상반신, 달리는 추진력에 의해 머리카락이 진행 반대 방향으로 흩날리는 모습.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "서늘한 톤의 해안가 도로 위, 이어폰을 낀 수리영이 자전거 안장에 앉아 고개를 위로 든 채 눈을 감은 정면 상반신.",
            "validator_reason": "원문의 자전거를 타고 달리는 동적 동작을 보존하기 위해 머리카락이 흩날리는 mid-action 단서를 추가함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 7,
        "scene_heading": "S#7. 유기견 보호원 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "낡은 철장 안에서 검은 맹견 로트와일러가 날카로운 이빨을 드러낸 채 앞발을 허공에 번쩍 든 정지 순간.",
            "based_on_beat": 1,
            "characters": [
              "로트와일러"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "철장 바로 앞에서 수리영이 무표정하고 서늘한 눈빛으로 맹견의 눈을 똑바로 응시하는 안면 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "맹견"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "로트와일러가 바닥에 배를 깔고 납작하게 엎드린 채 얌전해진 정지 구도.",
            "based_on_beat": 1,
            "characters": [
              "로트와일러"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "한국인 50대 남성 의사의 손에 들린 주사기 바늘이 로트와일러의 뒷다리 근육을 찌르며 피부가 살짝 눌린 찰나.",
            "based_on_beat": 1,
            "characters": [
              "의사",
              "로트와일러"
            ],
            "original_description": "한국인 50대 남성 의사의 손에 들린 주사기 바늘 끝이 로트와일러의 뒷다리 근육에 막 닿은 찰나.",
            "validator_reason": "모호한 정적 접촉('막 닿은') 대신 바늘이 근육을 찌르는 능동적 mid-action 모먼트로 재작성하여 접촉의 역학을 보존함.",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "한구석에서 수리영이 핸드폰을 귀에 댄 채 미간에 주름을 잡고 바닥을 내려다보는 상반신.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "앞치마를 두른 한국인 20대 여성 보호원 도우미가 수리영 쪽을 향해 손짓하며 멈춰 선 컷.",
            "based_on_beat": 2,
            "characters": [
              "보호원 도우미",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "수리영의 손에 쥐어진 이발기 날이 작은 유기견의 등털에 파묻힌 정지 순간.",
            "based_on_beat": 2,
            "characters": [
              "수리영",
              "유기견"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 8,
        "scene_heading": "S#8. 번화가·대형 마트 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "붉은 네온사인이 번지는 어두운 번화가 도로 한가운데, 수리영이 자전거 안장에 앉아 한쪽 무릎을 굽혀 페달을 밟고 옷자락이 뒤로 휘날리는 정면 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "붉은 네온사인이 번지는 어두운 번화가 도로 한가운데, 수리영이 자전거 안장에 앉아 핸들을 꽉 쥔 채 멈춰선 정면 구도.",
            "validator_reason": "주행하는 동적 동작이므로 '멈춰선' 대신 추진 방향을 보존한 mid-action 순간으로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "백색 형광등이 비치는 마트 내부, 수리영이 진열대 앞에서 유니폼을 입은 한국인 40대 여성 직원과 마주 선 측면 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "한국인 40대 여성 직원"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "커다란 종이 상자를 가슴 높이로 든 마트 남자 직원이 고개를 돌려 수리영의 옆얼굴을 바라보는 정지 순간.",
            "based_on_beat": 1,
            "characters": [
              "수리영",
              "마트 남자 직원"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "어둑해진 마트 입구 밖, 수리영이 자전거 옆에 선 채 어두운 핸드폰 화면을 굳은 표정으로 들여다보는 상반신.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 9,
        "scene_heading": "S#9. 해안가 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "달빛이 내리는 칠흑 같은 해안도로 위, 한쪽 무릎을 굽혀 페달을 밟아 내리는 중간 자세로 안장에 앉아 상체를 깊숙이 숙이고 옷자락이 뒤로 강하게 펄럭이는 수리영의 자전거 측면 실루엣.",
            "based_on_beat": 0,
            "characters": [
              "수리영"
            ],
            "original_description": "달빛이 내리는 칠흑 같은 해안도로 위, 안장에 앉아 상체를 깊숙이 숙인 수리영의 자전거 측면 실루엣.",
            "validator_reason": "자전거로 바삐 달려가는 이동 동작의 추진력을 보존하기 위해 페달을 밟는 중간(mid-pedal) 자세와 날리는 옷자락 등 방향성 단서를 추가함.",
            "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": 2,
            "characters": [
              "한국인 신원미상 남성"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "옥탑방의 작은 불투명 유리창 너머로, 거대한 검은 그림자가 쓰러진 강민숙의 어깨 쪽으로 몸을 굽힌 기괴한 실루엣 구도.",
            "based_on_beat": 2,
            "characters": [
              "강민숙",
              "거대한 검은 그림자"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 11,
        "scene_heading": "S#11. 옥탑 방 밖 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "가로등 빛이 닿지 않는 빌라 마당의 깊은 어둠 속에, 수리영의 자전거가 벽에 비스듬히 눕혀진 정물 컷.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "가파르고 좁은 콘크리트 계단을 밟은 수리영의 더러워진 운동화 앞코가 화면을 채운 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "계단 중간에 선 수리영이 코를 심하게 찡그리고 눈을 크게 뜬 채 어둠 속 위쪽을 올려다보는 얼굴 정지 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "옥상 바닥에 두 발을 딛고 선 수리영의 어깨가 경직된 채, 입을 살짝 벌리고 정면을 응시하는 상반신.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "수리영의 시야에 맺힌, 녹슨 옥탑방 철문이 반쯤 휑하게 열려 안쪽의 짙은 암흑만을 담아내는 스산한 시점 쇼트.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 12,
        "scene_heading": "S#12. 옥탑방 안 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 거실 입구에 선 수리영이 입술을 살짝 벌린 채 멍하니 앞을 응시하는 정면 상반신.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "빛이 닿지 않는 차가운 가스레인지 위에 놓인 텅 빈 냄비 정물 클로즈업.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "어둠 속에서 푸른빛을 뿜어내고 있는 거실 TV 화면 클로즈업.",
            "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": 1,
            "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": []
          },
          {
            "shot_index": 15,
            "description": "두 눈을 크게 뜨고 극심한 충격에 얼굴이 하얗게 질린 수리영의 안면 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 16,
            "description": "놀라 뒷걸음질 치는 수리영의 한쪽 발뒤꿈치가 바닥에서 방금 떨어져 체중이 뒤로 쏠린 mid-action 하단 컷.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "뒷걸음질 치는 수리영의 한쪽 발뒤꿈치가 바닥에서 살짝 들린 채 멈춘 하단 컷.",
            "validator_reason": "'멈춘'이라는 정지 강조 표현 대신 뒷걸음질 치는 이동 동작의 방향성을 보존하는 mid-action 순간으로 재작성.",
            "character_ids": []
          },
          {
            "shot_index": 17,
            "description": "수리영의 엄지손가락이 핸드폰 액정 화면을 꾹 누른 채 굳어 있는 손 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영의 떨리는 엄지손가락이 핸드폰 액정 화면을 꾹 누른 상태의 손 클로즈업.",
            "validator_reason": "'떨리는'이라는 연속 동작을 꾹 누른 채 고정된 자세로 재작성.",
            "character_ids": []
          },
          {
            "shot_index": 18,
            "description": "창백하게 질린 수리영이 핸드폰을 귀에 바짝 댄 채 입술을 살짝 벌리고 굳어 있는 상반신.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "창백하게 질린 수리영이 핸드폰을 귀에 바짝 댄 채 입술을 떠는 상반신.",
            "validator_reason": "'입술을 떠는'이라는 연속 동작을 입술을 벌린 채 굳어 있는 상태로 재작성.",
            "character_ids": []
          },
          {
            "shot_index": 19,
            "description": "숨진 강민숙의 창백한 손아귀 안에 심하게 구겨진 사진 한 장이 쥐어져 있는 클로즈업.",
            "based_on_beat": 4,
            "characters": [
              "강민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 20,
            "description": "사진을 꺼내기 위해 강민숙의 손을 향해 팔을 뻗은 수리영의 손끝이 사진에 닿을 듯 다가간 mid-action 찰나.",
            "based_on_beat": 4,
            "characters": [
              "강민숙",
              "수리영"
            ],
            "original_description": "강민숙의 손을 향해 뻗은 수리영의 손끝이 사진에 닿기 직전 멈춘 찰나.",
            "validator_reason": "'멈춘'이라는 표현 대신 사진을 꺼내려는 손동작의 방향성을 보존하는 mid-action 순간으로 재작성.",
            "character_ids": []
          },
          {
            "shot_index": 21,
            "description": "강민숙의 맨 손목에 새겨진 기하학적 원형 표식이 핏빛처럼 붉게 물든 클로즈업.",
            "based_on_beat": 4,
            "characters": [
              "강민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 22,
            "description": "가슴을 크게 부풀린 채 숨을 멈춘 수리영이 눈을 크게 뜨고 경직된 정면 안면.",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 숨을 들이켜며 가슴을 크게 부풀린 채 눈동자가 흔들리는 정면 안면.",
            "validator_reason": "'들이켜며', '흔들리는' 같은 연속 동작을 호흡을 멈추고 굳은 고정 상태로 재작성.",
            "character_ids": []
          },
          {
            "shot_index": 23,
            "description": "침대 위 낡은 벽면에 보이지 않는 붓이 지나간 듯 선명하고 거친 붉은색 원이 반쯤 그어져 있는 컷.",
            "based_on_beat": 4,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 24,
            "description": "수리영이 양팔로 머리를 감싸 쥐고 입을 크게 벌린 채 경악하는 상반신.",
            "based_on_beat": 4,
            "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": "'문을 열고'를 '문을 연 채'로 수정하여 선행 동작과의 시간 간격을 없애고 고정된 상태로 만들었습니다.",
            "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": 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": 2,
            "characters": [
              "혜수",
              "김형사"
            ],
            "original_description": "어둡고 좁은 옥탑방 계단을 향해 혜수와 김형사가 나란히 발을 내딛으며 뛰어오르는 찰나.",
            "validator_reason": "뛰어오르는 이동 동작의 방향성과 추진력을 표현하기 위해 허공에 든 발을 추가해 mid-action을 묘사했습니다.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 14,
        "scene_heading": "S#14. 옥탑방 안 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "말끔한 거실 한가운데 선 김형사가 허탈한 표정으로 텅 빈 허공을 응시하는 상반신.",
            "based_on_beat": 1,
            "characters": [
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "현관 쪽을 돌아보며 서 있는 혜수의 굳은 얼굴 측면.",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "열린 방문을 향해 몸을 던지듯 뛰어 들어가는 도중 한 발이 공중에 떠 있는 수리영의 역동적인 뒷모습.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "열린 방문을 향해 몸을 던지듯 뛰어 들어가는 수리영의 역동적인 뒷모습 찰나.",
            "validator_reason": "이동 동작인 '뛰어 들어가는'을 motion direction이 보존된 mid-action 순간으로 교정함.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "핏자국 하나 없이 깨끗하게 정돈된 수리영의 방안과 가지런한 커튼이 담긴 넓은 정물 앵글.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "깨끗한 방 한가운데 선 수리영의 얼굴이 파리하게 질린 채 입술이 살짝 벌어진 정면.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "거실 식탁 앞에 선 수리영이 아무것도 없는 깨끗한 식탁 위를 뚫어지게 내려다보는 측면.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "팔짱을 낀 김형사가 미간을 잔뜩 찌푸린 채 수리영을 노려보는 짜증 섞인 표정.",
            "based_on_beat": 3,
            "characters": [
              "김형사",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "혜수가 고개를 돌려 김형사를 향해 매서운 눈빛을 쏘아붙이는 측면 얼굴 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "고개 숙인 수리영의 어깨 위로 혜수의 손이 따뜻하게 얹혀진 클로즈업.",
            "based_on_beat": 4,
            "characters": [
              "수리영",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "수리영의 방바닥에 놓인 백팩과 작은 인형의 위치가 미세하게 틀어져 있는 정물 컷.",
            "based_on_beat": 4,
            "characters": [],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 15,
        "scene_heading": "S#15. 해안가. 버스정류장 부근 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "어두운 밤바다를 배경으로 버스정류장 벤치에 앉아 멍하니 앞을 보는 수리영의 측면.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "혜수의 손에 들린 캔 음료수가 수리영의 무릎 근처로 내밀어진 찰나.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "벤치에서 허리를 곧게 펴고 벌떡 일어선 수리영의 경직된 하반신과 상반신.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "어두운 해안가 인도를 따라 달려가는 수리영의 뒷모습, 한 발이 지면에서 막 떨어져 허공에 떠 있는 역동적인 달리기 자세.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "어두운 해안가 인도를 따라 달려가는 수리영의 뒷모습이 포착된 정지 구도.",
            "validator_reason": "동적 동사(달려가는)에 대한 mid-action freeze 규칙을 적용하여 추진력이 보존된 순간으로 구체화했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "벤치 앞에 홀로 선 혜수가 멀어지는 수리영을 향해 양손을 입가에 댄 채 소리치는 컷.",
            "based_on_beat": 2,
            "characters": [
              "혜수",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "어두운 구조물 사이로 멀리서 달리기 자세로 도약 중인 수리영과 벤치 앞에 서 있는 혜수의 모습이 은밀하게 담긴 누군가의 시점 쇼트.",
            "based_on_beat": 3,
            "characters": [
              "수리영",
              "혜수"
            ],
            "original_description": "어두운 구조물 사이로 멀어지는 수리영과 서 있는 혜수의 모습이 은밀하게 담긴 누군가의 시점 쇼트.",
            "validator_reason": "'멀어지는'이라는 시간 경과 표현을 제거하고, 공간 속 인물들의 고정된 상태(달리는 자세의 수리영과 서 있는 혜수)로 재작성했습니다.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 16,
        "scene_heading": "S#16. 경찰서 사무실 / N",
        "shots": [
          {
            "shot_index": 1,
            "description": "백색 형광등이 켜진 경찰서 사무실 안으로 걸어 들어오는 도중 한쪽 발을 앞으로 내디딘 채 핸드폰을 귀에 댄 혜수의 상반신.",
            "based_on_beat": 1,
            "characters": [
              "혜수"
            ],
            "original_description": "백색 형광등이 켜진 경찰서 사무실 안으로 걸어 들어오며 핸드폰을 귀에 댄 혜수의 상반신.",
            "validator_reason": "이동 동작의 방향성과 추진력을 보존하기 위해 mid-action(한쪽 발을 내디딘) 자세로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "사무실 책상에 홀로 앉아 고개를 든 채 혜수를 바라보는 김형사의 정면 구도.",
            "based_on_beat": 1,
            "characters": [
              "김형사",
              "혜수"
            ],
            "original_description": "사무실 책상에 홀로 앉은 김형사가 고개를 들어 혜수를 바라보는 정면 구도.",
            "validator_reason": "'고개를 들어'라는 동작을 '고개를 든 채'라는 정지 상태로 수정했습니다.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "혜수의 손이 특정 번호가 띄워진 핸드폰 액정을 김형사의 얼굴 앞까지 불쑥 내민 찰나.",
            "based_on_beat": 1,
            "characters": [
              "혜수",
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "핸드폰 화면을 바라보며 입술을 비죽이는 김형사의 불만스러운 표정 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "미간을 깊게 구긴 채 허공을 응시하는 혜수의 불안하고 굳은 안면 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "혜수"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 17,
        "scene_heading": "S#17. 옥탑방 / 동틀무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "푸르스름한 새벽빛 아래, 담벼락 위에 앉은 검은 고양이가 불 켜진 옥탑방 창문을 노려보는 정지 구도.",
            "based_on_beat": 1,
            "characters": [
              "검은 고양이"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "검은 고양이가 담장을 넘기 위해 허공으로 몸을 둥글게 도약한 1/1000초의 찰나.",
            "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": [
              "수리영"
            ],
            "original_description": "수리영이 두 눈을 번쩍 뜨고 고개를 빳빳하게 든 경직된 안면 클로즈업.",
            "validator_reason": "'뜨고', '든'이라는 순차적 동작의 뉘앙스를 피하기 위해 '뜬 채'라는 동시 고정 상태로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "복도에 선 수리영이 굳게 닫힌 자신의 방문을 숨죽여 바라보는 뒷모습 어깨 너머 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "수리영의 떨리는 손이 방문 손잡이를 꽉 쥐고 반쯤 돌린 채 멈춘 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "방 안 창문 앞에 선 수리영이 양손으로 커튼자락을 움켜쥔 긴장된 뒷모습.",
            "based_on_beat": 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": "어깨를 잔뜩 움츠린 채 놀란 표정으로 굳어 있는 수리영의 상반신.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "핸드폰 벨소리에 깜짝 놀라 몸을 움츠린 수리영의 굳은 상반신.",
            "validator_reason": "소리에 '놀라' 움츠렸다는 인과/시간 연결어를 제거하고 그 순간의 고정된 상태만 묘사함.",
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "수리영이 핸드폰을 귀에 바짝 대고 다급한 눈빛으로 허공을 응시하는 안면.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "description": "작은 인형이 달린 백팩 끈을 꽉 쥔 채 방을 나서는 mid-stride 찰나의 수리영의 가방과 손 클로즈업.",
            "based_on_beat": 3,
            "characters": [
              "수리영"
            ],
            "original_description": "작은 인형이 달린 백팩 끈을 손에 꽉 쥔 채 방을 나서는 수리영의 손과 가방 클로즈업.",
            "validator_reason": "'방을 나서는' 이동 동작의 추진력을 보존하기 위해 mid-stride 찰나로 고정함.",
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "세면대 위로 몸을 숙인 수리영의 물기 젖은 얼굴이 거울을 향해 고정된 컷.",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 12,
            "description": "화장실 거울 반사면 안, 수리영의 등 뒤 타일 벽면에 거칠고 선명한 붉은 원이 그려져 있는 시점 컷.",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 13,
            "description": "실제 벽면을 향해 고개를 홱 돌린 mid-action 찰나, 머리카락이 회전 방향을 따라 흩날리는 수리영의 역동적인 측면.",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "original_description": "거울을 보던 수리영이 고개를 뒤로 홱 돌려 실제 벽면을 확인하는 역동적인 정지 찰나.",
            "validator_reason": "'보던', '돌려', '확인하는' 식의 시간 순차를 고개를 홱 돌린 역동적인 하나의 mid-action 찰나로 압축함.",
            "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": "식탁 위 액자 속, 환하게 웃는 강민숙의 얼굴 형상이 촛농처럼 기괴하게 뭉개져 반쯤 흘러내린 mid-action 찰나의 클로즈업.",
            "based_on_beat": 4,
            "characters": [
              "강민숙"
            ],
            "original_description": "식탁 위 액자 속, 환하게 웃는 강민숙의 얼굴 형상이 촛농처럼 기괴하게 뭉개져 흘러내리는 끔찍한 클로즈업.",
            "validator_reason": "'흘러내리는' 진행형 상태를 반쯤 흘러내린 기괴한 상태의 한 찰나로 고정함.",
            "character_ids": []
          },
          {
            "shot_index": 17,
            "description": "두 눈을 질끈 감고 입을 찢어질 듯 크게 벌린 채 비명을 토해내는 수리영의 안면 클로즈업.",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영이 두 눈을 질끈 감고 입을 찢어질 듯 벌리며 비명을 지르는 안면 클로즈업.",
            "validator_reason": "'감고', '벌리며', '지르는'의 나열을 '벌린 채'라는 고정 자세로 결합하여 한 찰나로 통일함.",
            "character_ids": []
          },
          {
            "shot_index": 18,
            "description": "흘러내린 자국 없이 완전히 멀쩡하고 깨끗한 액자 속 강민숙의 웃는 사진 정물.",
            "based_on_beat": 4,
            "characters": [
              "강민숙"
            ],
            "character_ids": []
          },
          {
            "shot_index": 19,
            "description": "수리영의 손바닥이 자신의 뺨을 강하게 후려친 순간, 살이 밀리고 눈을 질끈 감은 찰나.",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 19,
        "scene_heading": "S#19. 마트 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "이른 아침 서늘한 빛이 감도는 한산한 마트 앞, 수리영의 낡은 자전거가 세워져 있는 정물 컷.",
            "based_on_beat": 0,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "마트 입구 유리를 넘어선 수리영의 한쪽 운동화가 차가운 타일 바닥에 닿은 찰나.",
            "based_on_beat": 0,
            "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": [
              "마트 남자 직원"
            ],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "마트 밖 회색빛 처마 밑에 매달린 검은 CCTV 카메라 렌즈가 화면을 꽉 채운 정물 클로즈업.",
            "based_on_beat": 0,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 7,
            "description": "고개를 뒤로 젖혀 마트 외부 천장의 CCTV를 뚫어지게 올려다보는 수리영의 상반신.",
            "based_on_beat": 0,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "수리영이 핸드폰을 귀에 바짝 댄 채 입술을 굳게 다물고 정면을 응시하는 정지 순간.",
            "based_on_beat": 0,
            "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": "어둡고 노이즈가 낀 CCTV 화면 속, 두 사람의 형상이 기괴하게 뭉개진 채 멈춘 모니터 클로즈업.",
            "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": 0,
            "characters": [
              "혜수",
              "한국인 남성 보안직원"
            ],
            "original_description": "혜수가 어깨를 돌려 한국인 남성 보안직원의 옆얼굴을 굳은 표정으로 바라보는 측면 컷.",
            "validator_reason": "'어깨를 돌려'라는 동작 진행 표현을 '어깨를 튼 채'라는 결과 상태로 수정하여 단일 찰나를 보존함.",
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "한국인 남성 보안직원의 고개가 혜수 쪽으로 비스듬히 기울어진 채 정지된 1/1000초의 찰나.",
            "based_on_beat": 0,
            "characters": [
              "한국인 남성 보안직원",
              "혜수"
            ],
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 21,
        "scene_heading": "S#21. 경찰서 안 / D",
        "shots": [
          {
            "shot_index": 1,
            "description": "건조한 백색 형광등이 켜진 어수선한 경찰서 사무실 내부의 삭막한 넓은 앵글.",
            "based_on_beat": 0,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "노란 서류철을 손에 든 김형사와 단정한 복장의 혜수가 서로를 마주 본 채 멈춰 선 정지 구도.",
            "based_on_beat": 0,
            "characters": [
              "김형사",
              "혜수"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "미간을 잔뜩 찌푸린 김형사의 짜증 섞인 불만스러운 안면 클로즈업.",
            "based_on_beat": 0,
            "characters": [
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "경찰서 사무실 책상 앞 낡은 철제 의자에 홀로 앉은 수리영의 굳은 상반신.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "description": "어지럽게 널린 서류들 사이, 살점이 떨어져 나간 시신의 참혹한 핏빛 현장 사진들이 담긴 책상 위 정물 클로즈업.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 6,
            "description": "사진을 내려다보는 수리영의 극도로 커진 눈동자와 백지장처럼 질린 안색을 담은 고정된 안면 클로즈업.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "사진을 내려다보는 수리영의 눈동자가 극도로 커지고 안색이 백지장처럼 질린 안면 클로즈업.",
            "validator_reason": "'커지고'와 같이 시간적 변화를 암시하는 동사를 '커진'이라는 정적 결과 상태로 교정함.",
            "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": "거친 해상 지도 이미지 위로 붉은색 GPS 좌표 점이 찍혀 있는 모니터 화면 클로즈업.",
            "based_on_beat": 2,
            "characters": [],
            "character_ids": []
          },
          {
            "shot_index": 11,
            "description": "수리영의 꽉 쥔 볼펜 끝이 찢어진 종이 조각 위에 닿은 채 멈춘 손 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 12,
            "description": "종이 쪽지를 주머니에 넣은 채, 등 뒤 사무실 문을 향해 발을 내딛고 상체를 반쯤 돌린 수리영의 mid-action 정지 구도.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "original_description": "종이 쪽지를 주머니에 쑤셔 넣은 수리영이 등 뒤 사무실 문을 향해 상체를 홱 튼 역동적인 정지 구도.",
            "validator_reason": "'홱 튼'이라는 동작 진행형 표현을 이동 추진력을 보존한 mid-action 정지 상태로 수정함.",
            "character_ids": []
          }
        ]
      },
      {
        "scene_index": 22,
        "scene_heading": "S#22. 경찰서 밖 / D, S#23. 어느 PC방 / 실내",
        "shots": [
          {
            "shot_index": 1,
            "description": "건조한 대낮의 경찰서 밖 아스팔트 위, 자전거 안장에 앉아 페달을 밟으며 앞으로 질주하는 수리영의 mid-action 순간, 바람에 뒤로 흩날리는 옷깃과 몸의 추진력이 담긴 측면 구도.",
            "based_on_beat": 1,
            "characters": [
              "수리영"
            ],
            "original_description": "건조한 대낮의 경찰서 밖 아스팔트 위, 자전거 안장에 앉아 핸들을 꽉 쥔 수리영의 정지 구도.",
            "validator_reason": "원문의 이동 동작(달리는)에 대한 추진력 단서가 사라지고 정지 구도로 묘사되어, motion direction을 보존한 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": [],
            "character_ids": []
          },
          {
            "shot_index": 5,
            "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": 0,
            "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": "'때리는'이라는 연속 동작 뉘앙스를 '부딪혀 흩어지는'이라는 찰나의 시각적 상태로 명확화함.",
            "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": 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": 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": 3,
            "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": "안개 낀 바다를 배경으로 핸드폰을 입가에 댄 채 눈을 내리깐 수리영의 상반신.",
            "based_on_beat": 3,
            "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": 1,
            "characters": [
              "김형사"
            ],
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "어두운 현관문이 바람에 밀려 미세하게 틈새를 벌린 채 멈춘 스산한 정물 구도.",
            "based_on_beat": 0,
            "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": 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": []
          }
        ]
      },
      {
        "scene_index": 28,
        "scene_heading": "S#29. 조타실 / 해질 무렵",
        "shots": [
          {
            "shot_index": 1,
            "description": "좁고 어두운 조타실 내부, 인우의 거친 손이 낡은 조타륜의 손잡이를 꽉 움켜쥔 1/1000초의 찰나.",
            "based_on_beat": 1,
            "characters": [
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 2,
            "description": "조타륜을 쥔 인우의 팔뚝 위로 수리영의 두 손이 다급하게 겹쳐진 정지 구도.",
            "based_on_beat": 1,
            "characters": [
              "인우",
              "수리영"
            ],
            "character_ids": []
          },
          {
            "shot_index": 3,
            "description": "수리영을 향해 고개를 돌린 채 핏대를 세우고 눈을 부릅뜬 인우의 측면 얼굴.",
            "based_on_beat": 1,
            "characters": [
              "인우",
              "수리영"
            ],
            "original_description": "인우가 고개를 홱 돌려 수리영을 향해 핏대를 세운 채 눈을 부릅뜬 측면 얼굴.",
            "validator_reason": "'홱 돌려'라는 동작 진행을 제거하고 고정된 상태로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 4,
            "description": "수리영의 검지손가락 끝이 낡은 사진 속 한 아이의 얼굴을 꾹 짚고 있는 클로즈업.",
            "based_on_beat": 2,
            "characters": [
              "수리영"
            ],
            "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": [
              "수리영"
            ],
            "original_description": "붉은 원들을 마주한 수리영의 입술이 파르르 떨리고 안색이 새하얗게 질린 경악한 안면 클로즈업.",
            "validator_reason": "'파르르 떨리고'라는 연속적인 움직임을 제거하고 정지된 시각적 상태로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 8,
            "description": "수리영의 상체가 균형을 잃고 앞을 향해 비스듬히 기울어진 채 허공에 떠 있는 역동적인 정지 찰나.",
            "based_on_beat": 4,
            "characters": [
              "수리영"
            ],
            "original_description": "수리영의 상체가 균형을 잃고 앞을 향해 비스듬히 무너져 내린 역동적인 정지 찰나.",
            "validator_reason": "'무너져 내린'이라는 완료/진행 표현 대신 쓰러지는 과정의 추진 방향을 보존한 mid-action 순간으로 수정함.",
            "character_ids": []
          },
          {
            "shot_index": 9,
            "description": "눈을 감고 의식을 잃은 수리영의 이마가 인우의 어깨 위에 툭 떨어진 채 멈춘 정지 구도.",
            "based_on_beat": 4,
            "characters": [
              "수리영",
              "인우"
            ],
            "character_ids": []
          },
          {
            "shot_index": 10,
            "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": []
          },
          {
            "shot_index": 4,
            "description": "형체만 흐릿하게 남은 어선의 뒷모습이 안개 속에 갇힌 채 고립된 넓은 정지 앵글.",
            "based_on_beat": 1,
            "characters": [],
            "character_ids": []
          }
        ]
      }
    ],
    "total_shots": 196,
    "changed_shots": 43
  },
  "step_id": "shot_validator",
  "run_id": "2441b6a8-a458-408c-b6a2-87ccfb0ba684",
  "resolved_model": "gemini-pro",
  "updated_at": "2026-07-22T01:51:23.593027+00:00",
  "schema_version": 1,
  "config_hash": "99914b932bd37a50",
  "project_config_snapshot": {}
}