{
  "entities": [
    {
      "short_id": "",
      "name": "낡은어부작업복",
      "entity_type": "outlook",
      "visible_shot_count": 0,
      "prompt_id_count": 0,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "C01",
      "name": "수리영",
      "entity_type": "character",
      "visible_shot_count": 33,
      "prompt_id_count": 50,
      "required_ref_count": 32,
      "generated_refs": 0
    },
    {
      "short_id": "C02",
      "name": "혜수",
      "entity_type": "character",
      "visible_shot_count": 10,
      "prompt_id_count": 19,
      "required_ref_count": 9,
      "generated_refs": 0
    },
    {
      "short_id": "C03",
      "name": "인우",
      "entity_type": "character",
      "visible_shot_count": 5,
      "prompt_id_count": 11,
      "required_ref_count": 5,
      "generated_refs": 0
    },
    {
      "short_id": "C04",
      "name": "민숙",
      "entity_type": "character",
      "visible_shot_count": 5,
      "prompt_id_count": 4,
      "required_ref_count": 3,
      "generated_refs": 0
    },
    {
      "short_id": "C05",
      "name": "김형사",
      "entity_type": "character",
      "visible_shot_count": 3,
      "prompt_id_count": 8,
      "required_ref_count": 3,
      "generated_refs": 0
    },
    {
      "short_id": "C06",
      "name": "한국인 남성",
      "entity_type": "character",
      "visible_shot_count": 1,
      "prompt_id_count": 0,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "C07",
      "name": "한국인 여성",
      "entity_type": "character",
      "visible_shot_count": 2,
      "prompt_id_count": 4,
      "required_ref_count": 1,
      "generated_refs": 0
    },
    {
      "short_id": "C08",
      "name": "로트와일러",
      "entity_type": "character",
      "visible_shot_count": 0,
      "prompt_id_count": 0,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "C09",
      "name": "한국인 남성 (발현 상태)",
      "entity_type": "character",
      "visible_shot_count": 2,
      "prompt_id_count": 2,
      "required_ref_count": 2,
      "generated_refs": 0
    },
    {
      "short_id": "C10",
      "name": "낯선 한국인 남성",
      "entity_type": "character",
      "visible_shot_count": 2,
      "prompt_id_count": 1,
      "required_ref_count": 1,
      "generated_refs": 0
    },
    {
      "short_id": "C11",
      "name": "남자 직원",
      "entity_type": "character",
      "visible_shot_count": 0,
      "prompt_id_count": 0,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "C12",
      "name": "검은 인영",
      "entity_type": "character",
      "visible_shot_count": 1,
      "prompt_id_count": 0,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "C13",
      "name": "한국인 경찰",
      "entity_type": "character",
      "visible_shot_count": 1,
      "prompt_id_count": 0,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "C14",
      "name": "검은 고양이",
      "entity_type": "character",
      "visible_shot_count": 1,
      "prompt_id_count": 0,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "C15",
      "name": "한국인 남성 보안직원",
      "entity_type": "character",
      "visible_shot_count": 1,
      "prompt_id_count": 0,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "C19",
      "name": "민숙 (기괴한 형상)",
      "entity_type": "character",
      "visible_shot_count": 0,
      "prompt_id_count": 0,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "C20",
      "name": "한국인 어린 여자아이",
      "entity_type": "character",
      "visible_shot_count": 0,
      "prompt_id_count": 0,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "L01",
      "name": "숲속",
      "entity_type": "location",
      "visible_shot_count": 1,
      "prompt_id_count": 0,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "L02",
      "name": "도시 뒷골목",
      "entity_type": "location",
      "visible_shot_count": 2,
      "prompt_id_count": 0,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "L03",
      "name": "폴리스 라인이 쳐진 낮의 사건 현장",
      "entity_type": "location",
      "visible_shot_count": 0,
      "prompt_id_count": 0,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "L04",
      "name": "인천 변두리 다세대 빌라 옥탑방 외부와 옥상 마당",
      "entity_type": "location",
      "visible_shot_count": 3,
      "prompt_id_count": 0,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "L05",
      "name": "옥탑방 내부",
      "entity_type": "location",
      "visible_shot_count": 14,
      "prompt_id_count": 4,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "L06",
      "name": "해안가 도로",
      "entity_type": "location",
      "visible_shot_count": 2,
      "prompt_id_count": 1,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "L07",
      "name": "유기견 보호원",
      "entity_type": "location",
      "visible_shot_count": 0,
      "prompt_id_count": 0,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "L08",
      "name": "번화가 도로와 대형 마트 외부",
      "entity_type": "location",
      "visible_shot_count": 2,
      "prompt_id_count": 0,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "L09",
      "name": "대형 마트 매장 내부",
      "entity_type": "location",
      "visible_shot_count": 1,
      "prompt_id_count": 0,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "L10",
      "name": "마트 총무과 사무실",
      "entity_type": "location",
      "visible_shot_count": 1,
      "prompt_id_count": 0,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "L11",
      "name": "다세대 빌라 외부 마당과 옥탑 계단 및 건물 앞 길가",
      "entity_type": "location",
      "visible_shot_count": 0,
      "prompt_id_count": 0,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "L12",
      "name": "해안가 버스정류장",
      "entity_type": "location",
      "visible_shot_count": 2,
      "prompt_id_count": 0,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "L13",
      "name": "경찰서 사무실 내부",
      "entity_type": "location",
      "visible_shot_count": 1,
      "prompt_id_count": 1,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "L14",
      "name": "경찰서 건물 앞",
      "entity_type": "location",
      "visible_shot_count": 1,
      "prompt_id_count": 0,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "L15",
      "name": "PC방 내부",
      "entity_type": "location",
      "visible_shot_count": 1,
      "prompt_id_count": 1,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "L16",
      "name": "안개 낀 포구와 선착장",
      "entity_type": "location",
      "visible_shot_count": 1,
      "prompt_id_count": 1,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "L17",
      "name": "소형어선 갑판",
      "entity_type": "location",
      "visible_shot_count": 2,
      "prompt_id_count": 1,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "L18",
      "name": "소형어선 조타실",
      "entity_type": "location",
      "visible_shot_count": 2,
      "prompt_id_count": 0,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "L19",
      "name": "바다 위 안개벽 해상",
      "entity_type": "location",
      "visible_shot_count": 1,
      "prompt_id_count": 1,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "P01",
      "name": "붉은 원형 표식",
      "entity_type": "prop",
      "visible_shot_count": 4,
      "prompt_id_count": 8,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "P02",
      "name": "낡은 흑백 사진",
      "entity_type": "prop",
      "visible_shot_count": 3,
      "prompt_id_count": 7,
      "required_ref_count": 3,
      "generated_refs": 0
    },
    {
      "short_id": "P03",
      "name": "스마트폰",
      "entity_type": "prop",
      "visible_shot_count": 6,
      "prompt_id_count": 8,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "P04",
      "name": "백팩",
      "entity_type": "prop",
      "visible_shot_count": 0,
      "prompt_id_count": 0,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "P05",
      "name": "인형",
      "entity_type": "prop",
      "visible_shot_count": 0,
      "prompt_id_count": 0,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "P06",
      "name": "인쇄된 종이 지도",
      "entity_type": "prop",
      "visible_shot_count": 1,
      "prompt_id_count": 3,
      "required_ref_count": 1,
      "generated_refs": 0
    },
    {
      "short_id": "P07",
      "name": "액자 사진",
      "entity_type": "prop",
      "visible_shot_count": 1,
      "prompt_id_count": 1,
      "required_ref_count": 1,
      "generated_refs": 0
    },
    {
      "short_id": "P09",
      "name": "메모지",
      "entity_type": "prop",
      "visible_shot_count": 1,
      "prompt_id_count": 2,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "P10",
      "name": "서류철",
      "entity_type": "prop",
      "visible_shot_count": 0,
      "prompt_id_count": 0,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "P12",
      "name": "약초",
      "entity_type": "prop",
      "visible_shot_count": 0,
      "prompt_id_count": 0,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "P13",
      "name": "냄비",
      "entity_type": "prop",
      "visible_shot_count": 0,
      "prompt_id_count": 0,
      "required_ref_count": 0,
      "generated_refs": 0
    },
    {
      "short_id": "P14",
      "name": "TV",
      "entity_type": "prop",
      "visible_shot_count": 0,
      "prompt_id_count": 0,
      "required_ref_count": 0,
      "generated_refs": 0
    }
  ],
  "safety_diff": {
    "broad_required_union": [
      "C01",
      "C02",
      "C03",
      "C04",
      "C05",
      "C06",
      "C07",
      "C08",
      "C09",
      "C10",
      "C11",
      "C12",
      "C13",
      "C14",
      "C15",
      "L01",
      "L02",
      "L03",
      "L04",
      "L04B01",
      "L04B02",
      "L04B03",
      "L05",
      "L05B01",
      "L05B02",
      "L05B03",
      "L05B04",
      "L05B05",
      "L05B06",
      "L05B07",
      "L05B08",
      "L06",
      "L07",
      "L08",
      "L08B01",
      "L08B02",
      "L09",
      "L10",
      "L10B01",
      "L11",
      "L12",
      "L13",
      "L13B01",
      "L13B02",
      "L14",
      "L14B01",
      "L15",
      "L16",
      "L17",
      "L17B01",
      "L18",
      "L18B01",
      "L19",
      "P01",
      "P02",
      "P03",
      "P04",
      "P05",
      "P06",
      "P07",
      "P09",
      "P10",
      "P12",
      "P13",
      "P14"
    ],
    "required_refs_only": [
      "C01",
      "C02",
      "C03",
      "C04",
      "C05",
      "C07",
      "C09",
      "C10",
      "L04B01",
      "L04B02",
      "L04B03",
      "L05B01",
      "L05B02",
      "L05B03",
      "L05B04",
      "L05B05",
      "L05B06",
      "L05B07",
      "L05B08",
      "L08B01",
      "L08B02",
      "L10B01",
      "L13B01",
      "L13B02",
      "L14B01",
      "L17B01",
      "L18B01",
      "P02",
      "P06",
      "P07"
    ],
    "audit_set": [
      "C06",
      "C08",
      "C11",
      "C12",
      "C13",
      "C14",
      "C15",
      "L01",
      "L02",
      "L03",
      "L04",
      "L05",
      "L06",
      "L07",
      "L08",
      "L09",
      "L10",
      "L11",
      "L12",
      "L13",
      "L14",
      "L15",
      "L16",
      "L17",
      "L18",
      "L19",
      "P01",
      "P03",
      "P04",
      "P05",
      "P09",
      "P10",
      "P12",
      "P13",
      "P14"
    ],
    "audit_set_with_t2i_usage": [
      "L05",
      "L06",
      "L13",
      "L15",
      "L16",
      "L17",
      "L19",
      "P01",
      "P03",
      "P09"
    ],
    "gate_blocking_ids": [],
    "warnings": {
      "out_of_scope_prompt_id_ids": [
        "L05",
        "L06",
        "L13",
        "L15",
        "L16",
        "L17",
        "L19"
      ],
      "prompt_id_only_prop_ids": [
        "P01",
        "P03",
        "P09"
      ],
      "expected_text_only_prompt_id_ids": []
    }
  },
  "gate": {
    "passed": true,
    "input_status": {
      "shot_selection": "ok",
      "shot_director": "ok",
      "scene_director": "ok",
      "shot_validator": "ok",
      "scene_detail": "ok"
    },
    "fail_reasons": [],
    "reason": "필수 입력 정상 + GATE blocking 집합 비어있음 (materialization risk 0) — broad union 제거 안전"
  },
  "project_id": "6cb862d9-590c-4dce-86e6-d10c2977db19",
  "episode_id": "08ad2cd3-3e96-4d84-808f-869ee628473c",
  "cross_check": {
    "db_selected_still_id_count": {
      "C01": 50,
      "P03": 8,
      "C02": 19,
      "P09": 2,
      "C04": 4,
      "P01": 8,
      "C03": 11,
      "L05": 4,
      "P07": 1,
      "C07": 4,
      "C09": 2,
      "L06": 1,
      "C10": 1,
      "P02": 7,
      "C05": 8,
      "L13": 1,
      "L15": 1,
      "L16": 1,
      "P06": 3,
      "L17": 1,
      "L19": 1
    },
    "checkpoint_prompt_id_count": {
      "C01": 50,
      "C02": 19,
      "C03": 11,
      "C04": 4,
      "C05": 8,
      "C07": 4,
      "C09": 2,
      "C10": 1,
      "L05": 4,
      "L06": 1,
      "L13": 1,
      "L15": 1,
      "L16": 1,
      "L17": 1,
      "L19": 1,
      "P01": 8,
      "P02": 7,
      "P03": 8,
      "P06": 3,
      "P07": 1,
      "P09": 2
    },
    "id_set_divergence": []
  },
  "db_step_run_status": {
    "shot_selection": "completed",
    "shot_director": "completed",
    "scene_director": "completed",
    "shot_validator": "completed",
    "scene_detail": "completed"
  }
}