{
  "status": "completed",
  "applicable_count": 11,
  "completed_count": 11,
  "failed_count": 0,
  "schema_version": 5,
  "config_hash": "40fe7dfee524cec3",
  "data": {
    "plans": {
      "bg_winter_reed_field": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_reed_field_wooden_shed": {
        "status": "ok",
        "plan": {
          "backgrounds": [
            {
              "applies_to_shots": [
                "S2_Shot1"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l02_shed_interior"
              ],
              "loc_id": "L02",
              "space_key_hint": "main",
              "state_class": "quiet",
              "state_label_raw": "dark daytime shed interior with terrified Joseon civilians silently huddled among rough timber boards",
              "sub_location_label": "낡은 나무 창고 내부",
              "surface_role": "interior_room",
              "time_phase": "day",
              "bg_id": "L02B02"
            },
            {
              "applies_to_shots": [
                "S2_Shot5"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l02_shed_interior"
              ],
              "loc_id": "L02",
              "space_key_hint": "main",
              "state_class": "intrusion",
              "state_label_raw": "shed doorway breached as a Japanese officer is violently dragged outside by an unseen force",
              "sub_location_label": "창고 내부와 열린 출입문",
              "surface_role": "interior_room",
              "time_phase": "day",
              "bg_id": "L02B01"
            },
            {
              "applies_to_shots": [
                "S3_Shot5",
                "S3_Shot13",
                "S3_Shot17",
                "S97_Shot1",
                "S97_Shot5"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l03_shed_forecourt"
              ],
              "loc_id": "L03",
              "space_key_hint": "main",
              "state_class": "blood_scene",
              "state_label_raw": "daytime shed forecourt strewn with bloodied Japanese casualties during the smoke entity's death and the village chief's transformation",
              "sub_location_label": "갈대숲 창고 앞 피비린내 나는 공터",
              "surface_role": "exterior_plate",
              "time_phase": "day",
              "bg_id": "L03B01"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_l02_shed_interior",
              "loc_id": "L02",
              "scope": "Single rough-board shed interior including the doorway and crowded floor area.",
              "space_key_hint": "main",
              "sub_location": "shed_interior"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_l03_shed_forecourt",
              "loc_id": "L03",
              "scope": "Shed-front clearing, facade threshold, casualty area, and surrounding reed-field edge.",
              "space_key_hint": "main",
              "sub_location": "shed_forecourt"
            }
          ],
          "group_id": "bg_reed_field_wooden_shed",
          "rationale_summary": "L02 uses one plan with quiet hiding and active intrusion variants; L03 uses one forecourt plan and a shared daylight blood-scene plate for both past-event sequences.",
          "gen_order": [
            "fp_l02_shed_interior",
            "fp_l03_shed_forecourt",
            "L02B02",
            "L02B01",
            "L03B01"
          ]
        }
      },
      "bg_city_commuter_bus": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_metropolitan_nightscape": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_convenience_store": {
        "status": "ok",
        "plan": {
          "backgrounds": [
            {
              "applies_to_shots": [
                "S5_Shot1"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l06_refrigerator_backspace"
              ],
              "loc_id": "L06",
              "space_key_hint": "main",
              "state_class": "quiet",
              "state_label_raw": "night refrigerator backspace, quiet during a hurried late meal",
              "sub_location_label": "편의점 냉장고 뒤편 좁은 공간",
              "surface_role": "interior_room",
              "time_phase": "night",
              "bg_id": "L06B03"
            },
            {
              "applies_to_shots": [
                "S5_Shot4"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l06_refrigerator_backspace"
              ],
              "loc_id": "L06",
              "space_key_hint": "main",
              "state_class": "blood_scene",
              "state_label_raw": "night refrigerator backspace with a dark red blood drop on white tile",
              "sub_location_label": "편의점 냉장고 뒤편 타일 바닥",
              "surface_role": "interior_room",
              "time_phase": "night",
              "bg_id": "L06B02"
            },
            {
              "applies_to_shots": [
                "S5_Shot8"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l06_refrigerator_backspace"
              ],
              "loc_id": "L06",
              "space_key_hint": "main",
              "state_class": "arrival",
              "state_label_raw": "night refrigerator backspace as a smiling visitor appears beyond the glass door",
              "sub_location_label": "냉장고 유리문 안쪽과 매장 방향",
              "surface_role": "interior_room",
              "time_phase": "night",
              "bg_id": "L06B01"
            },
            {
              "applies_to_shots": [
                "S6_Shot1",
                "S6_Shot5",
                "S6_Shot7",
                "S8_Shot2",
                "S8_Shot8"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l08_storefront_bench_sidewalk"
              ],
              "loc_id": "L08",
              "space_key_hint": "main",
              "state_class": "quiet",
              "state_label_raw": "quiet nighttime storefront bench and sidewalk during a private conversation",
              "sub_location_label": "편의점 앞 벤치와 보도",
              "surface_role": "exterior_plate",
              "time_phase": "night",
              "bg_id": "L08B01"
            },
            {
              "applies_to_shots": [
                "S10_Shot2",
                "S10_Shot5"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l07_store_interior"
              ],
              "loc_id": "L07",
              "space_key_hint": "main",
              "state_class": "quiet",
              "state_label_raw": "quiet nighttime convenience store interior with the clerk alone at the counter",
              "sub_location_label": "편의점 카운터와 매장 내부",
              "surface_role": "interior_room",
              "time_phase": "night",
              "bg_id": "L07B01"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_l06_refrigerator_backspace",
              "loc_id": "L06",
              "scope": "Narrow staff-side refrigerator space, glass doors, food baskets, and tile floor",
              "space_key_hint": "main",
              "sub_location": "refrigerator_backspace"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_l07_store_interior",
              "loc_id": "L07",
              "scope": "Convenience store sales floor with checkout counter, entrance, and customer aisles",
              "space_key_hint": "main",
              "sub_location": "store_interior"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_l08_storefront_bench_sidewalk",
              "loc_id": "L08",
              "scope": "Storefront bench, adjacent sidewalk, entrance frontage, and curbside relationships",
              "space_key_hint": "main",
              "sub_location": "storefront_bench_sidewalk"
            }
          ],
          "group_id": "bg_convenience_store",
          "rationale_summary": "각 single-space 위치에 계획도 1개를 배정하고, 냉장고 뒤편은 평온·혈흔·방문자 등장 상태로 분리했다. 외부 대화와 카운터 장면은 동일한 조용한 야간 배경으로 묶었다.",
          "gen_order": [
            "fp_l06_refrigerator_backspace",
            "fp_l07_store_interior",
            "fp_l08_storefront_bench_sidewalk",
            "L06B03",
            "L06B02",
            "L06B01",
            "L08B01",
            "L07B01"
          ]
        }
      },
      "bg_police_station": {
        "status": "ok",
        "plan": {
          "backgrounds": [
            {
              "applies_to_shots": [
                "S7_Shot2",
                "S7_Shot6",
                "S7_Shot9"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_police_station_parking"
              ],
              "loc_id": "L09",
              "space_key_hint": "main",
              "state_class": "dream_or_vision_state",
              "state_label_raw": "daytime police station parking lot during Inwoo's recollection, tense private exchange and money envelope handoff",
              "sub_location_label": "경찰서 주차장",
              "surface_role": "site_surface",
              "time_phase": "day",
              "bg_id": "L09B01"
            },
            {
              "applies_to_shots": [
                "S16_Shot1",
                "S16_Shot7"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_detective_office"
              ],
              "loc_id": "L14",
              "space_key_hint": "main",
              "state_class": "evidence_display",
              "state_label_raw": "daytime detective office with CCTV evidence files displayed and reviewed at Inwoo's workstation",
              "sub_location_label": "경찰서 형사과 사무실",
              "surface_role": "interior_room",
              "time_phase": "day",
              "bg_id": "L14B01"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_police_station_parking",
              "loc_id": "L09",
              "scope": "Police station parking layout and pedestrian positions for the envelope exchange",
              "space_key_hint": "main",
              "sub_location": "parking_lot"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_detective_office",
              "loc_id": "L14",
              "scope": "Detective office desks, workstation, monitor, and circulation paths",
              "space_key_hint": "main",
              "sub_location": "detective_office"
            }
          ],
          "group_id": "bg_police_station",
          "rationale_summary": "Single-space locations each receive one plan; the parking is a flashback site surface, while the office is an interior evidence-review state.",
          "gen_order": [
            "fp_police_station_parking",
            "fp_detective_office",
            "L09B01",
            "L14B01"
          ]
        }
      },
      "bg_multifamily_residence": {
        "status": "ok",
        "plan": {
          "backgrounds": [
            {
              "applies_to_shots": [
                "S9_Shot2",
                "S9_Shot6"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_minsuk_residence"
              ],
              "loc_id": "L10",
              "space_key_hint": "main",
              "state_class": "intrusion",
              "state_label_raw": "nighttime home intrusion with an unknown woman on the sofa and a huge man blocking the entrance",
              "sub_location_label": "민숙 집 거실과 현관",
              "surface_role": "interior_room",
              "time_phase": "night",
              "bg_id": "L10B02"
            },
            {
              "applies_to_shots": [
                "S12_Shot3",
                "S12_Shot9",
                "S12_Shot16"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_minsuk_residence"
              ],
              "loc_id": "L10",
              "space_key_hint": "main",
              "state_class": "blood_scene",
              "state_label_raw": "ransacked nighttime interior with broken furniture, shattered fixtures, debris, and conspicuous bloodstains",
              "sub_location_label": "피 묻은 난장판이 된 민숙 집 내부",
              "surface_role": "interior_room",
              "time_phase": "night",
              "bg_id": "L10B01"
            },
            {
              "applies_to_shots": [
                "S11_Shot3",
                "S11_Shot4"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [],
              "loc_id": "L11",
              "space_key_hint": "main",
              "state_class": "arrival",
              "state_label_raw": "night emergency arrival in the residential alley with an open police car and urgent ascent of the exterior stairs",
              "sub_location_label": "다세대 주택가 골목과 낡은 외부 계단",
              "surface_role": "site_surface",
              "time_phase": "night",
              "bg_id": "L11B02"
            },
            {
              "applies_to_shots": [
                "S14_Shot2",
                "S14_Shot6"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [],
              "loc_id": "L11",
              "space_key_hint": "main",
              "state_class": "busy",
              "state_label_raw": "dusk police and ambulance response with flashing lights, officers moving around, and gathered neighbors",
              "sub_location_label": "민숙 집 앞 골목의 경찰·구급 현장",
              "surface_role": "site_surface",
              "time_phase": "dusk",
              "bg_id": "L11B01"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_minsuk_residence",
              "loc_id": "L10",
              "scope": "Complete two-room residence interior, including living area, sofa, entrance, walls, and circulation.",
              "space_key_hint": "main",
              "sub_location": "minsuk_residence_interior"
            }
          ],
          "group_id": "bg_multifamily_residence",
          "rationale_summary": "L10 uses one unified interior plan with intrusion and blood-scene variants; L11 uses one site layout with distinct night arrival and dusk emergency-response plates.",
          "gen_order": [
            "fp_minsuk_residence",
            "L10B02",
            "L10B01",
            "L11B02",
            "L11B01"
          ]
        }
      },
      "bg_rural_highway": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_old_suv_cabin": {
        "status": "ok",
        "plan": {
          "backgrounds": [
            {
              "applies_to_shots": [
                "S13_Shot3",
                "S13_Shot4"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_suv_cabin"
              ],
              "loc_id": "L13",
              "space_key_hint": "main",
              "state_class": "intrusion",
              "state_label_raw": "night driving cabin with bound captive lying across the rear seat",
              "sub_location_label": "구형 산타페 운전석 및 뒷좌석",
              "surface_role": "interior_room",
              "time_phase": "night",
              "bg_id": "L13B03"
            },
            {
              "applies_to_shots": [
                "S15_Shot4",
                "S15_Shot5"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_suv_cabin"
              ],
              "loc_id": "L13",
              "space_key_hint": "main",
              "state_class": "intrusion",
              "state_label_raw": "dim dawn cabin with bound captive awake and driver looking back",
              "sub_location_label": "구형 산타페 운전석 및 뒷좌석",
              "surface_role": "interior_room",
              "time_phase": "dawn",
              "bg_id": "L13B02"
            },
            {
              "applies_to_shots": [
                "S18_Shot1",
                "S18_Shot5"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_suv_cabin"
              ],
              "loc_id": "L13",
              "space_key_hint": "main",
              "state_class": "dream_or_vision_state",
              "state_label_raw": "dawn flashback cabin with freed passenger holding an old framed photograph",
              "sub_location_label": "구형 산타페 앞좌석",
              "surface_role": "interior_room",
              "time_phase": "dawn",
              "bg_id": "L13B01"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_suv_cabin",
              "loc_id": "L13",
              "scope": "Entire SUV cabin including driver, front passenger, and rear seating areas",
              "space_key_hint": "main",
              "sub_location": "suv_cabin"
            }
          ],
          "group_id": "bg_old_suv_cabin",
          "rationale_summary": "단일 SUV 실내 평면을 공유하며, 밤의 납치 상태와 새벽의 각성, 회상 속 앞좌석 대화를 구분했다.",
          "gen_order": [
            "fp_suv_cabin",
            "L13B03",
            "L13B02",
            "L13B01"
          ]
        }
      },
      "bg_compact_sedan_cabin": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_fishing_boat": {
        "status": "ok",
        "plan": {
          "backgrounds": [
            {
              "applies_to_shots": [
                "S17_Shot3",
                "S17_Shot6"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l16_boat_deck"
              ],
              "loc_id": "L16",
              "space_key_hint": "main",
              "state_class": "quiet",
              "state_label_raw": "clear daytime voyage with sparse deck activity and contemplative views across open blue sea",
              "sub_location_label": "항해 중인 어선 선수와 갑판",
              "surface_role": "exterior_plate",
              "time_phase": "day",
              "bg_id": "L16B05"
            },
            {
              "applies_to_shots": [
                "S19_Shot3",
                "S19_Shot8"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l16_boat_deck"
              ],
              "loc_id": "L16",
              "space_key_hint": "main",
              "state_class": "normal",
              "state_label_raw": "clear daytime deck during a guarded private conversation among passengers",
              "sub_location_label": "어선 승객 갑판",
              "surface_role": "exterior_plate",
              "time_phase": "day",
              "bg_id": "L16B04"
            },
            {
              "applies_to_shots": [
                "S19_Shot11"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [],
              "loc_id": "L16",
              "space_key_hint": "main",
              "state_class": "arrival",
              "state_label_raw": "sunlit isolated Geumwoldo appearing ahead across sparkling open water",
              "sub_location_label": "어선에서 바라본 금월도 방향 해상",
              "surface_role": "site_surface",
              "time_phase": "day",
              "bg_id": "L16B01"
            },
            {
              "applies_to_shots": [
                "S54_Shot3"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l16_boat_deck"
              ],
              "loc_id": "L16",
              "space_key_hint": "main",
              "state_class": "intrusion",
              "state_label_raw": "fog-bound wheelhouse-facing area charged with the helmsman's hostile glare",
              "sub_location_label": "갑판에서 연결되는 조타실 내부 시야",
              "surface_role": "interior_room",
              "time_phase": "day",
              "bg_id": "L16B03"
            },
            {
              "applies_to_shots": [
                "S54_Shot4"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [],
              "loc_id": "L16",
              "space_key_hint": "main",
              "state_class": "arrival",
              "state_label_raw": "dense daytime sea fog revealing the dark and ominous silhouette of Geumwoldo",
              "sub_location_label": "안개 낀 금월도 접근 해상",
              "surface_role": "site_surface",
              "time_phase": "day",
              "bg_id": "L16B01"
            },
            {
              "applies_to_shots": [
                "S101_Shot1",
                "S101_Shot6",
                "S101_Shot15"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l16_boat_deck"
              ],
              "loc_id": "L16",
              "space_key_hint": "main",
              "state_class": "busy",
              "state_label_raw": "festival-day departure with an overcrowded passenger deck and active dockside exchange",
              "sub_location_label": "만원인 어선 갑판과 선착장 접안부",
              "surface_role": "exterior_plate",
              "time_phase": "day",
              "bg_id": "L16B02"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_l16_boat_deck",
              "loc_id": "L16",
              "scope": "Fishing boat deck, bow, stern seating, circulation, dock edge, and wheelhouse interface",
              "space_key_hint": "main",
              "sub_location": "boat_deck_and_exterior"
            }
          ],
          "group_id": "bg_fishing_boat",
          "rationale_summary": "L16과 L17은 single_space라 각 1개 도면만 둔다. 맑은 항해, 섬 도착, 안개 속 위협, 축제일 혼잡을 서사적 상태와 물리 표면에 맞춰 분리했다.",
          "gen_order": [
            "fp_l16_boat_deck",
            "L16B05",
            "L16B04",
            "L16B01",
            "L16B03",
            "L16B02"
          ]
        }
      },
      "bg_open_sea": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_island_main_pier": {
        "status": "ok",
        "plan": {
          "backgrounds": [
            {
              "applies_to_shots": [
                "S20_Shot2",
                "S20_Shot6",
                "S20_Shot9",
                "S55_Shot3",
                "S55_Shot4",
                "S55_Shot6"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l19_pier"
              ],
              "loc_id": "L19",
              "space_key_hint": "main",
              "state_class": "arrival",
              "state_label_raw": "daytime pier during contrasting arrivals, with villagers gathered around incoming boats",
              "sub_location_label": "금월도 선착장 접안부",
              "surface_role": "exterior_plate",
              "time_phase": "day",
              "bg_id": "L19B01"
            },
            {
              "applies_to_shots": [
                "S38_Shot3",
                "S38_Shot8"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l19_pier"
              ],
              "loc_id": "L19",
              "space_key_hint": "main",
              "state_class": "busy",
              "state_label_raw": "daytime working pier with a moored fishing boat being decorated for the ritual",
              "sub_location_label": "장식 중인 낚시 어선 주변",
              "surface_role": "exterior_plate",
              "time_phase": "day",
              "bg_id": "L19B02"
            },
            {
              "applies_to_shots": [
                "S61_Shot1",
                "S61_Shot11",
                "S61_Shot15"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l19_pier"
              ],
              "loc_id": "L19",
              "space_key_hint": "main",
              "state_class": "evidence_display",
              "state_label_raw": "red dusk pier with a mutilated drowned body displayed on plastic and examined before villagers",
              "sub_location_label": "선착장 시신 조사 구역",
              "surface_role": "exterior_plate",
              "time_phase": "dusk",
              "bg_id": "L19B05"
            },
            {
              "applies_to_shots": [
                "S79_Shot1",
                "S79_Shot5"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l19_pier"
              ],
              "loc_id": "L19",
              "space_key_hint": "main",
              "state_class": "busy",
              "state_label_raw": "night pier flooded with work lights as flashlight-bearing villagers organize a manhunt",
              "sub_location_label": "야간 수색 거점 선착장",
              "surface_role": "exterior_plate",
              "time_phase": "night",
              "bg_id": "L19B06"
            },
            {
              "applies_to_shots": [
                "S86_Shot5",
                "S86_Shot12",
                "S86_Shot14"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l19_pier"
              ],
              "loc_id": "L19",
              "space_key_hint": "main",
              "state_class": "busy_exit",
              "state_label_raw": "daytime pier in a violent escape attempt, with villagers charging the patrol boat and a detective killed",
              "sub_location_label": "순찰정 접안부와 탈출 동선",
              "surface_role": "exterior_plate",
              "time_phase": "day",
              "bg_id": "L19B03"
            },
            {
              "applies_to_shots": [
                "S93_Shot4",
                "S93_Shot8"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l19_pier"
              ],
              "loc_id": "L19",
              "space_key_hint": "main",
              "state_class": "dream_or_vision_state",
              "state_label_raw": "golden sunset pier transformed into an ominous vision of Yeong-ran holding Min-suk's drowned corpse",
              "sub_location_label": "노을진 선착장 끝",
              "surface_role": "exterior_plate",
              "time_phase": "dusk",
              "bg_id": "L19B04"
            },
            {
              "applies_to_shots": [
                "S80_Shot6"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l49_gear_warehouse"
              ],
              "loc_id": "L49",
              "space_key_hint": "main",
              "state_class": "intrusion",
              "state_label_raw": "dark cluttered gear warehouse during an armed flashlight search, with bloodied fugitives hidden in nets",
              "sub_location_label": "어망 더미와 은신 구석",
              "surface_role": "interior_room",
              "time_phase": "night",
              "bg_id": "L49B04"
            },
            {
              "applies_to_shots": [
                "S80_Shot14"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l49_gear_warehouse"
              ],
              "loc_id": "L49",
              "space_key_hint": "main",
              "state_class": "blood_scene",
              "state_label_raw": "daylit historical kitchen vision with a blood-covered mother and child consuming a corpse",
              "sub_location_label": "경신 대기근 초가집 부엌 환영",
              "surface_role": "interior_room",
              "time_phase": "day",
              "bg_id": "L49B01"
            },
            {
              "applies_to_shots": [
                "S80_Shot25"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [],
              "loc_id": "L49",
              "space_key_hint": "main",
              "state_class": "dream_or_vision_state",
              "state_label_raw": "daytime historical vision of newcomers disembarking as island natives welcome them at the shore",
              "sub_location_label": "과거 금월도 입구 환영",
              "surface_role": "site_surface",
              "time_phase": "day",
              "bg_id": "L49B02"
            },
            {
              "applies_to_shots": [
                "S81_Shot9",
                "S81_Shot12",
                "S81_Shot13"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l49_gear_warehouse"
              ],
              "loc_id": "L49",
              "space_key_hint": "main",
              "state_class": "quiet",
              "state_label_raw": "dark hidden warehouse after the search, hushed as mother and daughter confront painful revelations",
              "sub_location_label": "어구 창고 은신 구역",
              "surface_role": "interior_room",
              "time_phase": "night",
              "bg_id": "L49B05"
            },
            {
              "applies_to_shots": [
                "S84_Shot3",
                "S84_Shot6"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l49_gear_warehouse"
              ],
              "loc_id": "L49",
              "space_key_hint": "main",
              "state_class": "quiet",
              "state_label_raw": "dusty daytime warehouse hideout under tense watch, with a revolver prepared for defense",
              "sub_location_label": "먼지 낀 창가와 어구 적재 구역",
              "surface_role": "interior_room",
              "time_phase": "day",
              "bg_id": "L49B03"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_l19_pier",
              "loc_id": "L19",
              "scope": "Pier deck, berths, warehouse threshold, boat access, and routes toward the village",
              "space_key_hint": "main",
              "sub_location": "main_pier"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_l49_gear_warehouse",
              "loc_id": "L49",
              "scope": "Single cluttered warehouse interior with door, dusty window, aisles, nets, traps, and hiding pockets",
              "space_key_hint": "main",
              "sub_location": "gear_warehouse_interior"
            }
          ],
          "group_id": "bg_island_main_pier",
          "rationale_summary": "두 single-space 위치에 각 1개 평면을 두고, 선착장의 도착·시신 조사·수색·탈출·환영과 창고의 침입·은신·역사 몽타주를 시간 및 상태별로 분리했다.",
          "gen_order": [
            "fp_l19_pier",
            "fp_l49_gear_warehouse",
            "L19B01",
            "L19B02",
            "L19B05",
            "L19B06",
            "L19B03",
            "L19B04",
            "L49B04",
            "L49B01",
            "L49B02",
            "L49B05",
            "L49B03"
          ]
        }
      },
      "bg_restaurant_compound": {
        "status": "ok",
        "plan": {
          "backgrounds": [
            {
              "applies_to_shots": [
                "S21_Shot11",
                "S21_Shot16",
                "S21_Shot19"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l20_restaurant_main"
              ],
              "loc_id": "L20",
              "space_key_hint": "main",
              "state_class": "busy",
              "state_label_raw": "daytime restaurant active with meal preparation, a raw-meat feast, and children eating",
              "sub_location_label": "반월 식당 홀과 주방",
              "surface_role": "interior_room",
              "time_phase": "day",
              "bg_id": "L20B02"
            },
            {
              "applies_to_shots": [
                "S24_Shot1",
                "S24_Shot3"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l20_restaurant_main"
              ],
              "loc_id": "L20",
              "space_key_hint": "main",
              "state_class": "quiet",
              "state_label_raw": "empty restaurant barely visible in cold moonlight",
              "sub_location_label": "밤의 반월 식당 홀",
              "surface_role": "interior_room",
              "time_phase": "night",
              "bg_id": "L20B06"
            },
            {
              "applies_to_shots": [
                "S48_Shot1",
                "S48_Shot10"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l20_restaurant_main"
              ],
              "loc_id": "L20",
              "space_key_hint": "main",
              "state_class": "blood_scene",
              "state_label_raw": "daytime festival preparation with a black goat being butchered in the kitchen",
              "sub_location_label": "반월 식당 홀과 도살 작업 중인 주방",
              "surface_role": "interior_room",
              "time_phase": "day",
              "bg_id": "L20B01"
            },
            {
              "applies_to_shots": [
                "S63_Shot17",
                "S63_Shot28",
                "S63_Shot30"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l20_restaurant_main"
              ],
              "loc_id": "L20",
              "space_key_hint": "main",
              "state_class": "blood_scene",
              "state_label_raw": "night meal overtaken by compulsive raw-meat eating, bloodied hands, and ritual preparation",
              "sub_location_label": "밤의 반월 식당 홀",
              "surface_role": "interior_room",
              "time_phase": "night",
              "bg_id": "L20B05"
            },
            {
              "applies_to_shots": [
                "S83_Shot1",
                "S83_Shot3"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l20_restaurant_main"
              ],
              "loc_id": "L20",
              "space_key_hint": "main",
              "state_class": "quiet",
              "state_label_raw": "tense quiet restaurant while villagers search outside the open doorway",
              "sub_location_label": "반월 식당 홀과 열린 출입문",
              "surface_role": "interior_room",
              "time_phase": "day",
              "bg_id": "L20B03"
            },
            {
              "applies_to_shots": [
                "S90_Shot4"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l20_restaurant_main"
              ],
              "loc_id": "L20",
              "space_key_hint": "main",
              "state_class": "dream_or_vision_state",
              "state_label_raw": "empty restaurant washed in red dusk while a disembodied lullaby guides the search",
              "sub_location_label": "노을빛의 빈 반월 식당",
              "surface_role": "interior_room",
              "time_phase": "dusk",
              "bg_id": "L20B04"
            },
            {
              "applies_to_shots": [
                "S36_Shot5",
                "S36_Shot7"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l21_back_room"
              ],
              "loc_id": "L21",
              "space_key_hint": "main",
              "state_class": "dream_or_vision_state",
              "state_label_raw": "excessively peaceful and orderly sunlit room after an uncertain nightmare",
              "sub_location_label": "햇살 드는 반월 식당 뒷방",
              "surface_role": "interior_room",
              "time_phase": "day",
              "bg_id": "L21B01"
            },
            {
              "applies_to_shots": [
                "S50_Shot2",
                "S50_Shot3"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l21_back_room"
              ],
              "loc_id": "L21",
              "space_key_hint": "main",
              "state_class": "intrusion",
              "state_label_raw": "dark back room under covert surveillance from men stationed beyond the curtained window",
              "sub_location_label": "감시받는 반월 식당 뒷방",
              "surface_role": "interior_room",
              "time_phase": "night",
              "bg_id": "L21B02"
            },
            {
              "applies_to_shots": [
                "S65_Shot1"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [],
              "loc_id": "L23",
              "space_key_hint": "main",
              "state_class": "busy",
              "state_label_raw": "night restaurant frontage and alley occupied by rotating village guards",
              "sub_location_label": "반월 식당 앞 골목",
              "surface_role": "site_surface",
              "time_phase": "night",
              "bg_id": "L23B04"
            },
            {
              "applies_to_shots": [
                "S65_Shot4"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [],
              "loc_id": "L23",
              "space_key_hint": "main",
              "state_class": "busy_exit",
              "state_label_raw": "guards abruptly abandon their alley posts and run toward the fire behind the restaurant",
              "sub_location_label": "반월 식당 앞 골목과 뒤편 진입로",
              "surface_role": "site_surface",
              "time_phase": "night",
              "bg_id": "L23B05"
            },
            {
              "applies_to_shots": [
                "S92_Shot3"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [],
              "loc_id": "L23",
              "space_key_hint": "main",
              "state_class": "dream_or_vision_state",
              "state_label_raw": "dusk restaurant frontage opening toward the pier where a distant mother figure faces the sea",
              "sub_location_label": "반월 식당 앞과 선착장 방향",
              "surface_role": "site_surface",
              "time_phase": "dusk",
              "bg_id": "L23B01"
            },
            {
              "applies_to_shots": [
                "S104_Shot4",
                "S104_Shot8"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [],
              "loc_id": "L23",
              "space_key_hint": "main",
              "state_class": "arrival",
              "state_label_raw": "wet and hostile Sandeul advances up the night road and lunges toward the restaurant",
              "sub_location_label": "반월 식당 앞 마을길",
              "surface_role": "site_surface",
              "time_phase": "night",
              "bg_id": "L23B02"
            },
            {
              "applies_to_shots": [
                "S106_Shot2"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [],
              "loc_id": "L23",
              "space_key_hint": "main",
              "state_class": "blood_scene",
              "state_label_raw": "blood-soaked Sandeul emerges through the dark restaurant entrance carrying the white antler spear",
              "sub_location_label": "반월 식당 정문 바깥",
              "surface_role": "transition_zone",
              "time_phase": "night",
              "bg_id": "L23B03"
            },
            {
              "applies_to_shots": [
                "S26_Shot3",
                "S26_Shot5"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [],
              "loc_id": "L31",
              "space_key_hint": "main",
              "state_class": "intrusion",
              "state_label_raw": "night backyard warehouse threshold secretly approached and inspected through the door gap",
              "sub_location_label": "뒤뜰 창고 문 앞",
              "surface_role": "transition_zone",
              "time_phase": "night",
              "bg_id": "L31B03"
            },
            {
              "applies_to_shots": [
                "S28_Shot3"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [],
              "loc_id": "L31",
              "space_key_hint": "main",
              "state_class": "quiet",
              "state_label_raw": "lightless backyard and ominous mountain-road entrance beyond the vegetable garden",
              "sub_location_label": "반월 식당 뒤뜰과 산길 입구",
              "surface_role": "site_surface",
              "time_phase": "night",
              "bg_id": "L31B04"
            },
            {
              "applies_to_shots": [
                "S37_Shot3",
                "S37_Shot6"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [],
              "loc_id": "L31",
              "space_key_hint": "main",
              "state_class": "clean_after",
              "state_label_raw": "daylight backyard warehouse threshold with the ritual erased and ordinary supplies visible inside",
              "sub_location_label": "뒤뜰 창고와 식당 뒷문 사이",
              "surface_role": "transition_zone",
              "time_phase": "day",
              "bg_id": "L31B01"
            },
            {
              "applies_to_shots": [
                "S91_Shot1"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [],
              "loc_id": "L31",
              "space_key_hint": "main",
              "state_class": "dream_or_vision_state",
              "state_label_raw": "dusk backyard suffused with an unseen lullaby during the search for Minsuk",
              "sub_location_label": "노을 지는 반월 식당 뒤뜰",
              "surface_role": "site_surface",
              "time_phase": "dusk",
              "bg_id": "L31B02"
            },
            {
              "applies_to_shots": [
                "S27_Shot3",
                "S27_Shot5"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l32_ritual_warehouse"
              ],
              "loc_id": "L32",
              "space_key_hint": "main",
              "state_class": "evidence_display",
              "state_label_raw": "candlelit ritual chamber displaying a goat head, blood bowl, ancient spear, and lurking silhouette",
              "sub_location_label": "뒤뜰 의례용 창고 내부",
              "surface_role": "interior_room",
              "time_phase": "night",
              "bg_id": "L32B01"
            },
            {
              "applies_to_shots": [
                "S66_Shot1"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [],
              "loc_id": "L34",
              "space_key_hint": "main",
              "state_class": "busy",
              "state_label_raw": "warehouse engulfed by towering flames amid an active nighttime firefighting response",
              "sub_location_label": "불타는 뒤뜰 창고",
              "surface_role": "exterior_plate",
              "time_phase": "night",
              "bg_id": "L34B01"
            },
            {
              "applies_to_shots": [
                "S72_Shot1",
                "S72_Shot2"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [],
              "loc_id": "L34",
              "space_key_hint": "main",
              "state_class": "clean_after",
              "state_label_raw": "fully burned warehouse skeleton still emitting embers and black smoke after the blaze",
              "sub_location_label": "전소된 뒤뜰 창고",
              "surface_role": "exterior_plate",
              "time_phase": "night",
              "bg_id": "L34B02"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_l20_restaurant_main",
              "loc_id": "L20",
              "scope": "Unified restaurant hall, shop displays, kitchen work zone, tables, rooms, windows, and exits.",
              "space_key_hint": "main",
              "sub_location": "restaurant_hall_and_kitchen"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_l21_back_room",
              "loc_id": "L21",
              "scope": "Back room with sleeping area, curtained street-facing window, and sliding door to restaurant.",
              "space_key_hint": "main",
              "sub_location": "restaurant_back_room"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_l32_ritual_warehouse",
              "loc_id": "L32",
              "scope": "Ritual warehouse interior with altar, candle field, hanging corners, doorway, and spear display.",
              "space_key_hint": "main",
              "sub_location": "ritual_warehouse_interior"
            }
          ],
          "group_id": "bg_restaurant_compound",
          "rationale_summary": "Single-space SOT에 따라 위치별 1개 도면을 유지하고, 식당의 혈흔·정적·환영 및 뒤뜰 창고의 의례·화재·전소 상태를 시간과 사건별로 분리했다.",
          "gen_order": [
            "fp_l20_restaurant_main",
            "fp_l21_back_room",
            "fp_l32_ritual_warehouse",
            "L20B02",
            "L20B06",
            "L20B01",
            "L20B05",
            "L20B03",
            "L20B04",
            "L21B01",
            "L21B02",
            "L23B04",
            "L23B05",
            "L23B01",
            "L23B02",
            "L23B03",
            "L31B03",
            "L31B04",
            "L31B01",
            "L31B02",
            "L32B01",
            "L34B01",
            "L34B02"
          ]
        }
      },
      "bg_island_coastal_village": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_pine_forest_trail": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_dream_forest_path": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_forest_entrance": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_forest_stone_markers": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_natural_cave": {
        "status": "ok",
        "plan": {
          "backgrounds": [
            {
              "applies_to_shots": [
                "S25_Shot2",
                "S25_Shot4"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_cave_entrance"
              ],
              "loc_id": "L29",
              "space_key_hint": "main",
              "state_class": "quiet",
              "state_label_raw": "night cave entrance in tense stillness, reinforced with rough timber and opening into pitch darkness",
              "sub_location_label": "숲속 자연동굴 입구",
              "surface_role": "exterior_plate",
              "time_phase": "night",
              "bg_id": "L29B02"
            },
            {
              "applies_to_shots": [
                "S70_Shot1",
                "S70_Shot4"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_cave_entrance"
              ],
              "loc_id": "L29",
              "space_key_hint": "main",
              "state_class": "arrival",
              "state_label_raw": "night cave entrance as two hesitant arrivals cross from the forest into the black opening",
              "sub_location_label": "숲과 동굴 사이 입구",
              "surface_role": "exterior_plate",
              "time_phase": "night",
              "bg_id": "L29B01"
            },
            {
              "applies_to_shots": [
                "S51_Shot2",
                "S51_Shot6"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_cave_interior"
              ],
              "loc_id": "L30",
              "space_key_hint": "main",
              "state_class": "quiet",
              "state_label_raw": "dim night captivity chamber lit by a low bare bulb, with anchored chains and oppressive shadows",
              "sub_location_label": "민숙이 감금된 동굴 구석",
              "surface_role": "interior_room",
              "time_phase": "night",
              "bg_id": "L30B08"
            },
            {
              "applies_to_shots": [
                "S71_Shot8"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_cave_interior"
              ],
              "loc_id": "L30",
              "space_key_hint": "main",
              "state_class": "intrusion",
              "state_label_raw": "pitch-dark cave passage disturbed by an unstable flashlight as intruders advance cautiously",
              "sub_location_label": "박쥐와 잔해가 있는 동굴 통로",
              "surface_role": "interior_room",
              "time_phase": "night",
              "bg_id": "L30B07"
            },
            {
              "applies_to_shots": [
                "S71_Shot13",
                "S71_Shot16"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_cave_interior"
              ],
              "loc_id": "L30",
              "space_key_hint": "main",
              "state_class": "blood_scene",
              "state_label_raw": "deep cave chamber strewn with human bones, wet blood pools and splatter around a chained captive",
              "sub_location_label": "피와 인골이 쌓인 감금 구역",
              "surface_role": "interior_room",
              "time_phase": "night",
              "bg_id": "L30B06"
            },
            {
              "applies_to_shots": [
                "S75_Shot2"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_cave_interior"
              ],
              "loc_id": "L30",
              "space_key_hint": "main",
              "state_class": "ransacked",
              "state_label_raw": "torchlit vacated captivity corner with a violently severed chain abandoned on the rough floor",
              "sub_location_label": "탈출 후 비어 있는 감금 구역",
              "surface_role": "interior_room",
              "time_phase": "night",
              "bg_id": "L30B09"
            },
            {
              "applies_to_shots": [
                "S94_Shot2",
                "S94_Shot3"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_cave_interior"
              ],
              "loc_id": "L30",
              "space_key_hint": "main",
              "state_class": "quiet",
              "state_label_raw": "dim daytime cave chamber with two injured prisoners chained to opposing rock walls",
              "sub_location_label": "양쪽 벽의 쇠사슬 감금 구역",
              "surface_role": "interior_room",
              "time_phase": "day",
              "bg_id": "L30B03"
            },
            {
              "applies_to_shots": [
                "S96_Shot5",
                "S96_Shot7"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_cave_interior"
              ],
              "loc_id": "L30",
              "space_key_hint": "main",
              "state_class": "arrival",
              "state_label_raw": "day cave chamber brightened by Youngran entering with a lantern before the chained prisoners",
              "sub_location_label": "등불이 들어오는 감금 구역",
              "surface_role": "interior_room",
              "time_phase": "day",
              "bg_id": "L30B01"
            },
            {
              "applies_to_shots": [
                "S98_Shot2",
                "S98_Shot9",
                "S102_Shot1"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_cave_interior"
              ],
              "loc_id": "L30",
              "space_key_hint": "main",
              "state_class": "busy",
              "state_label_raw": "occupied daytime captivity chamber charged by confrontation and a desperate attempt to break the chains",
              "sub_location_label": "대치와 탈출 시도가 벌어지는 동굴 내부",
              "surface_role": "interior_room",
              "time_phase": "day",
              "bg_id": "L30B02"
            },
            {
              "applies_to_shots": [
                "S102_Shot16"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [],
              "loc_id": "L30",
              "space_key_hint": "main",
              "state_class": "evidence_display",
              "state_label_raw": "dusk montage insert looking into an opened fish hold packed with bound and gagged captive women",
              "sub_location_label": "열린 어창 내부 몽타주 삽입면",
              "surface_role": "transition_zone",
              "time_phase": "dusk",
              "bg_id": "L30B05"
            },
            {
              "applies_to_shots": [
                "S102_Shot20"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [],
              "loc_id": "L30",
              "space_key_hint": "main",
              "state_class": "arrival",
              "state_label_raw": "dusk ritual-site montage plate as Youngran in white shaman robes steps before the altar rock",
              "sub_location_label": "만월제 제단 몽타주 삽입면",
              "surface_role": "site_surface",
              "time_phase": "dusk",
              "bg_id": "L30B04"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_cave_entrance",
              "loc_id": "L29",
              "scope": "Forest approach, timber-reinforced cave mouth and immediate threshold",
              "space_key_hint": "main",
              "sub_location": "natural_cave_entrance"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_cave_interior",
              "loc_id": "L30",
              "scope": "Continuous cave passage, bone-strewn depth and chained captivity chamber",
              "space_key_hint": "main",
              "sub_location": "natural_cave_interior"
            }
          ],
          "group_id": "bg_natural_cave",
          "rationale_summary": "각 single_space 위치에 도면 1개를 두고, 입구의 정적·도착과 내부의 침입·혈흔·탈출·주간 감금을 구분했다. 몽타주 삽입면은 별도 물리 플레이트로 처리했다.",
          "gen_order": [
            "fp_cave_entrance",
            "fp_cave_interior",
            "L29B02",
            "L29B01",
            "L30B08",
            "L30B07",
            "L30B06",
            "L30B09",
            "L30B03",
            "L30B01",
            "L30B02",
            "L30B05",
            "L30B04"
          ]
        }
      },
      "bg_forest_goat_pen": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_forest_slaughterhouse": {
        "status": "ok",
        "plan": {
          "backgrounds": [
            {
              "applies_to_shots": [
                "S32_Shot12",
                "S32_Shot13",
                "S32_Shot17",
                "S77_Shot1",
                "S77_Shot10"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_slaughterhouse_interior"
              ],
              "loc_id": "L37",
              "space_key_hint": "main",
              "state_class": "blood_scene",
              "state_label_raw": "night slaughterhouse soaked with fresh blood, hanging tools, sacks, and active violence",
              "sub_location_label": "도축장 내부와 창고 쪽문 주변",
              "surface_role": "interior_room",
              "time_phase": "night",
              "bg_id": "L37B03"
            },
            {
              "applies_to_shots": [
                "S44_Shot1",
                "S44_Shot7",
                "S44_Shot11"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_slaughterhouse_interior"
              ],
              "loc_id": "L37",
              "space_key_hint": "main",
              "state_class": "blood_scene",
              "state_label_raw": "harsh midday light revealing bloodstained floor, walls, blades, and a fresh execution",
              "sub_location_label": "도축장 작업장 내부",
              "surface_role": "interior_room",
              "time_phase": "day",
              "bg_id": "L37B01"
            },
            {
              "applies_to_shots": [
                "S59_Shot7",
                "S59_Shot11",
                "S59_Shot12"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_slaughterhouse_interior"
              ],
              "loc_id": "L37",
              "space_key_hint": "main",
              "state_class": "evidence_display",
              "state_label_raw": "daylight exposes bloody sacks and dismembered human remains beside the dark storage corner",
              "sub_location_label": "도축장 내부 창고 문과 포대자루 구역",
              "surface_role": "interior_room",
              "time_phase": "day",
              "bg_id": "L37B02"
            },
            {
              "applies_to_shots": [
                "S108_Shot4",
                "S108_Shot8"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_slaughterhouse_interior"
              ],
              "loc_id": "L37",
              "space_key_hint": "main",
              "state_class": "intrusion",
              "state_label_raw": "dark storage corner under predatory intrusion, with dripping blood and a figure clinging to the ceiling",
              "sub_location_label": "도축장 내부 창고 은신처와 천장",
              "surface_role": "interior_room",
              "time_phase": "night",
              "bg_id": "L37B04"
            },
            {
              "applies_to_shots": [
                "S76_Shot3",
                "S76_Shot6"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [],
              "loc_id": "L39",
              "space_key_hint": "main",
              "state_class": "arrival",
              "state_label_raw": "moonlit empty forest path approaching the isolated goat slaughterhouse at night",
              "sub_location_label": "도축장으로 이어지는 숲길",
              "surface_role": "site_surface",
              "time_phase": "night",
              "bg_id": "L39B01"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_slaughterhouse_interior",
              "loc_id": "L37",
              "scope": "Unified slaughterhouse interior including work floor, tools, storage door, and hiding corner",
              "space_key_hint": "main",
              "sub_location": "slaughterhouse_interior"
            }
          ],
          "group_id": "bg_forest_slaughterhouse",
          "rationale_summary": "각 single_space 위치에 단일 평면을 두고, 도축장 내부는 낮·밤의 유혈, 증거 노출, 천장 침입 상태를 분리했다. 숲길은 도축장 접근 장면용 야간 arrival 표면이다.",
          "gen_order": [
            "fp_slaughterhouse_interior",
            "L37B03",
            "L37B01",
            "L37B02",
            "L37B04",
            "L39B01"
          ]
        }
      },
      "bg_roadside_gas_station": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_mainland_harbor": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_harbor_restaurant_deck": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_forest_ritual_clearing": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_coastal_rock_path": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_police_patrol_boat": {
        "status": "ok",
        "plan": {
          "backgrounds": [
            {
              "applies_to_shots": [
                "S62_Shot4"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l45_patrol_boat_deck"
              ],
              "loc_id": "L45",
              "space_key_hint": "main",
              "state_class": "ransacked",
              "state_label_raw": "dusk patrol boat deck during the looting of a corpse and theft of personal effects",
              "sub_location_label": "경찰 순찰정 갑판 시체 수색 구역",
              "surface_role": "exterior_plate",
              "time_phase": "dusk",
              "bg_id": "L45B02"
            },
            {
              "applies_to_shots": [
                "S62_Shot6"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l45_patrol_boat_deck"
              ],
              "loc_id": "L45",
              "space_key_hint": "main",
              "state_class": "busy",
              "state_label_raw": "dusk deck with a fishing boat alongside and a corpse being transferred across the gap",
              "sub_location_label": "두 선박이 맞닿은 순찰정 측면 갑판",
              "surface_role": "exterior_plate",
              "time_phase": "dusk",
              "bg_id": "L45B01"
            },
            {
              "applies_to_shots": [
                "S62_Shot9",
                "S87_Shot41"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l45_patrol_boat_deck"
              ],
              "loc_id": "L45",
              "space_key_hint": "main",
              "state_class": "quiet",
              "state_label_raw": "dark night patrol boat deck and surrounding sea in a lonely or grief-stricken lull",
              "sub_location_label": "야간 순찰정 갑판과 선미 해상",
              "surface_role": "exterior_plate",
              "time_phase": "night",
              "bg_id": "L45B05"
            },
            {
              "applies_to_shots": [
                "S87_Shot26",
                "S87_Shot34",
                "S88_Shot8"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l45_patrol_boat_deck"
              ],
              "loc_id": "L45",
              "space_key_hint": "main",
              "state_class": "intrusion",
              "state_label_raw": "night deck under violent takeover, with a transformed attacker at the rail and an armed hijacker aboard",
              "sub_location_label": "선수-선미 연결 갑판과 난간",
              "surface_role": "exterior_plate",
              "time_phase": "night",
              "bg_id": "L45B04"
            },
            {
              "applies_to_shots": [
                "S88_Shot4"
              ],
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_l45_patrol_boat_deck"
              ],
              "loc_id": "L45",
              "space_key_hint": "main",
              "state_class": "arrival",
              "state_label_raw": "night patrol boat approaching Geumwoldo, revealing hostile villagers gathered on the dock",
              "sub_location_label": "순찰정에서 바라본 금월도 선착장 접근 방향",
              "surface_role": "exterior_plate",
              "time_phase": "night",
              "bg_id": "L45B03"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_l45_patrol_boat_deck",
              "loc_id": "L45",
              "scope": "Complete patrol boat deck, rails, bow-stern passage, wheelhouse footprint, and boarding edges",
              "space_key_hint": "main",
              "sub_location": "patrol_boat_deck"
            }
          ],
          "group_id": "bg_police_patrol_boat",
          "rationale_summary": "L45·L46는 single-space라 각각 1개 plan으로 통합했다. 갑판은 약탈, 이송, 침입·폭력, 정적, 섬 재도착 상태를 시간과 사건별로 구분했다.",
          "gen_order": [
            "fp_l45_patrol_boat_deck",
            "L45B02",
            "L45B01",
            "L45B05",
            "L45B04",
            "L45B03"
          ]
        }
      },
      "bg_opposite_coast_pier": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_wave_battered_rocks": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_village_speaker_tower": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_coastal_cliff": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_coastal_police_post": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_historic_drought_village": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_historic_thatched_house": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_historic_government_office_yard": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_historic_mountain_path": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_historic_burning_village": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_historic_wooden_boat": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_historic_island_landing": {
        "status": "prev_shot_only",
        "plan": null
      }
    },
    "background_catalog": {
      "L02B01": {
        "bg_id": "L02B01",
        "loc_id": "L02",
        "space_key": "main",
        "time_phase": "day",
        "state_class": "intrusion",
        "surface_role": "interior_room",
        "semantic_key": "L02|main|day|intrusion",
        "depends_on_fp": [
          "fp_l02_shed_interior"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S2_Shot5"
        ],
        "sub_location_label": "창고 내부와 열린 출입문",
        "state_label_raw": "shed doorway breached as a Japanese officer is violently dragged outside by an unseen force"
      },
      "L02B02": {
        "bg_id": "L02B02",
        "loc_id": "L02",
        "space_key": "main",
        "time_phase": "day",
        "state_class": "quiet",
        "surface_role": "interior_room",
        "semantic_key": "L02|main|day|quiet",
        "depends_on_fp": [
          "fp_l02_shed_interior"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S2_Shot1"
        ],
        "sub_location_label": "낡은 나무 창고 내부",
        "state_label_raw": "dark daytime shed interior with terrified Joseon civilians silently huddled among rough timber boards"
      },
      "L03B01": {
        "bg_id": "L03B01",
        "loc_id": "L03",
        "space_key": "main",
        "time_phase": "day",
        "state_class": "blood_scene",
        "surface_role": "exterior_plate",
        "semantic_key": "L03|main|day|blood_scene",
        "depends_on_fp": [
          "fp_l03_shed_forecourt"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S3_Shot5",
          "S3_Shot13",
          "S3_Shot17",
          "S97_Shot1",
          "S97_Shot5"
        ],
        "sub_location_label": "갈대숲 창고 앞 피비린내 나는 공터",
        "state_label_raw": "daytime shed forecourt strewn with bloodied Japanese casualties during the smoke entity's death and the village chief's transformation"
      },
      "L06B01": {
        "bg_id": "L06B01",
        "loc_id": "L06",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "arrival",
        "surface_role": "interior_room",
        "semantic_key": "L06|main|night|arrival",
        "depends_on_fp": [
          "fp_l06_refrigerator_backspace"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S5_Shot8"
        ],
        "sub_location_label": "냉장고 유리문 안쪽과 매장 방향",
        "state_label_raw": "night refrigerator backspace as a smiling visitor appears beyond the glass door"
      },
      "L06B02": {
        "bg_id": "L06B02",
        "loc_id": "L06",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "blood_scene",
        "surface_role": "interior_room",
        "semantic_key": "L06|main|night|blood_scene",
        "depends_on_fp": [
          "fp_l06_refrigerator_backspace"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S5_Shot4"
        ],
        "sub_location_label": "편의점 냉장고 뒤편 타일 바닥",
        "state_label_raw": "night refrigerator backspace with a dark red blood drop on white tile"
      },
      "L06B03": {
        "bg_id": "L06B03",
        "loc_id": "L06",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "quiet",
        "surface_role": "interior_room",
        "semantic_key": "L06|main|night|quiet",
        "depends_on_fp": [
          "fp_l06_refrigerator_backspace"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S5_Shot1"
        ],
        "sub_location_label": "편의점 냉장고 뒤편 좁은 공간",
        "state_label_raw": "night refrigerator backspace, quiet during a hurried late meal"
      },
      "L07B01": {
        "bg_id": "L07B01",
        "loc_id": "L07",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "quiet",
        "surface_role": "interior_room",
        "semantic_key": "L07|main|night|quiet",
        "depends_on_fp": [
          "fp_l07_store_interior"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S10_Shot2",
          "S10_Shot5"
        ],
        "sub_location_label": "편의점 카운터와 매장 내부",
        "state_label_raw": "quiet nighttime convenience store interior with the clerk alone at the counter"
      },
      "L08B01": {
        "bg_id": "L08B01",
        "loc_id": "L08",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "quiet",
        "surface_role": "exterior_plate",
        "semantic_key": "L08|main|night|quiet",
        "depends_on_fp": [
          "fp_l08_storefront_bench_sidewalk"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S6_Shot1",
          "S6_Shot5",
          "S6_Shot7",
          "S8_Shot2",
          "S8_Shot8"
        ],
        "sub_location_label": "편의점 앞 벤치와 보도",
        "state_label_raw": "quiet nighttime storefront bench and sidewalk during a private conversation"
      },
      "L09B01": {
        "bg_id": "L09B01",
        "loc_id": "L09",
        "space_key": "main",
        "time_phase": "day",
        "state_class": "dream_or_vision_state",
        "surface_role": "site_surface",
        "semantic_key": "L09|main|day|dream_or_vision_state",
        "depends_on_fp": [
          "fp_police_station_parking"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S7_Shot2",
          "S7_Shot6",
          "S7_Shot9"
        ],
        "sub_location_label": "경찰서 주차장",
        "state_label_raw": "daytime police station parking lot during Inwoo's recollection, tense private exchange and money envelope handoff"
      },
      "L10B01": {
        "bg_id": "L10B01",
        "loc_id": "L10",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "blood_scene",
        "surface_role": "interior_room",
        "semantic_key": "L10|main|night|blood_scene",
        "depends_on_fp": [
          "fp_minsuk_residence"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S12_Shot3",
          "S12_Shot9",
          "S12_Shot16"
        ],
        "sub_location_label": "피 묻은 난장판이 된 민숙 집 내부",
        "state_label_raw": "ransacked nighttime interior with broken furniture, shattered fixtures, debris, and conspicuous bloodstains"
      },
      "L10B02": {
        "bg_id": "L10B02",
        "loc_id": "L10",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "intrusion",
        "surface_role": "interior_room",
        "semantic_key": "L10|main|night|intrusion",
        "depends_on_fp": [
          "fp_minsuk_residence"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S9_Shot2",
          "S9_Shot6"
        ],
        "sub_location_label": "민숙 집 거실과 현관",
        "state_label_raw": "nighttime home intrusion with an unknown woman on the sofa and a huge man blocking the entrance"
      },
      "L11B01": {
        "bg_id": "L11B01",
        "loc_id": "L11",
        "space_key": "main",
        "time_phase": "dusk",
        "state_class": "busy",
        "surface_role": "site_surface",
        "semantic_key": "L11|main|dusk|busy",
        "depends_on_fp": [],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S14_Shot2",
          "S14_Shot6"
        ],
        "sub_location_label": "민숙 집 앞 골목의 경찰·구급 현장",
        "state_label_raw": "dusk police and ambulance response with flashing lights, officers moving around, and gathered neighbors"
      },
      "L11B02": {
        "bg_id": "L11B02",
        "loc_id": "L11",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "arrival",
        "surface_role": "site_surface",
        "semantic_key": "L11|main|night|arrival",
        "depends_on_fp": [],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S11_Shot3",
          "S11_Shot4"
        ],
        "sub_location_label": "다세대 주택가 골목과 낡은 외부 계단",
        "state_label_raw": "night emergency arrival in the residential alley with an open police car and urgent ascent of the exterior stairs"
      },
      "L13B01": {
        "bg_id": "L13B01",
        "loc_id": "L13",
        "space_key": "main",
        "time_phase": "dawn",
        "state_class": "dream_or_vision_state",
        "surface_role": "interior_room",
        "semantic_key": "L13|main|dawn|dream_or_vision_state",
        "depends_on_fp": [
          "fp_suv_cabin"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S18_Shot1",
          "S18_Shot5"
        ],
        "sub_location_label": "구형 산타페 앞좌석",
        "state_label_raw": "dawn flashback cabin with freed passenger holding an old framed photograph"
      },
      "L13B02": {
        "bg_id": "L13B02",
        "loc_id": "L13",
        "space_key": "main",
        "time_phase": "dawn",
        "state_class": "intrusion",
        "surface_role": "interior_room",
        "semantic_key": "L13|main|dawn|intrusion",
        "depends_on_fp": [
          "fp_suv_cabin"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S15_Shot4",
          "S15_Shot5"
        ],
        "sub_location_label": "구형 산타페 운전석 및 뒷좌석",
        "state_label_raw": "dim dawn cabin with bound captive awake and driver looking back"
      },
      "L13B03": {
        "bg_id": "L13B03",
        "loc_id": "L13",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "intrusion",
        "surface_role": "interior_room",
        "semantic_key": "L13|main|night|intrusion",
        "depends_on_fp": [
          "fp_suv_cabin"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S13_Shot3",
          "S13_Shot4"
        ],
        "sub_location_label": "구형 산타페 운전석 및 뒷좌석",
        "state_label_raw": "night driving cabin with bound captive lying across the rear seat"
      },
      "L14B01": {
        "bg_id": "L14B01",
        "loc_id": "L14",
        "space_key": "main",
        "time_phase": "day",
        "state_class": "evidence_display",
        "surface_role": "interior_room",
        "semantic_key": "L14|main|day|evidence_display",
        "depends_on_fp": [
          "fp_detective_office"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S16_Shot1",
          "S16_Shot7"
        ],
        "sub_location_label": "경찰서 형사과 사무실",
        "state_label_raw": "daytime detective office with CCTV evidence files displayed and reviewed at Inwoo's workstation"
      },
      "L16B01": {
        "bg_id": "L16B01",
        "loc_id": "L16",
        "space_key": "main",
        "time_phase": "day",
        "state_class": "arrival",
        "surface_role": "site_surface",
        "semantic_key": "L16|main|day|arrival",
        "depends_on_fp": [],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S19_Shot11",
          "S54_Shot4"
        ],
        "sub_location_label": "어선에서 바라본 금월도 방향 해상",
        "state_label_raw": "sunlit isolated Geumwoldo appearing ahead across sparkling open water"
      },
      "L16B02": {
        "bg_id": "L16B02",
        "loc_id": "L16",
        "space_key": "main",
        "time_phase": "day",
        "state_class": "busy",
        "surface_role": "exterior_plate",
        "semantic_key": "L16|main|day|busy",
        "depends_on_fp": [
          "fp_l16_boat_deck"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S101_Shot1",
          "S101_Shot6",
          "S101_Shot15"
        ],
        "sub_location_label": "만원인 어선 갑판과 선착장 접안부",
        "state_label_raw": "festival-day departure with an overcrowded passenger deck and active dockside exchange"
      },
      "L16B03": {
        "bg_id": "L16B03",
        "loc_id": "L16",
        "space_key": "main",
        "time_phase": "day",
        "state_class": "intrusion",
        "surface_role": "interior_room",
        "semantic_key": "L16|main|day|intrusion",
        "depends_on_fp": [
          "fp_l16_boat_deck"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S54_Shot3"
        ],
        "sub_location_label": "갑판에서 연결되는 조타실 내부 시야",
        "state_label_raw": "fog-bound wheelhouse-facing area charged with the helmsman's hostile glare"
      },
      "L16B04": {
        "bg_id": "L16B04",
        "loc_id": "L16",
        "space_key": "main",
        "time_phase": "day",
        "state_class": "normal",
        "surface_role": "exterior_plate",
        "semantic_key": "L16|main|day|normal",
        "depends_on_fp": [
          "fp_l16_boat_deck"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S19_Shot3",
          "S19_Shot8"
        ],
        "sub_location_label": "어선 승객 갑판",
        "state_label_raw": "clear daytime deck during a guarded private conversation among passengers"
      },
      "L16B05": {
        "bg_id": "L16B05",
        "loc_id": "L16",
        "space_key": "main",
        "time_phase": "day",
        "state_class": "quiet",
        "surface_role": "exterior_plate",
        "semantic_key": "L16|main|day|quiet",
        "depends_on_fp": [
          "fp_l16_boat_deck"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S17_Shot3",
          "S17_Shot6"
        ],
        "sub_location_label": "항해 중인 어선 선수와 갑판",
        "state_label_raw": "clear daytime voyage with sparse deck activity and contemplative views across open blue sea"
      },
      "L19B01": {
        "bg_id": "L19B01",
        "loc_id": "L19",
        "space_key": "main",
        "time_phase": "day",
        "state_class": "arrival",
        "surface_role": "exterior_plate",
        "semantic_key": "L19|main|day|arrival",
        "depends_on_fp": [
          "fp_l19_pier"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S20_Shot2",
          "S20_Shot6",
          "S20_Shot9",
          "S55_Shot3",
          "S55_Shot4",
          "S55_Shot6"
        ],
        "sub_location_label": "금월도 선착장 접안부",
        "state_label_raw": "daytime pier during contrasting arrivals, with villagers gathered around incoming boats"
      },
      "L19B02": {
        "bg_id": "L19B02",
        "loc_id": "L19",
        "space_key": "main",
        "time_phase": "day",
        "state_class": "busy",
        "surface_role": "exterior_plate",
        "semantic_key": "L19|main|day|busy",
        "depends_on_fp": [
          "fp_l19_pier"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S38_Shot3",
          "S38_Shot8"
        ],
        "sub_location_label": "장식 중인 낚시 어선 주변",
        "state_label_raw": "daytime working pier with a moored fishing boat being decorated for the ritual"
      },
      "L19B03": {
        "bg_id": "L19B03",
        "loc_id": "L19",
        "space_key": "main",
        "time_phase": "day",
        "state_class": "busy_exit",
        "surface_role": "exterior_plate",
        "semantic_key": "L19|main|day|busy_exit",
        "depends_on_fp": [
          "fp_l19_pier"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S86_Shot5",
          "S86_Shot12",
          "S86_Shot14"
        ],
        "sub_location_label": "순찰정 접안부와 탈출 동선",
        "state_label_raw": "daytime pier in a violent escape attempt, with villagers charging the patrol boat and a detective killed"
      },
      "L19B04": {
        "bg_id": "L19B04",
        "loc_id": "L19",
        "space_key": "main",
        "time_phase": "dusk",
        "state_class": "dream_or_vision_state",
        "surface_role": "exterior_plate",
        "semantic_key": "L19|main|dusk|dream_or_vision_state",
        "depends_on_fp": [
          "fp_l19_pier"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S93_Shot4",
          "S93_Shot8"
        ],
        "sub_location_label": "노을진 선착장 끝",
        "state_label_raw": "golden sunset pier transformed into an ominous vision of Yeong-ran holding Min-suk's drowned corpse"
      },
      "L19B05": {
        "bg_id": "L19B05",
        "loc_id": "L19",
        "space_key": "main",
        "time_phase": "dusk",
        "state_class": "evidence_display",
        "surface_role": "exterior_plate",
        "semantic_key": "L19|main|dusk|evidence_display",
        "depends_on_fp": [
          "fp_l19_pier"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S61_Shot1",
          "S61_Shot11",
          "S61_Shot15"
        ],
        "sub_location_label": "선착장 시신 조사 구역",
        "state_label_raw": "red dusk pier with a mutilated drowned body displayed on plastic and examined before villagers"
      },
      "L19B06": {
        "bg_id": "L19B06",
        "loc_id": "L19",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "busy",
        "surface_role": "exterior_plate",
        "semantic_key": "L19|main|night|busy",
        "depends_on_fp": [
          "fp_l19_pier"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S79_Shot1",
          "S79_Shot5"
        ],
        "sub_location_label": "야간 수색 거점 선착장",
        "state_label_raw": "night pier flooded with work lights as flashlight-bearing villagers organize a manhunt"
      },
      "L20B01": {
        "bg_id": "L20B01",
        "loc_id": "L20",
        "space_key": "main",
        "time_phase": "day",
        "state_class": "blood_scene",
        "surface_role": "interior_room",
        "semantic_key": "L20|main|day|blood_scene",
        "depends_on_fp": [
          "fp_l20_restaurant_main"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S48_Shot1",
          "S48_Shot10"
        ],
        "sub_location_label": "반월 식당 홀과 도살 작업 중인 주방",
        "state_label_raw": "daytime festival preparation with a black goat being butchered in the kitchen"
      },
      "L20B02": {
        "bg_id": "L20B02",
        "loc_id": "L20",
        "space_key": "main",
        "time_phase": "day",
        "state_class": "busy",
        "surface_role": "interior_room",
        "semantic_key": "L20|main|day|busy",
        "depends_on_fp": [
          "fp_l20_restaurant_main"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S21_Shot11",
          "S21_Shot16",
          "S21_Shot19"
        ],
        "sub_location_label": "반월 식당 홀과 주방",
        "state_label_raw": "daytime restaurant active with meal preparation, a raw-meat feast, and children eating"
      },
      "L20B03": {
        "bg_id": "L20B03",
        "loc_id": "L20",
        "space_key": "main",
        "time_phase": "day",
        "state_class": "quiet",
        "surface_role": "interior_room",
        "semantic_key": "L20|main|day|quiet",
        "depends_on_fp": [
          "fp_l20_restaurant_main"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S83_Shot1",
          "S83_Shot3"
        ],
        "sub_location_label": "반월 식당 홀과 열린 출입문",
        "state_label_raw": "tense quiet restaurant while villagers search outside the open doorway"
      },
      "L20B04": {
        "bg_id": "L20B04",
        "loc_id": "L20",
        "space_key": "main",
        "time_phase": "dusk",
        "state_class": "dream_or_vision_state",
        "surface_role": "interior_room",
        "semantic_key": "L20|main|dusk|dream_or_vision_state",
        "depends_on_fp": [
          "fp_l20_restaurant_main"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S90_Shot4"
        ],
        "sub_location_label": "노을빛의 빈 반월 식당",
        "state_label_raw": "empty restaurant washed in red dusk while a disembodied lullaby guides the search"
      },
      "L20B05": {
        "bg_id": "L20B05",
        "loc_id": "L20",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "blood_scene",
        "surface_role": "interior_room",
        "semantic_key": "L20|main|night|blood_scene",
        "depends_on_fp": [
          "fp_l20_restaurant_main"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S63_Shot17",
          "S63_Shot28",
          "S63_Shot30"
        ],
        "sub_location_label": "밤의 반월 식당 홀",
        "state_label_raw": "night meal overtaken by compulsive raw-meat eating, bloodied hands, and ritual preparation"
      },
      "L20B06": {
        "bg_id": "L20B06",
        "loc_id": "L20",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "quiet",
        "surface_role": "interior_room",
        "semantic_key": "L20|main|night|quiet",
        "depends_on_fp": [
          "fp_l20_restaurant_main"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S24_Shot1",
          "S24_Shot3"
        ],
        "sub_location_label": "밤의 반월 식당 홀",
        "state_label_raw": "empty restaurant barely visible in cold moonlight"
      },
      "L21B01": {
        "bg_id": "L21B01",
        "loc_id": "L21",
        "space_key": "main",
        "time_phase": "day",
        "state_class": "dream_or_vision_state",
        "surface_role": "interior_room",
        "semantic_key": "L21|main|day|dream_or_vision_state",
        "depends_on_fp": [
          "fp_l21_back_room"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S36_Shot5",
          "S36_Shot7"
        ],
        "sub_location_label": "햇살 드는 반월 식당 뒷방",
        "state_label_raw": "excessively peaceful and orderly sunlit room after an uncertain nightmare"
      },
      "L21B02": {
        "bg_id": "L21B02",
        "loc_id": "L21",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "intrusion",
        "surface_role": "interior_room",
        "semantic_key": "L21|main|night|intrusion",
        "depends_on_fp": [
          "fp_l21_back_room"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S50_Shot2",
          "S50_Shot3"
        ],
        "sub_location_label": "감시받는 반월 식당 뒷방",
        "state_label_raw": "dark back room under covert surveillance from men stationed beyond the curtained window"
      },
      "L23B01": {
        "bg_id": "L23B01",
        "loc_id": "L23",
        "space_key": "main",
        "time_phase": "dusk",
        "state_class": "dream_or_vision_state",
        "surface_role": "site_surface",
        "semantic_key": "L23|main|dusk|dream_or_vision_state",
        "depends_on_fp": [],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S92_Shot3"
        ],
        "sub_location_label": "반월 식당 앞과 선착장 방향",
        "state_label_raw": "dusk restaurant frontage opening toward the pier where a distant mother figure faces the sea"
      },
      "L23B02": {
        "bg_id": "L23B02",
        "loc_id": "L23",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "arrival",
        "surface_role": "site_surface",
        "semantic_key": "L23|main|night|arrival",
        "depends_on_fp": [],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S104_Shot4",
          "S104_Shot8"
        ],
        "sub_location_label": "반월 식당 앞 마을길",
        "state_label_raw": "wet and hostile Sandeul advances up the night road and lunges toward the restaurant"
      },
      "L23B03": {
        "bg_id": "L23B03",
        "loc_id": "L23",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "blood_scene",
        "surface_role": "transition_zone",
        "semantic_key": "L23|main|night|blood_scene",
        "depends_on_fp": [],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S106_Shot2"
        ],
        "sub_location_label": "반월 식당 정문 바깥",
        "state_label_raw": "blood-soaked Sandeul emerges through the dark restaurant entrance carrying the white antler spear"
      },
      "L23B04": {
        "bg_id": "L23B04",
        "loc_id": "L23",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "busy",
        "surface_role": "site_surface",
        "semantic_key": "L23|main|night|busy",
        "depends_on_fp": [],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S65_Shot1"
        ],
        "sub_location_label": "반월 식당 앞 골목",
        "state_label_raw": "night restaurant frontage and alley occupied by rotating village guards"
      },
      "L23B05": {
        "bg_id": "L23B05",
        "loc_id": "L23",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "busy_exit",
        "surface_role": "site_surface",
        "semantic_key": "L23|main|night|busy_exit",
        "depends_on_fp": [],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S65_Shot4"
        ],
        "sub_location_label": "반월 식당 앞 골목과 뒤편 진입로",
        "state_label_raw": "guards abruptly abandon their alley posts and run toward the fire behind the restaurant"
      },
      "L29B01": {
        "bg_id": "L29B01",
        "loc_id": "L29",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "arrival",
        "surface_role": "exterior_plate",
        "semantic_key": "L29|main|night|arrival",
        "depends_on_fp": [
          "fp_cave_entrance"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S70_Shot1",
          "S70_Shot4"
        ],
        "sub_location_label": "숲과 동굴 사이 입구",
        "state_label_raw": "night cave entrance as two hesitant arrivals cross from the forest into the black opening"
      },
      "L29B02": {
        "bg_id": "L29B02",
        "loc_id": "L29",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "quiet",
        "surface_role": "exterior_plate",
        "semantic_key": "L29|main|night|quiet",
        "depends_on_fp": [
          "fp_cave_entrance"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S25_Shot2",
          "S25_Shot4"
        ],
        "sub_location_label": "숲속 자연동굴 입구",
        "state_label_raw": "night cave entrance in tense stillness, reinforced with rough timber and opening into pitch darkness"
      },
      "L30B01": {
        "bg_id": "L30B01",
        "loc_id": "L30",
        "space_key": "main",
        "time_phase": "day",
        "state_class": "arrival",
        "surface_role": "interior_room",
        "semantic_key": "L30|main|day|arrival",
        "depends_on_fp": [
          "fp_cave_interior"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S96_Shot5",
          "S96_Shot7"
        ],
        "sub_location_label": "등불이 들어오는 감금 구역",
        "state_label_raw": "day cave chamber brightened by Youngran entering with a lantern before the chained prisoners"
      },
      "L30B02": {
        "bg_id": "L30B02",
        "loc_id": "L30",
        "space_key": "main",
        "time_phase": "day",
        "state_class": "busy",
        "surface_role": "interior_room",
        "semantic_key": "L30|main|day|busy",
        "depends_on_fp": [
          "fp_cave_interior"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S98_Shot2",
          "S98_Shot9",
          "S102_Shot1"
        ],
        "sub_location_label": "대치와 탈출 시도가 벌어지는 동굴 내부",
        "state_label_raw": "occupied daytime captivity chamber charged by confrontation and a desperate attempt to break the chains"
      },
      "L30B03": {
        "bg_id": "L30B03",
        "loc_id": "L30",
        "space_key": "main",
        "time_phase": "day",
        "state_class": "quiet",
        "surface_role": "interior_room",
        "semantic_key": "L30|main|day|quiet",
        "depends_on_fp": [
          "fp_cave_interior"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S94_Shot2",
          "S94_Shot3"
        ],
        "sub_location_label": "양쪽 벽의 쇠사슬 감금 구역",
        "state_label_raw": "dim daytime cave chamber with two injured prisoners chained to opposing rock walls"
      },
      "L30B04": {
        "bg_id": "L30B04",
        "loc_id": "L30",
        "space_key": "main",
        "time_phase": "dusk",
        "state_class": "arrival",
        "surface_role": "site_surface",
        "semantic_key": "L30|main|dusk|arrival",
        "depends_on_fp": [],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S102_Shot20"
        ],
        "sub_location_label": "만월제 제단 몽타주 삽입면",
        "state_label_raw": "dusk ritual-site montage plate as Youngran in white shaman robes steps before the altar rock"
      },
      "L30B05": {
        "bg_id": "L30B05",
        "loc_id": "L30",
        "space_key": "main",
        "time_phase": "dusk",
        "state_class": "evidence_display",
        "surface_role": "transition_zone",
        "semantic_key": "L30|main|dusk|evidence_display",
        "depends_on_fp": [],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S102_Shot16"
        ],
        "sub_location_label": "열린 어창 내부 몽타주 삽입면",
        "state_label_raw": "dusk montage insert looking into an opened fish hold packed with bound and gagged captive women"
      },
      "L30B06": {
        "bg_id": "L30B06",
        "loc_id": "L30",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "blood_scene",
        "surface_role": "interior_room",
        "semantic_key": "L30|main|night|blood_scene",
        "depends_on_fp": [
          "fp_cave_interior"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S71_Shot13",
          "S71_Shot16"
        ],
        "sub_location_label": "피와 인골이 쌓인 감금 구역",
        "state_label_raw": "deep cave chamber strewn with human bones, wet blood pools and splatter around a chained captive"
      },
      "L30B07": {
        "bg_id": "L30B07",
        "loc_id": "L30",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "intrusion",
        "surface_role": "interior_room",
        "semantic_key": "L30|main|night|intrusion",
        "depends_on_fp": [
          "fp_cave_interior"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S71_Shot8"
        ],
        "sub_location_label": "박쥐와 잔해가 있는 동굴 통로",
        "state_label_raw": "pitch-dark cave passage disturbed by an unstable flashlight as intruders advance cautiously"
      },
      "L30B08": {
        "bg_id": "L30B08",
        "loc_id": "L30",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "quiet",
        "surface_role": "interior_room",
        "semantic_key": "L30|main|night|quiet",
        "depends_on_fp": [
          "fp_cave_interior"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S51_Shot2",
          "S51_Shot6"
        ],
        "sub_location_label": "민숙이 감금된 동굴 구석",
        "state_label_raw": "dim night captivity chamber lit by a low bare bulb, with anchored chains and oppressive shadows"
      },
      "L30B09": {
        "bg_id": "L30B09",
        "loc_id": "L30",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "ransacked",
        "surface_role": "interior_room",
        "semantic_key": "L30|main|night|ransacked",
        "depends_on_fp": [
          "fp_cave_interior"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S75_Shot2"
        ],
        "sub_location_label": "탈출 후 비어 있는 감금 구역",
        "state_label_raw": "torchlit vacated captivity corner with a violently severed chain abandoned on the rough floor"
      },
      "L31B01": {
        "bg_id": "L31B01",
        "loc_id": "L31",
        "space_key": "main",
        "time_phase": "day",
        "state_class": "clean_after",
        "surface_role": "transition_zone",
        "semantic_key": "L31|main|day|clean_after",
        "depends_on_fp": [],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S37_Shot3",
          "S37_Shot6"
        ],
        "sub_location_label": "뒤뜰 창고와 식당 뒷문 사이",
        "state_label_raw": "daylight backyard warehouse threshold with the ritual erased and ordinary supplies visible inside"
      },
      "L31B02": {
        "bg_id": "L31B02",
        "loc_id": "L31",
        "space_key": "main",
        "time_phase": "dusk",
        "state_class": "dream_or_vision_state",
        "surface_role": "site_surface",
        "semantic_key": "L31|main|dusk|dream_or_vision_state",
        "depends_on_fp": [],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S91_Shot1"
        ],
        "sub_location_label": "노을 지는 반월 식당 뒤뜰",
        "state_label_raw": "dusk backyard suffused with an unseen lullaby during the search for Minsuk"
      },
      "L31B03": {
        "bg_id": "L31B03",
        "loc_id": "L31",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "intrusion",
        "surface_role": "transition_zone",
        "semantic_key": "L31|main|night|intrusion",
        "depends_on_fp": [],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S26_Shot3",
          "S26_Shot5"
        ],
        "sub_location_label": "뒤뜰 창고 문 앞",
        "state_label_raw": "night backyard warehouse threshold secretly approached and inspected through the door gap"
      },
      "L31B04": {
        "bg_id": "L31B04",
        "loc_id": "L31",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "quiet",
        "surface_role": "site_surface",
        "semantic_key": "L31|main|night|quiet",
        "depends_on_fp": [],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S28_Shot3"
        ],
        "sub_location_label": "반월 식당 뒤뜰과 산길 입구",
        "state_label_raw": "lightless backyard and ominous mountain-road entrance beyond the vegetable garden"
      },
      "L32B01": {
        "bg_id": "L32B01",
        "loc_id": "L32",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "evidence_display",
        "surface_role": "interior_room",
        "semantic_key": "L32|main|night|evidence_display",
        "depends_on_fp": [
          "fp_l32_ritual_warehouse"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S27_Shot3",
          "S27_Shot5"
        ],
        "sub_location_label": "뒤뜰 의례용 창고 내부",
        "state_label_raw": "candlelit ritual chamber displaying a goat head, blood bowl, ancient spear, and lurking silhouette"
      },
      "L34B01": {
        "bg_id": "L34B01",
        "loc_id": "L34",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "busy",
        "surface_role": "exterior_plate",
        "semantic_key": "L34|main|night|busy",
        "depends_on_fp": [],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S66_Shot1"
        ],
        "sub_location_label": "불타는 뒤뜰 창고",
        "state_label_raw": "warehouse engulfed by towering flames amid an active nighttime firefighting response"
      },
      "L34B02": {
        "bg_id": "L34B02",
        "loc_id": "L34",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "clean_after",
        "surface_role": "exterior_plate",
        "semantic_key": "L34|main|night|clean_after",
        "depends_on_fp": [],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S72_Shot1",
          "S72_Shot2"
        ],
        "sub_location_label": "전소된 뒤뜰 창고",
        "state_label_raw": "fully burned warehouse skeleton still emitting embers and black smoke after the blaze"
      },
      "L37B01": {
        "bg_id": "L37B01",
        "loc_id": "L37",
        "space_key": "main",
        "time_phase": "day",
        "state_class": "blood_scene",
        "surface_role": "interior_room",
        "semantic_key": "L37|main|day|blood_scene",
        "depends_on_fp": [
          "fp_slaughterhouse_interior"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S44_Shot1",
          "S44_Shot7",
          "S44_Shot11"
        ],
        "sub_location_label": "도축장 작업장 내부",
        "state_label_raw": "harsh midday light revealing bloodstained floor, walls, blades, and a fresh execution"
      },
      "L37B02": {
        "bg_id": "L37B02",
        "loc_id": "L37",
        "space_key": "main",
        "time_phase": "day",
        "state_class": "evidence_display",
        "surface_role": "interior_room",
        "semantic_key": "L37|main|day|evidence_display",
        "depends_on_fp": [
          "fp_slaughterhouse_interior"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S59_Shot7",
          "S59_Shot11",
          "S59_Shot12"
        ],
        "sub_location_label": "도축장 내부 창고 문과 포대자루 구역",
        "state_label_raw": "daylight exposes bloody sacks and dismembered human remains beside the dark storage corner"
      },
      "L37B03": {
        "bg_id": "L37B03",
        "loc_id": "L37",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "blood_scene",
        "surface_role": "interior_room",
        "semantic_key": "L37|main|night|blood_scene",
        "depends_on_fp": [
          "fp_slaughterhouse_interior"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S32_Shot12",
          "S32_Shot13",
          "S32_Shot17",
          "S77_Shot1",
          "S77_Shot10"
        ],
        "sub_location_label": "도축장 내부와 창고 쪽문 주변",
        "state_label_raw": "night slaughterhouse soaked with fresh blood, hanging tools, sacks, and active violence"
      },
      "L37B04": {
        "bg_id": "L37B04",
        "loc_id": "L37",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "intrusion",
        "surface_role": "interior_room",
        "semantic_key": "L37|main|night|intrusion",
        "depends_on_fp": [
          "fp_slaughterhouse_interior"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S108_Shot4",
          "S108_Shot8"
        ],
        "sub_location_label": "도축장 내부 창고 은신처와 천장",
        "state_label_raw": "dark storage corner under predatory intrusion, with dripping blood and a figure clinging to the ceiling"
      },
      "L39B01": {
        "bg_id": "L39B01",
        "loc_id": "L39",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "arrival",
        "surface_role": "site_surface",
        "semantic_key": "L39|main|night|arrival",
        "depends_on_fp": [],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S76_Shot3",
          "S76_Shot6"
        ],
        "sub_location_label": "도축장으로 이어지는 숲길",
        "state_label_raw": "moonlit empty forest path approaching the isolated goat slaughterhouse at night"
      },
      "L45B01": {
        "bg_id": "L45B01",
        "loc_id": "L45",
        "space_key": "main",
        "time_phase": "dusk",
        "state_class": "busy",
        "surface_role": "exterior_plate",
        "semantic_key": "L45|main|dusk|busy",
        "depends_on_fp": [
          "fp_l45_patrol_boat_deck"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S62_Shot6"
        ],
        "sub_location_label": "두 선박이 맞닿은 순찰정 측면 갑판",
        "state_label_raw": "dusk deck with a fishing boat alongside and a corpse being transferred across the gap"
      },
      "L45B02": {
        "bg_id": "L45B02",
        "loc_id": "L45",
        "space_key": "main",
        "time_phase": "dusk",
        "state_class": "ransacked",
        "surface_role": "exterior_plate",
        "semantic_key": "L45|main|dusk|ransacked",
        "depends_on_fp": [
          "fp_l45_patrol_boat_deck"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S62_Shot4"
        ],
        "sub_location_label": "경찰 순찰정 갑판 시체 수색 구역",
        "state_label_raw": "dusk patrol boat deck during the looting of a corpse and theft of personal effects"
      },
      "L45B03": {
        "bg_id": "L45B03",
        "loc_id": "L45",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "arrival",
        "surface_role": "exterior_plate",
        "semantic_key": "L45|main|night|arrival",
        "depends_on_fp": [
          "fp_l45_patrol_boat_deck"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S88_Shot4"
        ],
        "sub_location_label": "순찰정에서 바라본 금월도 선착장 접근 방향",
        "state_label_raw": "night patrol boat approaching Geumwoldo, revealing hostile villagers gathered on the dock"
      },
      "L45B04": {
        "bg_id": "L45B04",
        "loc_id": "L45",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "intrusion",
        "surface_role": "exterior_plate",
        "semantic_key": "L45|main|night|intrusion",
        "depends_on_fp": [
          "fp_l45_patrol_boat_deck"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S87_Shot26",
          "S87_Shot34",
          "S88_Shot8"
        ],
        "sub_location_label": "선수-선미 연결 갑판과 난간",
        "state_label_raw": "night deck under violent takeover, with a transformed attacker at the rail and an armed hijacker aboard"
      },
      "L45B05": {
        "bg_id": "L45B05",
        "loc_id": "L45",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "quiet",
        "surface_role": "exterior_plate",
        "semantic_key": "L45|main|night|quiet",
        "depends_on_fp": [
          "fp_l45_patrol_boat_deck"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S62_Shot9",
          "S87_Shot41"
        ],
        "sub_location_label": "야간 순찰정 갑판과 선미 해상",
        "state_label_raw": "dark night patrol boat deck and surrounding sea in a lonely or grief-stricken lull"
      },
      "L49B01": {
        "bg_id": "L49B01",
        "loc_id": "L49",
        "space_key": "main",
        "time_phase": "day",
        "state_class": "blood_scene",
        "surface_role": "interior_room",
        "semantic_key": "L49|main|day|blood_scene",
        "depends_on_fp": [
          "fp_l49_gear_warehouse"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S80_Shot14"
        ],
        "sub_location_label": "경신 대기근 초가집 부엌 환영",
        "state_label_raw": "daylit historical kitchen vision with a blood-covered mother and child consuming a corpse"
      },
      "L49B02": {
        "bg_id": "L49B02",
        "loc_id": "L49",
        "space_key": "main",
        "time_phase": "day",
        "state_class": "dream_or_vision_state",
        "surface_role": "site_surface",
        "semantic_key": "L49|main|day|dream_or_vision_state",
        "depends_on_fp": [],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S80_Shot25"
        ],
        "sub_location_label": "과거 금월도 입구 환영",
        "state_label_raw": "daytime historical vision of newcomers disembarking as island natives welcome them at the shore"
      },
      "L49B03": {
        "bg_id": "L49B03",
        "loc_id": "L49",
        "space_key": "main",
        "time_phase": "day",
        "state_class": "quiet",
        "surface_role": "interior_room",
        "semantic_key": "L49|main|day|quiet",
        "depends_on_fp": [
          "fp_l49_gear_warehouse"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S84_Shot3",
          "S84_Shot6"
        ],
        "sub_location_label": "먼지 낀 창가와 어구 적재 구역",
        "state_label_raw": "dusty daytime warehouse hideout under tense watch, with a revolver prepared for defense"
      },
      "L49B04": {
        "bg_id": "L49B04",
        "loc_id": "L49",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "intrusion",
        "surface_role": "interior_room",
        "semantic_key": "L49|main|night|intrusion",
        "depends_on_fp": [
          "fp_l49_gear_warehouse"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S80_Shot6"
        ],
        "sub_location_label": "어망 더미와 은신 구석",
        "state_label_raw": "dark cluttered gear warehouse during an armed flashlight search, with bloodied fugitives hidden in nets"
      },
      "L49B05": {
        "bg_id": "L49B05",
        "loc_id": "L49",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "quiet",
        "surface_role": "interior_room",
        "semantic_key": "L49|main|night|quiet",
        "depends_on_fp": [
          "fp_l49_gear_warehouse"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S81_Shot9",
          "S81_Shot12",
          "S81_Shot13"
        ],
        "sub_location_label": "어구 창고 은신 구역",
        "state_label_raw": "dark hidden warehouse after the search, hushed as mother and daughter confront painful revelations"
      }
    },
    "shot_background_map": {
      "S2_Shot5": "L02B01",
      "S2_Shot1": "L02B02",
      "S3_Shot5": "L03B01",
      "S3_Shot13": "L03B01",
      "S3_Shot17": "L03B01",
      "S97_Shot1": "L03B01",
      "S97_Shot5": "L03B01",
      "S5_Shot8": "L06B01",
      "S5_Shot4": "L06B02",
      "S5_Shot1": "L06B03",
      "S10_Shot2": "L07B01",
      "S10_Shot5": "L07B01",
      "S6_Shot1": "L08B01",
      "S6_Shot5": "L08B01",
      "S6_Shot7": "L08B01",
      "S8_Shot2": "L08B01",
      "S8_Shot8": "L08B01",
      "S7_Shot2": "L09B01",
      "S7_Shot6": "L09B01",
      "S7_Shot9": "L09B01",
      "S12_Shot3": "L10B01",
      "S12_Shot9": "L10B01",
      "S12_Shot16": "L10B01",
      "S9_Shot2": "L10B02",
      "S9_Shot6": "L10B02",
      "S14_Shot2": "L11B01",
      "S14_Shot6": "L11B01",
      "S11_Shot3": "L11B02",
      "S11_Shot4": "L11B02",
      "S18_Shot1": "L13B01",
      "S18_Shot5": "L13B01",
      "S15_Shot4": "L13B02",
      "S15_Shot5": "L13B02",
      "S13_Shot3": "L13B03",
      "S13_Shot4": "L13B03",
      "S16_Shot1": "L14B01",
      "S16_Shot7": "L14B01",
      "S19_Shot11": "L16B01",
      "S54_Shot4": "L16B01",
      "S101_Shot1": "L16B02",
      "S101_Shot6": "L16B02",
      "S101_Shot15": "L16B02",
      "S54_Shot3": "L16B03",
      "S19_Shot3": "L16B04",
      "S19_Shot8": "L16B04",
      "S17_Shot3": "L16B05",
      "S17_Shot6": "L16B05",
      "S20_Shot2": "L19B01",
      "S20_Shot6": "L19B01",
      "S20_Shot9": "L19B01",
      "S55_Shot3": "L19B01",
      "S55_Shot4": "L19B01",
      "S55_Shot6": "L19B01",
      "S38_Shot3": "L19B02",
      "S38_Shot8": "L19B02",
      "S86_Shot5": "L19B03",
      "S86_Shot12": "L19B03",
      "S86_Shot14": "L19B03",
      "S93_Shot4": "L19B04",
      "S93_Shot8": "L19B04",
      "S61_Shot1": "L19B05",
      "S61_Shot11": "L19B05",
      "S61_Shot15": "L19B05",
      "S79_Shot1": "L19B06",
      "S79_Shot5": "L19B06",
      "S48_Shot1": "L20B01",
      "S48_Shot10": "L20B01",
      "S21_Shot11": "L20B02",
      "S21_Shot16": "L20B02",
      "S21_Shot19": "L20B02",
      "S83_Shot1": "L20B03",
      "S83_Shot3": "L20B03",
      "S90_Shot4": "L20B04",
      "S63_Shot17": "L20B05",
      "S63_Shot28": "L20B05",
      "S63_Shot30": "L20B05",
      "S24_Shot1": "L20B06",
      "S24_Shot3": "L20B06",
      "S36_Shot5": "L21B01",
      "S36_Shot7": "L21B01",
      "S50_Shot2": "L21B02",
      "S50_Shot3": "L21B02",
      "S92_Shot3": "L23B01",
      "S104_Shot4": "L23B02",
      "S104_Shot8": "L23B02",
      "S106_Shot2": "L23B03",
      "S65_Shot1": "L23B04",
      "S65_Shot4": "L23B05",
      "S70_Shot1": "L29B01",
      "S70_Shot4": "L29B01",
      "S25_Shot2": "L29B02",
      "S25_Shot4": "L29B02",
      "S96_Shot5": "L30B01",
      "S96_Shot7": "L30B01",
      "S98_Shot2": "L30B02",
      "S98_Shot9": "L30B02",
      "S102_Shot1": "L30B02",
      "S94_Shot2": "L30B03",
      "S94_Shot3": "L30B03",
      "S102_Shot20": "L30B04",
      "S102_Shot16": "L30B05",
      "S71_Shot13": "L30B06",
      "S71_Shot16": "L30B06",
      "S71_Shot8": "L30B07",
      "S51_Shot2": "L30B08",
      "S51_Shot6": "L30B08",
      "S75_Shot2": "L30B09",
      "S37_Shot3": "L31B01",
      "S37_Shot6": "L31B01",
      "S91_Shot1": "L31B02",
      "S26_Shot3": "L31B03",
      "S26_Shot5": "L31B03",
      "S28_Shot3": "L31B04",
      "S27_Shot3": "L32B01",
      "S27_Shot5": "L32B01",
      "S66_Shot1": "L34B01",
      "S72_Shot1": "L34B02",
      "S72_Shot2": "L34B02",
      "S44_Shot1": "L37B01",
      "S44_Shot7": "L37B01",
      "S44_Shot11": "L37B01",
      "S59_Shot7": "L37B02",
      "S59_Shot11": "L37B02",
      "S59_Shot12": "L37B02",
      "S32_Shot12": "L37B03",
      "S32_Shot13": "L37B03",
      "S32_Shot17": "L37B03",
      "S77_Shot1": "L37B03",
      "S77_Shot10": "L37B03",
      "S108_Shot4": "L37B04",
      "S108_Shot8": "L37B04",
      "S76_Shot3": "L39B01",
      "S76_Shot6": "L39B01",
      "S62_Shot6": "L45B01",
      "S62_Shot4": "L45B02",
      "S88_Shot4": "L45B03",
      "S87_Shot26": "L45B04",
      "S87_Shot34": "L45B04",
      "S88_Shot8": "L45B04",
      "S62_Shot9": "L45B05",
      "S87_Shot41": "L45B05",
      "S80_Shot14": "L49B01",
      "S80_Shot25": "L49B02",
      "S84_Shot3": "L49B03",
      "S84_Shot6": "L49B03",
      "S80_Shot6": "L49B04",
      "S81_Shot9": "L49B05",
      "S81_Shot12": "L49B05",
      "S81_Shot13": "L49B05"
    },
    "bg_catalog_hash": "cf2c953982cc86fe",
    "shot_binding_hash": "a703968dba7174ec",
    "diagnostics": {
      "w21b_surface_role_scope_filter": {
        "policy": "surface_role-aware background-first filter; interior_room remains floor-plan-bound; exterior/transition/site may be fp-less; transitive cascade depends_on_bg exact raw key.",
        "kept_floor_plans_count": 19,
        "kept_backgrounds_count": 75,
        "dropped_floor_plans_count": 11,
        "dropped_backgrounds_count": 0,
        "dropped_groups_count": 0,
        "dropped_floor_plans": [
          {
            "group_id": "bg_multifamily_residence",
            "fp_id": "fp_multifamily_alley_site",
            "loc_id": "L11",
            "is_indoor": false,
            "shot_count": 4,
            "referenced_by_kept_background": false,
            "reasons": [
              "no_kept_background_ref"
            ]
          },
          {
            "group_id": "bg_fishing_boat",
            "fp_id": "fp_l17_wheelhouse",
            "loc_id": "L17",
            "is_indoor": true,
            "shot_count": 0,
            "referenced_by_kept_background": false,
            "reasons": [
              "no_kept_background_ref"
            ]
          },
          {
            "group_id": "bg_restaurant_compound",
            "fp_id": "fp_l22_yeongran_room",
            "loc_id": "L22",
            "is_indoor": true,
            "shot_count": 0,
            "referenced_by_kept_background": false,
            "reasons": [
              "no_kept_background_ref"
            ]
          },
          {
            "group_id": "bg_restaurant_compound",
            "fp_id": "fp_l23_front_alley",
            "loc_id": "L23",
            "is_indoor": false,
            "shot_count": 6,
            "referenced_by_kept_background": false,
            "reasons": [
              "no_kept_background_ref"
            ]
          },
          {
            "group_id": "bg_restaurant_compound",
            "fp_id": "fp_l31_backyard",
            "loc_id": "L31",
            "is_indoor": false,
            "shot_count": 6,
            "referenced_by_kept_background": false,
            "reasons": [
              "no_kept_background_ref"
            ]
          },
          {
            "group_id": "bg_restaurant_compound",
            "fp_id": "fp_l33_ordinary_warehouse",
            "loc_id": "L33",
            "is_indoor": true,
            "shot_count": 0,
            "referenced_by_kept_background": false,
            "reasons": [
              "no_kept_background_ref"
            ]
          },
          {
            "group_id": "bg_restaurant_compound",
            "fp_id": "fp_l34_burned_warehouse",
            "loc_id": "L34",
            "is_indoor": false,
            "shot_count": 3,
            "referenced_by_kept_background": false,
            "reasons": [
              "no_kept_background_ref"
            ]
          },
          {
            "group_id": "bg_forest_slaughterhouse",
            "fp_id": "fp_slaughterhouse_exterior",
            "loc_id": "L36",
            "is_indoor": false,
            "shot_count": 0,
            "referenced_by_kept_background": false,
            "reasons": [
              "no_kept_background_ref"
            ]
          },
          {
            "group_id": "bg_forest_slaughterhouse",
            "fp_id": "fp_annex_warehouse",
            "loc_id": "L38",
            "is_indoor": true,
            "shot_count": 0,
            "referenced_by_kept_background": false,
            "reasons": [
              "no_kept_background_ref"
            ]
          },
          {
            "group_id": "bg_forest_slaughterhouse",
            "fp_id": "fp_forest_path",
            "loc_id": "L39",
            "is_indoor": false,
            "shot_count": 2,
            "referenced_by_kept_background": false,
            "reasons": [
              "no_kept_background_ref"
            ]
          },
          {
            "group_id": "bg_police_patrol_boat",
            "fp_id": "fp_l46_patrol_boat_wheelhouse",
            "loc_id": "L46",
            "is_indoor": true,
            "shot_count": 0,
            "referenced_by_kept_background": false,
            "reasons": [
              "no_kept_background_ref"
            ]
          }
        ],
        "dropped_backgrounds": [],
        "dropped_groups": []
      },
      "location_profile_pre_filter": {}
    }
  },
  "step_id": "background_master_plan",
  "run_id": "06d87ddc-a328-4446-b35a-72762796c127",
  "resolved_model": "gpt",
  "updated_at": "2026-07-28T12:43:27.862539+00:00",
  "project_config_snapshot": {}
}