{
  "status": "completed",
  "applicable_count": 5,
  "completed_count": 5,
  "failed_count": 0,
  "schema_version": 1,
  "config_hash": "e0ce5a21cab5c061",
  "data": {
    "plans": {
      "bg_forest_clearing": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_urban_alley": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_rooftop_unit": {
        "status": "ok",
        "plan": {
          "backgrounds": [
            {
              "applies_to_shots": [
                "S4_Shot1"
              ],
              "bg_id": "bg_rooftop_day_overcast_overview",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_rooftop_exterior"
              ],
              "loc_id": "L03",
              "state_label": "day_overcast_overview",
              "sub_location": "rooftop_exterior"
            },
            {
              "applies_to_shots": [
                "S10_Shot3",
                "S10_Shot5"
              ],
              "bg_id": "bg_rooftop_night_intrusion_door_flyer_window_shadow",
              "depends_on_bg": [
                "bg_rooftop_day_overcast_overview"
              ],
              "depends_on_fp": [
                "fp_rooftop_exterior"
              ],
              "loc_id": "L03",
              "state_label": "night_intrusion_door_flyer_window_shadow",
              "sub_location": "rooftop_exterior"
            },
            {
              "applies_to_shots": [
                "S17_Shot1"
              ],
              "bg_id": "bg_rooftop_dawn_lit_window_cat",
              "depends_on_bg": [
                "bg_rooftop_night_intrusion_door_flyer_window_shadow"
              ],
              "depends_on_fp": [
                "fp_rooftop_exterior"
              ],
              "loc_id": "L03",
              "state_label": "dawn_lit_window_cat",
              "sub_location": "rooftop_exterior"
            },
            {
              "applies_to_shots": [
                "S11_Shot3",
                "S11_Shot4"
              ],
              "bg_id": "bg_stair_courtyard_night_smell_half_open_door",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_stair_courtyard"
              ],
              "loc_id": "L10",
              "state_label": "night_smell_half_open_door",
              "sub_location": "stair_courtyard"
            },
            {
              "applies_to_shots": [
                "S13_Shot2",
                "S13_Shot5",
                "S13_Shot6"
              ],
              "bg_id": "bg_stair_courtyard_night_police_arrival",
              "depends_on_bg": [
                "bg_stair_courtyard_night_smell_half_open_door"
              ],
              "depends_on_fp": [
                "fp_stair_courtyard"
              ],
              "loc_id": "L10",
              "state_label": "night_police_arrival",
              "sub_location": "stair_courtyard"
            },
            {
              "applies_to_shots": [
                "S5_Shot2",
                "S5_Shot9",
                "S5_Shot10"
              ],
              "bg_id": "bg_living_day_normal_kitchenette_tv",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_living_room"
              ],
              "loc_id": "L04",
              "state_label": "day_normal_kitchenette_tv",
              "sub_location": "living_room"
            },
            {
              "applies_to_shots": [
                "S14_Shot10"
              ],
              "bg_id": "bg_living_night_clean_no_evidence",
              "depends_on_bg": [
                "bg_living_day_normal_kitchenette_tv"
              ],
              "depends_on_fp": [
                "fp_living_room"
              ],
              "loc_id": "L04",
              "state_label": "night_clean_no_evidence",
              "sub_location": "living_room"
            },
            {
              "applies_to_shots": [
                "S24_Shot8"
              ],
              "bg_id": "bg_living_dusk_ransacked_open_window",
              "depends_on_bg": [
                "bg_living_night_clean_no_evidence"
              ],
              "depends_on_fp": [
                "fp_living_room"
              ],
              "loc_id": "L04",
              "state_label": "dusk_ransacked_open_window",
              "sub_location": "living_room"
            },
            {
              "applies_to_shots": [
                "S26_Shot3",
                "S26_Shot4"
              ],
              "bg_id": "bg_living_dusk_ransacked_door_open",
              "depends_on_bg": [
                "bg_living_dusk_ransacked_open_window"
              ],
              "depends_on_fp": [
                "fp_living_room"
              ],
              "loc_id": "L04",
              "state_label": "dusk_ransacked_door_open",
              "sub_location": "living_room"
            },
            {
              "applies_to_shots": [
                "S12_Shot4",
                "S12_Shot6",
                "S12_Shot13"
              ],
              "bg_id": "bg_daughter_bedroom_night_blood_curtain_body",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_daughter_bedroom"
              ],
              "loc_id": "L04",
              "state_label": "night_blood_curtain_body",
              "sub_location": "daughter_bedroom"
            },
            {
              "applies_to_shots": [
                "S14_Shot6",
                "S14_Shot11"
              ],
              "bg_id": "bg_daughter_bedroom_night_clean_rearranged",
              "depends_on_bg": [
                "bg_daughter_bedroom_night_blood_curtain_body"
              ],
              "depends_on_fp": [
                "fp_daughter_bedroom"
              ],
              "loc_id": "L04",
              "state_label": "night_clean_rearranged",
              "sub_location": "daughter_bedroom"
            },
            {
              "applies_to_shots": [
                "S18_Shot6"
              ],
              "bg_id": "bg_daughter_bedroom_day_clean_empty",
              "depends_on_bg": [
                "bg_daughter_bedroom_night_clean_rearranged"
              ],
              "depends_on_fp": [
                "fp_daughter_bedroom"
              ],
              "loc_id": "L04",
              "state_label": "day_clean_empty",
              "sub_location": "daughter_bedroom"
            },
            {
              "applies_to_shots": [
                "S24_Shot2",
                "S24_Shot3"
              ],
              "bg_id": "bg_daughter_bedroom_dusk_ransacked_red_circle_photo",
              "depends_on_bg": [
                "bg_daughter_bedroom_day_clean_empty"
              ],
              "depends_on_fp": [
                "fp_daughter_bedroom"
              ],
              "loc_id": "L04",
              "state_label": "dusk_ransacked_red_circle_photo",
              "sub_location": "daughter_bedroom"
            },
            {
              "applies_to_shots": [
                "S18_Shot2"
              ],
              "bg_id": "bg_main_bedroom_day_waiting_empty",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_main_bedroom"
              ],
              "loc_id": "L04",
              "state_label": "day_waiting_empty",
              "sub_location": "main_bedroom"
            },
            {
              "applies_to_shots": [
                "S18_Shot11"
              ],
              "bg_id": "bg_bathroom_day_red_circle_reflection",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_bathroom"
              ],
              "loc_id": "L04",
              "state_label": "day_red_circle_reflection",
              "sub_location": "bathroom"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_rooftop_exterior",
              "scope": "old rooftop around rooftop unit, water tank, clothesline, metal door and window",
              "sub_location": "rooftop_exterior"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_stair_courtyard",
              "scope": "villa entrance, courtyard, exterior stairs, rooftop landing approach",
              "sub_location": "stair_courtyard"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_living_room",
              "scope": "small living room with kitchenette, dining table, TV, window, and front door area",
              "sub_location": "living_room"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_daughter_bedroom",
              "scope": "small bedroom with bed, curtain, wall, backpack and doll corner",
              "sub_location": "daughter_bedroom"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_main_bedroom",
              "scope": "main bedroom bed area used for overnight waiting",
              "sub_location": "main_bedroom"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_bathroom",
              "scope": "compact bathroom with mirror and visible wall surface",
              "sub_location": "bathroom"
            }
          ],
          "gen_order": [
            "fp_rooftop_exterior",
            "fp_stair_courtyard",
            "fp_living_room",
            "fp_daughter_bedroom",
            "fp_main_bedroom",
            "fp_bathroom",
            "bg_rooftop_day_overcast_overview",
            "bg_rooftop_night_intrusion_door_flyer_window_shadow",
            "bg_rooftop_dawn_lit_window_cat",
            "bg_stair_courtyard_night_smell_half_open_door",
            "bg_stair_courtyard_night_police_arrival",
            "bg_living_day_normal_kitchenette_tv",
            "bg_living_night_clean_no_evidence",
            "bg_living_dusk_ransacked_open_window",
            "bg_living_dusk_ransacked_door_open",
            "bg_daughter_bedroom_night_blood_curtain_body",
            "bg_daughter_bedroom_night_clean_rearranged",
            "bg_daughter_bedroom_day_clean_empty",
            "bg_daughter_bedroom_dusk_ransacked_red_circle_photo",
            "bg_main_bedroom_day_waiting_empty",
            "bg_bathroom_day_red_circle_reflection"
          ],
          "group_id": "bg_rooftop_unit",
          "rationale_summary": "Separate rooftop, stair/courtyard, and key interior rooms; states track intrusion, blood/curtain body, impossible clean reset, red-circle/photo, ransack, and open door."
        }
      },
      "bg_coastal_road": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_animal_shelter": {
        "status": "ok",
        "plan": {
          "backgrounds": [
            {
              "applies_to_shots": [
                "S7_Shot1",
                "S7_Shot2",
                "S7_Shot4"
              ],
              "bg_id": "bg_kennel_day_vaccination",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_kennel_area"
              ],
              "loc_id": "L06",
              "state_label": "day_vaccination",
              "sub_location": "kennel_area"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_kennel_area",
              "scope": "indoor animal shelter kennel and grooming treatment area",
              "sub_location": "kennel_area"
            }
          ],
          "gen_order": [
            "fp_kennel_area",
            "bg_kennel_day_vaccination"
          ],
          "group_id": "bg_animal_shelter",
          "rationale_summary": "Single indoor kennel/treatment space covers all closeups; daytime vaccination/grooming state preserves the scene action."
        }
      },
      "bg_downtown_street": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_large_store": {
        "status": "ok",
        "plan": {
          "backgrounds": [
            {
              "applies_to_shots": [
                "S8_Shot6"
              ],
              "bg_id": "bg_store_front_exterior_dusk_neon_phone",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_store_front_exterior"
              ],
              "loc_id": "L08",
              "state_label": "dusk_neon_phone_no_answer",
              "sub_location": "store_front_exterior"
            },
            {
              "applies_to_shots": [
                "S19_Shot6"
              ],
              "bg_id": "bg_store_front_exterior_morning_cctv_check",
              "depends_on_bg": [
                "bg_store_front_exterior_dusk_neon_phone"
              ],
              "depends_on_fp": [
                "fp_store_front_exterior"
              ],
              "loc_id": "L08",
              "state_label": "morning_cctv_check_phone",
              "sub_location": "store_front_exterior"
            },
            {
              "applies_to_shots": [
                "S8_Shot5"
              ],
              "bg_id": "bg_sales_floor_dusk_busy_staff",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_sales_floor"
              ],
              "loc_id": "L09",
              "state_label": "dusk_busy_staff_shelves",
              "sub_location": "sales_floor"
            },
            {
              "applies_to_shots": [
                "S19_Shot3"
              ],
              "bg_id": "bg_sales_floor_early_morning_sparse",
              "depends_on_bg": [
                "bg_sales_floor_dusk_busy_staff"
              ],
              "depends_on_fp": [
                "fp_sales_floor"
              ],
              "loc_id": "L09",
              "state_label": "early_morning_sparse_staff_shelves",
              "sub_location": "sales_floor"
            },
            {
              "applies_to_shots": [
                "S20_Shot1",
                "S20_Shot4"
              ],
              "bg_id": "bg_admin_office_day_cctv_dark_monitor",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_admin_office"
              ],
              "loc_id": "L13",
              "state_label": "day_cctv_dark_monitor_anxious",
              "sub_location": "admin_office"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_store_front_exterior",
              "scope": "store entrance exterior with curb, bike parking, and cctv coverage zone",
              "sub_location": "store_front_exterior"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_sales_floor",
              "scope": "main retail sales floor with aisles, shelves, and staff work area",
              "sub_location": "sales_floor"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_admin_office",
              "scope": "back office security desk with cctv monitors",
              "sub_location": "admin_office"
            }
          ],
          "gen_order": [
            "fp_store_front_exterior",
            "fp_sales_floor",
            "fp_admin_office",
            "bg_store_front_exterior_dusk_neon_phone",
            "bg_store_front_exterior_morning_cctv_check",
            "bg_sales_floor_dusk_busy_staff",
            "bg_sales_floor_early_morning_sparse",
            "bg_admin_office_day_cctv_dark_monitor"
          ],
          "group_id": "bg_large_store",
          "rationale_summary": "외부, 매장, 총무과가 시각적으로 분리되어 3개 평면. 시간 변화와 CCTV 확인, 어두운 모니터 화면을 상태로 구분."
        }
      },
      "bg_coastal_bus_stop": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_police_station": {
        "status": "ok",
        "plan": {
          "backgrounds": [
            {
              "applies_to_shots": [
                "S16_Shot3",
                "S16_Shot5"
              ],
              "bg_id": "bg_police_office_night_duty_normal",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_police_office"
              ],
              "loc_id": "L12",
              "state_label": "night_duty_normal",
              "sub_location": "police_office"
            },
            {
              "applies_to_shots": [
                "S21_Shot4",
                "S21_Shot5",
                "S21_Shot10"
              ],
              "bg_id": "bg_police_office_day_case_photos_empty",
              "depends_on_bg": [
                "bg_police_office_night_duty_normal"
              ],
              "depends_on_fp": [
                "fp_police_office"
              ],
              "loc_id": "L12",
              "state_label": "day_case_photos_empty",
              "sub_location": "police_office"
            },
            {
              "applies_to_shots": [
                "S22_Shot1"
              ],
              "bg_id": "bg_station_exterior_day_bike_departure",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_station_exterior"
              ],
              "loc_id": "L14",
              "state_label": "day_bike_departure",
              "sub_location": "station_exterior"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_police_office",
              "scope": "detective office with duty desk, shared desks, monitor area, and exit door",
              "sub_location": "police_office"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_station_exterior",
              "scope": "police station exterior approach with bicycle parking and departure path",
              "sub_location": "station_exterior"
            }
          ],
          "gen_order": [
            "fp_police_office",
            "fp_station_exterior",
            "bg_police_office_night_duty_normal",
            "bg_police_office_day_case_photos_empty",
            "bg_station_exterior_day_bike_departure"
          ],
          "group_id": "bg_police_station",
          "rationale_summary": "실내 사무실과 외부 자전거 출발 공간을 분리. 사무실은 밤 당직 상태와 낮 사건사진이 널린 빈 사무실 상태를 연쇄로 구분."
        }
      },
      "bg_pc_room": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_fishing_port": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_small_fishing_boat": {
        "status": "ok",
        "plan": {
          "backgrounds": [
            {
              "applies_to_shots": [
                "S27_Shot1",
                "S27_Shot3",
                "S27_Shot8"
              ],
              "bg_id": "bg_deck_dusk_normal",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_deck"
              ],
              "loc_id": "L17",
              "state_label": "dusk_normal",
              "sub_location": "deck"
            },
            {
              "applies_to_shots": [
                "S28_Shot3",
                "S28_Shot8"
              ],
              "bg_id": "bg_wheelhouse_dusk_normal",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_wheelhouse"
              ],
              "loc_id": "L18",
              "state_label": "dusk_normal",
              "sub_location": "wheelhouse"
            },
            {
              "applies_to_shots": [
                "S28_Shot5"
              ],
              "bg_id": "bg_wheelhouse_dusk_red_circle_vision",
              "depends_on_bg": [
                "bg_wheelhouse_dusk_normal"
              ],
              "depends_on_fp": [
                "fp_wheelhouse"
              ],
              "loc_id": "L18",
              "state_label": "dusk_red_circle_vision",
              "sub_location": "wheelhouse"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_deck",
              "scope": "small fishing boat open deck with wheelhouse entrance",
              "sub_location": "deck"
            },
            {
              "depends_on_fp": [
                "fp_deck"
              ],
              "fp_id": "fp_wheelhouse",
              "scope": "compact steering cabin aligned to deck entrance",
              "sub_location": "wheelhouse"
            }
          ],
          "gen_order": [
            "fp_deck",
            "fp_wheelhouse",
            "bg_deck_dusk_normal",
            "bg_wheelhouse_dusk_normal",
            "bg_wheelhouse_dusk_red_circle_vision"
          ],
          "group_id": "bg_small_fishing_boat",
          "rationale_summary": "갑판과 조타실은 별도 공간이라 2개 평면. 모두 해질 무렵이나 조타실 벽의 붉은 원 환영은 플롯 핵심 상태로 분리."
        }
      },
      "bg_open_sea": {
        "status": "prev_shot_only",
        "plan": null
      }
    }
  },
  "step_id": "background_master_plan",
  "run_id": "2d6d6090-d6bd-49db-958a-0d343c69a251",
  "resolved_model": "gpt",
  "updated_at": "2026-04-30T14:30:26.217456+00:00"
}