{
  "status": "completed",
  "completed_count": 71,
  "applicable_count": 71,
  "failed_count": 0,
  "config_hash": "99914b932bd37a50",
  "data": {
    "characters": [
      {
        "name": "찰리",
        "shot_count": 517,
        "name_source_quote": "해저 쓰레기 더미 사이로 찰리의 로봇 손가락만 돌출된 근접 구도.",
        "short_id": "C01"
      },
      {
        "name": "홀로그램 찰리",
        "shot_count": 4,
        "name_source_quote": "이현우가 환하게 미소 지은 채 홀로그램 찰리의 손을 향해 자신의 손을 조심스럽게 뻗은 근접 찰나.",
        "short_id": "C02"
      },
      {
        "name": "이현우",
        "shot_count": 787,
        "name_source_quote": "이현우의 손 사이 구겨진 도면에 알아보기 어려운 엉망인 그림이 드러난 내려다보기 구도.",
        "short_id": "C03"
      },
      {
        "name": "어린 이현우",
        "shot_count": 2,
        "name_source_quote": "흑백 화면 속, 무릎 꿇은 어린 이현우와 앰버의 머리를 양팔로 감싸 안은 채 공포에 질린 젊은 미연의 얼굴.",
        "short_id": "C04"
      },
      {
        "name": "앰버",
        "shot_count": 294,
        "name_source_quote": "쓰레기 산 밖으로 우그러진 로봇 팔을 든 채 고개를 내민 한국계 백인 혼혈 소녀 앰버의 모습.",
        "short_id": "C05"
      },
      {
        "name": "라울",
        "shot_count": 147,
        "name_source_quote": "거대한 쓰레기 더미 사이로 라틴계 흑인 혼혈 소년 라울이 고개를 불쑥 내민 구도.",
        "short_id": "C06"
      },
      {
        "name": "페드로",
        "shot_count": 45,
        "name_source_quote": "운전대 앞의 페드로와 조수석의 이현우 사이에 구겨진 도면이 펼쳐진 차 안 구도.",
        "short_id": "C07"
      },
      {
        "name": "미연",
        "shot_count": 56,
        "name_source_quote": "공사 자재를 실은 지게차의 운전석에 앉은 미연의 전신.",
        "short_id": "C08"
      },
      {
        "name": "젊은 미연",
        "shot_count": 3,
        "name_source_quote": "흑백 화면 속, 젊은 미연의 얼굴 정면으로 총구를 들이민 복면 남자의 차가운 눈빛.",
        "short_id": "C09"
      },
      {
        "name": "현우의 아버지",
        "shot_count": 3,
        "name_source_quote": "흑백 화면 속, 총을 쥔 복면 남자의 측면을 군복 입은 현우의 아버지가 강하게 들이받아 두 사람의 몸이 부딪힌 찰나.",
        "short_id": "C10"
      },
      {
        "name": "신부",
        "shot_count": 41,
        "name_source_quote": "공사 자재를 품에 안은 신부가 지게차 위의 미연을 신기한 표정으로 쳐다보는 측면 구도.",
        "short_id": "C11"
      },
      {
        "name": "구도환",
        "shot_count": 20,
        "name_source_quote": "차량 뒷좌석에 한 발을 딛고 오르는 중인 찰리를 어두운 골목 구석에서 몰래 예의 주시하는 구도환의 어깨 위 측면.",
        "short_id": "C12"
      },
      {
        "name": "쿠마",
        "shot_count": 44,
        "name_source_quote": "양철통 불 주변에서 쿠마와 무리가 꼬치와 맥주병을 손에 든 채 둘러앉아 있는 노상의 넓은 구도.",
        "short_id": "C13"
      },
      {
        "name": "마츠다",
        "shot_count": 24,
        "name_source_quote": "작은 전기부품을 들여다보며 수리 작업에 몰두한 일본인 마츠다의 상체.",
        "short_id": "C14"
      },
      {
        "name": "박철진",
        "shot_count": 86,
        "name_source_quote": "책상 위 스피커폰을 향해 몸을 기울인 채 실실 웃고 있는 박철진의 상체.",
        "short_id": "C15"
      },
      {
        "name": "박철진의 수하 1",
        "shot_count": 24,
        "name_source_quote": "고물상 문턱을 넘어선 '박철진의 수하 1'을 향해 마츠다가 고개를 돌린 찰나.",
        "short_id": "C16"
      },
      {
        "name": "윤성찬",
        "shot_count": 65,
        "name_source_quote": "스피커폰 맞은편에 서서 하얀 손수건을 코끝에 댄 윤성찬의 근접 구도.",
        "short_id": "C17"
      },
      {
        "name": "윤성찬의 비서",
        "shot_count": 5,
        "name_source_quote": "운전대 앞의 '윤성찬의 비서'가 백미러를 통해 뒷좌석을 살피는 눈동자 근접 구도.",
        "short_id": "C18"
      },
      {
        "name": "국방장관",
        "shot_count": 21,
        "name_source_quote": "고급스러운 집무실 소파에 다리를 꼬고 앉아 여유롭게 전화기 수화기를 귀에 댄 국방장관의 상체.",
        "short_id": "C19"
      },
      {
        "name": "이강준",
        "shot_count": 15,
        "name_source_quote": "어두운 군 병원 복도를 걷는 mid-stride 자세로 한쪽 발이 허공에 떠 있는 국방장관과 제복 입은 이강준의 전신 구도.",
        "short_id": "C20"
      },
      {
        "name": "조일광",
        "shot_count": 17,
        "name_source_quote": "주유소 마트 안에서 해병대 모자와 군복 차림의 조일광이 TV 화면을 올려다보는 정면 상체.",
        "short_id": "C21"
      },
      {
        "name": "태진",
        "shot_count": 12,
        "name_source_quote": "창고 저 멀리 거대한 스피커 앞 캠핑카의 부품을 쥔 채 수리 작업에 몰두하고 있는 태진의 묵묵한 뒷모습.",
        "short_id": "C22"
      },
      {
        "name": "은영",
        "shot_count": 10,
        "name_source_quote": "카센터 문을 덜컥 밀어 연 채 안으로 한 발짝 내디딘 도중인 은영의 전신 구도.",
        "short_id": "C23"
      },
      {
        "name": "수빈",
        "shot_count": 117,
        "name_source_quote": "수빈이 상체를 반쯤 일으켜 세운 찰나.",
        "short_id": "C24"
      },
      {
        "name": "젊은 수빈",
        "shot_count": 4,
        "name_source_quote": "흑백 톤의 회상 화면, 폐허가 된 마을을 멀리서 내려다보는 젊은 수빈과 정한수의 뒷모습 전경.",
        "short_id": "C25"
      },
      {
        "name": "정한수",
        "shot_count": 26,
        "name_source_quote": "날카로운 눈빛과 짧은 머리를 한 정한수가 구멍 앞 바닥에 꼿꼿하게 서 있는 위압적인 전신.",
        "short_id": "C26"
      },
      {
        "name": "장백산",
        "shot_count": 37,
        "name_source_quote": "황금빛 하회탈을 쓰고 화려한 옷을 입은 거구의 장백산이 위풍당당하게 단상 위로 한 발을 내디디며 걷고 있는 전신 구도.",
        "short_id": "C27"
      },
      {
        "name": "젊은 장백산",
        "shot_count": 1,
        "name_source_quote": "흑백 톤의 회상 화면, 급식을 타기 위해 길게 줄을 선 난민들 사이로 마른 체격에 사제복을 입은 젊은 장백산의 정면.",
        "short_id": "C28"
      },
      {
        "name": "선지자",
        "shot_count": 9,
        "name_source_quote": "단상 위에서 두 팔을 번쩍 치켜든 선지자가 군중을 향해 고함치는 위압적인 상체.",
        "short_id": "C29"
      },
      {
        "name": "마을총무",
        "shot_count": 5,
        "name_source_quote": "텅 빈 창고 안을 바라보며 충격받은 표정으로 굳어버린 이현우, 수빈, 마을총무의 구도.",
        "short_id": "C30"
      },
      {
        "name": "B-200",
        "shot_count": 67,
        "name_source_quote": "격투장 반대편에 찰리보다 훨씬 거대하고 육중하게 개조된 전투 로봇 B-200이 위압적으로 서 있는 전신 구도.",
        "short_id": "C31"
      },
      {
        "name": "지소영",
        "shot_count": 52,
        "name_source_quote": "한쪽 발을 내딛은 mid-stride 상태로 서 있는 세련된 연구복 차림의 50대 지소영의 위풍당당한 전신.",
        "short_id": "C32"
      },
      {
        "name": "어린 지소영",
        "shot_count": 9,
        "name_source_quote": "먼지가 날아간 사진 속에 젊은 지동현, 찰리, 어린 지소영이 나란히 선 모습이 드러난 근접 구도.",
        "short_id": "C33"
      },
      {
        "name": "젊은 지동현",
        "shot_count": 2,
        "name_source_quote": "먼지가 날아간 사진 속에 젊은 지동현, 찰리, 어린 지소영이 나란히 선 모습이 드러난 근접 구도.",
        "short_id": "C34"
      },
      {
        "name": "60대 남자",
        "shot_count": 10,
        "name_source_quote": "머리가 하얗게 샌 60대 남자가 찰리를 보며 깜짝 놀라 두 눈을 크게 뜬 얼굴 클로즈업.",
        "short_id": "C35"
      },
      {
        "name": "서지민",
        "shot_count": 23,
        "name_source_quote": "하얀 연구복을 입은 젊은 서지민이 미소 지으며 서 있는 상반신.",
        "short_id": "C36"
      },
      {
        "name": "연구원 A",
        "shot_count": 4,
        "name_source_quote": "컴퓨터 키보드 자판의 키를 누르고 있는 연구원 A의 두 손 근접 찰나.",
        "short_id": "C37"
      },
      {
        "name": "연구원 C",
        "shot_count": 4,
        "name_source_quote": "황급히 열린 실험실 문틈 사이로 헐레벌떡 뛰어 들어오는 mid-stride 자세의 연구원 C 다급한 상체.",
        "short_id": "C38"
      },
      {
        "name": "특임대 A",
        "shot_count": 3,
        "name_source_quote": "이강준의 책상 위로 군복 입은 군인이 서류 문건을 쑥 내미는 손 근접 찰나. [특임대 A]",
        "short_id": "C39"
      },
      {
        "name": "크리스",
        "shot_count": 10,
        "name_source_quote": "어두운 정박장 끝, 기름때 묻은 작업복 차림의 크리스가 낡은 배의 갑판에 렌치를 대고 꽉 쥐고 있는 넓은 구도.",
        "short_id": "C40"
      },
      {
        "name": "덤프트럭 운전사",
        "shot_count": 3,
        "name_source_quote": "운전대와 앞유리 너머 도로를 포함한 운전석 구도 속 덤프트럭 운전사가 졸음으로 눈꺼풀을 늘어뜨린 모습.",
        "short_id": "C41"
      },
      {
        "name": "젊은 여자 모습의 로봇",
        "shot_count": 27,
        "name_source_quote": "통유리창 앞 바닥에 젊은 여자 모습의 로봇 몸체가 부딪히는 특수효과 장면.",
        "short_id": "C42"
      },
      {
        "name": "셰퍼드",
        "shot_count": 12,
        "name_source_quote": "통유리창 쪽 셰퍼드 한 마리가 이현우와 품속의 젊은 여자를 향해 이빨을 드러낸 구도.",
        "short_id": "C43"
      },
      {
        "name": "관리소장",
        "shot_count": 16,
        "name_source_quote": "군용 트럭의 열린 문틈 사이로 바닥을 향해 한쪽 발을 뻗어 내린 자세의 관리소장의 다리.",
        "short_id": "C44"
      },
      {
        "name": "재판관",
        "shot_count": 11,
        "name_source_quote": "허름한 탁자 앞에 앉아 서류의 한 장을 잡고 있는 재판관의 권태로운 얼굴 클로즈업.",
        "short_id": "C45"
      },
      {
        "name": "40대 남성",
        "shot_count": 8,
        "name_source_quote": "어두침침한 식당 테이블 앞에 앉은 40대 남성을 향해 이현우가 한 발을 앞으로 내딛은 미드액션 구도.",
        "short_id": "C46"
      },
      {
        "name": "복면 남자",
        "shot_count": 6,
        "name_source_quote": "흑백 화면 속, 커다란 성조기를 어깨에 멘 채 한 발을 앞으로 내딛고 총구에서 불을 뿜는 복면 남자의 전신.",
        "short_id": "C47"
      },
      {
        "name": "취객",
        "shot_count": 6,
        "name_source_quote": "무릎이 꿇린 채 고개를 치켜든 취객이 두 손으로 자신의 가슴 중앙을 가리키며 열띤 표정으로 말하는 구도.",
        "short_id": "C48"
      },
      {
        "name": "백의의 남자",
        "shot_count": 3,
        "name_source_quote": "이현우를 향해 심각한 표정으로 입을 벌린 채 멈춘 백의의 남자의 측면.",
        "short_id": "C49"
      },
      {
        "name": "선원",
        "shot_count": 6,
        "name_source_quote": "한 선원이 부둣가 기둥의 굵은 밧줄을 쥔 채 이현우와 찰리 쪽을 미심쩍게 힐끗 쳐다보고 있는 측면 구도.",
        "short_id": "C50"
      },
      {
        "name": "경찰",
        "shot_count": 12,
        "name_source_quote": "주택 앞에서 이현우의 팔을 경찰의 손이 붙잡은 근접 구도.",
        "short_id": "C51"
      },
      {
        "name": "사복 경찰",
        "shot_count": 6,
        "name_source_quote": "자신을 부르는 사복 경찰을 향해 얼어붙은 듯 고개를 뻣뻣하게 돌린 이현우의 표정.",
        "short_id": "C52"
      },
      {
        "name": "무장 경찰",
        "shot_count": 1,
        "name_source_quote": "앰버의 시선 끝에 멀리 도로 위의 바리케이드와 무장 경찰들이 세워진 검문소가 보이는 시점 구도.",
        "short_id": "C53"
      },
      {
        "name": "경비병",
        "shot_count": 6,
        "name_source_quote": "관리소장 쪽으로 확성기를 쥔 팔을 뻗은 채 멈춘 한 경비병의 손 근접 구도.",
        "short_id": "C54"
      },
      {
        "name": "민병대원",
        "shot_count": 33,
        "name_source_quote": "무장한 민병대원이 강하게 휘두른 곤봉이 웅크린 난민의 어깨에 맞닿아 짓누르는 충격적인 mid-impact 찰나.",
        "short_id": "C55"
      },
      {
        "name": "하회탈 병사",
        "shot_count": 35,
        "name_source_quote": "하회탈 병사가 든 두꺼운 몽둥이가 이현우의 다리를 향해 매섭게 휘둘러지는 찰나.",
        "short_id": "C56"
      },
      {
        "name": "하회탈 궁사",
        "shot_count": 2,
        "name_source_quote": "성당 2층 발코니에서 하회탈을 쓴 궁사들이 아래쪽을 향해 팽팽하게 활시위를 당긴 채 조준하는 구도. [하회탈 궁사들]",
        "short_id": "C57"
      },
      {
        "name": "하회탈 호위병",
        "shot_count": 4,
        "name_source_quote": "하회탈 호위병들이 무기를 치켜든 채 이현우 일행을 향해 서서히 걸어오는 넓은 구도.",
        "short_id": "C58"
      },
      {
        "name": "유빅 용병대장",
        "shot_count": 5,
        "name_source_quote": "유빅 용병대장의 손가락이 경기장 안의 찰리를 매섭게 가리키는 측면 구도.",
        "short_id": "C59"
      },
      {
        "name": "유빅 용병",
        "shot_count": 13,
        "name_source_quote": "자욱한 먼지구름을 뚫고 최신 전투 방진복을 입은 유빅 용병들이 경기장 안으로 달려 들어오는 mid-action 전경.",
        "short_id": "C60"
      },
      {
        "name": "인공지능 병사",
        "shot_count": 15,
        "name_source_quote": "윤성찬의 등 뒤로 똑같은 유니폼을 입은 인공지능 병사들이 트럭에서 뛰어내려 허공에 떠 있는 mid-action 구도.",
        "short_id": "C61"
      },
      {
        "name": "인공지능 전투병",
        "shot_count": 4,
        "name_source_quote": "강력한 디지털 음파를 맞고 입을 크게 벌린 채 눈동자가 뒤집힌 인공지능 전투병의 일그러진 얼굴 클로즈업.",
        "short_id": "C62"
      },
      {
        "name": "물고기",
        "shot_count": 10,
        "name_source_quote": "푸른 바닷속 물고기 한 마리가 해저 쓰레기 더미 방향을 향해 지느러미를 움직이며 나아가는 mid-action 순간의 측면 구도.",
        "short_id": "C63"
      },
      {
        "name": "작은 새",
        "shot_count": 5,
        "name_source_quote": "어두운 거리에서 찰리의 육중한 어깨 위에 작은 새 한 마리가 앉아 있는 근접 구도.",
        "short_id": "C64"
      },
      {
        "name": "아기 새",
        "shot_count": 8,
        "name_source_quote": "허공에서 날아온 'B-200이 돌보던 아기 새'가 물속에 선 찰리의 낡은 어깨 위로 사뿐히 내려앉아 발을 막 딛은 근접 찰나.",
        "short_id": "C65"
      },
      {
        "name": "나비",
        "shot_count": 3,
        "name_source_quote": "꽃 위의 나비를 향해 찰리의 두꺼운 금속 손가락이 뻗어 있는 근접 찰나.",
        "short_id": "C66"
      },
      {
        "name": "까마귀",
        "shot_count": 2,
        "name_source_quote": "녹슨 방사능 팻말 주변에서 허공을 향해 일제히 날개를 펼치고 솟구쳐 날아오르는 까마귀 떼의 역동적인 찰나.",
        "short_id": "C67"
      },
      {
        "name": "감시 드론",
        "shot_count": 1,
        "name_source_quote": "어두운 난민촌 입구 하늘 위로 강렬한 서치라이트를 켠 감시 드론 한 대가 떠 있는 전경.",
        "short_id": "C68"
      },
      {
        "name": "자폭 드론",
        "shot_count": 2,
        "name_source_quote": "거대한 인공제방을 향해 밤하늘을 날아가는 수많은 자폭 드론들의 비행 궤적 전경.",
        "short_id": "C69"
      },
      {
        "name": "사냥용 드론",
        "shot_count": 3,
        "name_source_quote": "캠핑카 뒤꽁무니에 바짝 붙은 사냥용 드론의 총구에서 기관총 화염이 뿜어져 나오는 찰나의 전경.",
        "short_id": "C70"
      },
      {
        "name": "나비드론",
        "shot_count": 7,
        "name_source_quote": "이강준의 얼굴 바로 앞에 뜬 채 붉은 스캔 빛을 비추고 있는 나비드론의 근접 찰나.",
        "short_id": "C71"
      }
    ],
    "name_provenance": {
      "checked": 71,
      "verified": 69,
      "unverified": [
        {
          "name": "특임대 A",
          "quote_preview": "이강준의 책상 위로 군복 입은 군인이 서류 문건을 쑥 내미는 손 근접 찰나. [특임대 A]",
          "reason": "근거 구절이 시나리오 본문에 없다(지어낸 인용)",
          "short_id": "C39"
        },
        {
          "name": "하회탈 궁사",
          "quote_preview": "성당 2층 발코니에서 하회탈을 쓴 궁사들이 아래쪽을 향해 팽팽하게 활시위를 당긴 채 조준하는 구도. [하회탈 궁사들]",
          "reason": "근거 구절이 시나리오 본문에 없다(지어낸 인용)",
          "short_id": "C57"
        }
      ],
      "evidence_source": "shot_descriptions"
    }
  },
  "step_id": "entity_all_character",
  "run_id": "c2f900bd-a2fa-41ea-b385-8f08c054ecd6",
  "resolved_model": "gpt",
  "updated_at": "2026-09-20T16:13:35.485868+00:00",
  "schema_version": 1,
  "project_config_snapshot": {}
}