{
  "status": "completed",
  "applicable_count": 5,
  "completed_count": 5,
  "failed_count": 0,
  "schema_version": 1,
  "config_hash": "e0ce5a21cab5c061",
  "data": {
    "plans": {
      "bg_forest_area": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_city_alley": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_rooftop_villa": {
        "status": "ok",
        "plan": {
          "backgrounds": [
            {
              "applies_to_shots": [
                "S4_Shot1"
              ],
              "bg_id": "bg_rooftop_outside_day_overcast_establishing",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_rooftop_outside"
              ],
              "loc_id": "L04",
              "state_label": "day_overcast_establishing",
              "sub_location": "rooftop_outside"
            },
            {
              "applies_to_shots": [
                "S10_Shot3",
                "S10_Shot7",
                "S10_Shot8"
              ],
              "bg_id": "bg_rooftop_outside_night_intrusion",
              "depends_on_bg": [
                "bg_rooftop_outside_day_overcast_establishing"
              ],
              "depends_on_fp": [
                "fp_rooftop_outside"
              ],
              "loc_id": "L04",
              "state_label": "night_intrusion",
              "sub_location": "rooftop_outside"
            },
            {
              "applies_to_shots": [
                "S17_Shot1",
                "S17_Shot3"
              ],
              "bg_id": "bg_rooftop_outside_dawn_lit_window_cat",
              "depends_on_bg": [
                "bg_rooftop_outside_night_intrusion"
              ],
              "depends_on_fp": [
                "fp_rooftop_outside"
              ],
              "loc_id": "L04",
              "state_label": "dawn_lit_window_cat",
              "sub_location": "rooftop_outside"
            },
            {
              "applies_to_shots": [
                "S11_Shot4",
                "S11_Shot6"
              ],
              "bg_id": "bg_courtyard_stairs_night_arrival_open_door",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_courtyard_stairs"
              ],
              "loc_id": "L06",
              "state_label": "night_arrival_open_door",
              "sub_location": "courtyard_stairs"
            },
            {
              "applies_to_shots": [
                "S13_Shot4",
                "S13_Shot5",
                "S13_Shot6"
              ],
              "bg_id": "bg_courtyard_stairs_night_police_sirens",
              "depends_on_bg": [
                "bg_courtyard_stairs_night_arrival_open_door"
              ],
              "depends_on_fp": [
                "fp_courtyard_stairs"
              ],
              "loc_id": "L06",
              "state_label": "night_police_sirens",
              "sub_location": "courtyard_stairs"
            },
            {
              "applies_to_shots": [
                "S5_Shot4",
                "S5_Shot9",
                "S5_Shot14"
              ],
              "bg_id": "bg_living_kitchen_day_normal_cooking_news",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_living_kitchen"
              ],
              "loc_id": "L07",
              "state_label": "day_normal_cooking_news",
              "sub_location": "living_kitchen"
            },
            {
              "applies_to_shots": [
                "S14_Shot2",
                "S14_Shot8"
              ],
              "bg_id": "bg_living_kitchen_night_clean_after_disappearance",
              "depends_on_bg": [
                "bg_living_kitchen_day_normal_cooking_news"
              ],
              "depends_on_fp": [
                "fp_living_kitchen"
              ],
              "loc_id": "L07",
              "state_label": "night_clean_after_disappearance",
              "sub_location": "living_kitchen"
            },
            {
              "applies_to_shots": [
                "S18_Shot15"
              ],
              "bg_id": "bg_living_kitchen_dawn_photo_illusion",
              "depends_on_bg": [
                "bg_living_kitchen_night_clean_after_disappearance"
              ],
              "depends_on_fp": [
                "fp_living_kitchen"
              ],
              "loc_id": "L07",
              "state_label": "dawn_photo_illusion",
              "sub_location": "living_kitchen"
            },
            {
              "applies_to_shots": [
                "S25_Shot2",
                "S25_Shot9"
              ],
              "bg_id": "bg_living_kitchen_dusk_ransacked_footprints_open_window",
              "depends_on_bg": [
                "bg_living_kitchen_dawn_photo_illusion"
              ],
              "depends_on_fp": [
                "fp_living_kitchen"
              ],
              "loc_id": "L07",
              "state_label": "dusk_ransacked_footprints_open_window",
              "sub_location": "living_kitchen"
            },
            {
              "applies_to_shots": [
                "S27_Shot1",
                "S27_Shot4"
              ],
              "bg_id": "bg_living_kitchen_dusk_ransacked_windy_door",
              "depends_on_bg": [
                "bg_living_kitchen_dusk_ransacked_footprints_open_window"
              ],
              "depends_on_fp": [
                "fp_living_kitchen"
              ],
              "loc_id": "L07",
              "state_label": "dusk_ransacked_windy_door",
              "sub_location": "living_kitchen"
            },
            {
              "applies_to_shots": [
                "S18_Shot2"
              ],
              "bg_id": "bg_main_bedroom_dawn_waiting_normal",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_main_bedroom"
              ],
              "loc_id": "L07",
              "state_label": "dawn_waiting_normal",
              "sub_location": "main_bedroom"
            },
            {
              "applies_to_shots": [
                "S12_Shot7",
                "S12_Shot10",
                "S12_Shot20"
              ],
              "bg_id": "bg_small_bedroom_night_blood_curtain_body_red_circle",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_small_bedroom"
              ],
              "loc_id": "L07",
              "state_label": "night_blood_curtain_body_red_circle",
              "sub_location": "small_bedroom"
            },
            {
              "applies_to_shots": [
                "S14_Shot6"
              ],
              "bg_id": "bg_small_bedroom_night_clean_after_disappearance_backpack_shifted",
              "depends_on_bg": [
                "bg_small_bedroom_night_blood_curtain_body_red_circle"
              ],
              "depends_on_fp": [
                "fp_small_bedroom"
              ],
              "loc_id": "L07",
              "state_label": "night_clean_after_disappearance_backpack_shifted",
              "sub_location": "small_bedroom"
            },
            {
              "applies_to_shots": [
                "S25_Shot5"
              ],
              "bg_id": "bg_small_bedroom_dusk_ransacked_red_circle_photo",
              "depends_on_bg": [
                "bg_small_bedroom_night_clean_after_disappearance_backpack_shifted"
              ],
              "depends_on_fp": [
                "fp_small_bedroom"
              ],
              "loc_id": "L07",
              "state_label": "dusk_ransacked_red_circle_photo",
              "sub_location": "small_bedroom"
            },
            {
              "applies_to_shots": [
                "S18_Shot12"
              ],
              "bg_id": "bg_bathroom_dawn_red_circle_mirror",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_bathroom"
              ],
              "loc_id": "L07",
              "state_label": "dawn_red_circle_mirror",
              "sub_location": "bathroom"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_rooftop_outside",
              "scope": "rooftop exterior with water tank, clothesline, platform, iron door",
              "sub_location": "rooftop_outside"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_courtyard_stairs",
              "scope": "villa yard, outer road, exterior stairs, rooftop approach",
              "sub_location": "courtyard_stairs"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_living_kitchen",
              "scope": "small living room with kitchenette, dining table, window, entry door",
              "sub_location": "living_kitchen"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_main_bedroom",
              "scope": "larger bedroom with bed used for overnight waiting",
              "sub_location": "main_bedroom"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_small_bedroom",
              "scope": "small bedroom with bed, curtain, backpack area, plain wall",
              "sub_location": "small_bedroom"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_bathroom",
              "scope": "compact bathroom with sink and mirror",
              "sub_location": "bathroom"
            }
          ],
          "gen_order": [
            "fp_rooftop_outside",
            "fp_courtyard_stairs",
            "fp_living_kitchen",
            "fp_main_bedroom",
            "fp_small_bedroom",
            "fp_bathroom",
            "bg_rooftop_outside_day_overcast_establishing",
            "bg_rooftop_outside_night_intrusion",
            "bg_rooftop_outside_dawn_lit_window_cat",
            "bg_courtyard_stairs_night_arrival_open_door",
            "bg_courtyard_stairs_night_police_sirens",
            "bg_living_kitchen_day_normal_cooking_news",
            "bg_living_kitchen_night_clean_after_disappearance",
            "bg_living_kitchen_dawn_photo_illusion",
            "bg_living_kitchen_dusk_ransacked_footprints_open_window",
            "bg_living_kitchen_dusk_ransacked_windy_door",
            "bg_main_bedroom_dawn_waiting_normal",
            "bg_small_bedroom_night_blood_curtain_body_red_circle",
            "bg_small_bedroom_night_clean_after_disappearance_backpack_shifted",
            "bg_small_bedroom_dusk_ransacked_red_circle_photo",
            "bg_bathroom_dawn_red_circle_mirror"
          ],
          "group_id": "bg_rooftop_villa",
          "rationale_summary": "Separate exterior routes and interior rooms; chained states track day/night, vanished blood/body, red circles, ransacking, and windy door."
        }
      },
      "bg_coastal_road": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_animal_shelter": {
        "status": "ok",
        "plan": {
          "backgrounds": [
            {
              "applies_to_shots": [
                "S7_Shot1",
                "S7_Shot4"
              ],
              "bg_id": "bg_kennel_aisle_day_vaccination",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_kennel_aisle"
              ],
              "loc_id": "L09",
              "state_label": "day_vaccination",
              "sub_location": "kennel_aisle"
            },
            {
              "applies_to_shots": [
                "S7_Shot8"
              ],
              "bg_id": "bg_grooming_wash_station_day_wet_soap",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_grooming_wash_station"
              ],
              "loc_id": "L09",
              "state_label": "day_wet_soap",
              "sub_location": "grooming_wash_station"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_kennel_aisle",
              "scope": "indoor shelter kennel aisle with metal dog cages",
              "sub_location": "kennel_aisle"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_grooming_wash_station",
              "scope": "shelter grooming and bathing station for dogs",
              "sub_location": "grooming_wash_station"
            }
          ],
          "gen_order": [
            "fp_kennel_aisle",
            "fp_grooming_wash_station",
            "bg_kennel_aisle_day_vaccination",
            "bg_grooming_wash_station_day_wet_soap"
          ],
          "group_id": "bg_animal_shelter",
          "rationale_summary": "Kennel/vaccination and wash/grooming are distinct work zones; both are daytime normal shelter states, with soap/wetness only for bath shot."
        }
      },
      "bg_food_stall_street": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_large_mart": {
        "status": "ok",
        "plan": {
          "backgrounds": [
            {
              "applies_to_shots": [
                "S8_Shot3",
                "S8_Shot5"
              ],
              "bg_id": "bg_sales_floor_dusk_staffed",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_sales_floor"
              ],
              "loc_id": "L11",
              "state_label": "dusk_staffed_normal",
              "sub_location": "sales_floor"
            },
            {
              "applies_to_shots": [
                "S19_Shot3"
              ],
              "bg_id": "bg_sales_floor_morning_sparse",
              "depends_on_bg": [
                "bg_sales_floor_dusk_staffed"
              ],
              "depends_on_fp": [
                "fp_sales_floor"
              ],
              "loc_id": "L11",
              "state_label": "morning_sparse_normal",
              "sub_location": "sales_floor"
            },
            {
              "applies_to_shots": [
                "S8_Shot6"
              ],
              "bg_id": "bg_exterior_entrance_wall_dusk_neon_auto_door",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_exterior_entrance_wall"
              ],
              "loc_id": "L12",
              "state_label": "dusk_neon_auto_door_phone",
              "sub_location": "exterior_entrance_wall"
            },
            {
              "applies_to_shots": [
                "S19_Shot7",
                "S19_Shot8"
              ],
              "bg_id": "bg_exterior_entrance_wall_morning_cctv_corner",
              "depends_on_bg": [
                "bg_exterior_entrance_wall_dusk_neon_auto_door"
              ],
              "depends_on_fp": [
                "fp_exterior_entrance_wall"
              ],
              "loc_id": "L12",
              "state_label": "morning_cctv_corner_phone",
              "sub_location": "exterior_entrance_wall"
            },
            {
              "applies_to_shots": [
                "S20_Shot2",
                "S20_Shot3"
              ],
              "bg_id": "bg_security_office_day_dark_cctv_monitor",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_security_office"
              ],
              "loc_id": "L13",
              "state_label": "day_dark_cctv_monitor",
              "sub_location": "security_office"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_sales_floor",
              "scope": "main retail aisles and product displays inside the mart",
              "sub_location": "sales_floor"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_exterior_entrance_wall",
              "scope": "automatic entrance doors, exterior wall corner, CCTV camera position",
              "sub_location": "exterior_entrance_wall"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_security_office",
              "scope": "security office with desks, monitors, and CCTV playback station",
              "sub_location": "security_office"
            }
          ],
          "gen_order": [
            "fp_sales_floor",
            "fp_exterior_entrance_wall",
            "fp_security_office",
            "bg_sales_floor_dusk_staffed",
            "bg_sales_floor_morning_sparse",
            "bg_exterior_entrance_wall_dusk_neon_auto_door",
            "bg_exterior_entrance_wall_morning_cctv_corner",
            "bg_security_office_day_dark_cctv_monitor"
          ],
          "group_id": "bg_large_mart",
          "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_Shot4",
                "S16_Shot6"
              ],
              "bg_id": "bg_office_night_duty",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_office"
              ],
              "loc_id": "L15",
              "state_label": "night_duty_desks_monitors",
              "sub_location": "office"
            },
            {
              "applies_to_shots": [
                "S21_Shot6",
                "S21_Shot7",
                "S21_Shot8"
              ],
              "bg_id": "bg_office_day_empty_crime_photos_gps_monitor",
              "depends_on_bg": [
                "bg_office_night_duty"
              ],
              "depends_on_fp": [
                "fp_office"
              ],
              "loc_id": "L15",
              "state_label": "day_empty_crime_photos_gps_monitor",
              "sub_location": "office"
            },
            {
              "applies_to_shots": [
                "S22_Shot2"
              ],
              "bg_id": "bg_exterior_day_bicycle_departure",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_exterior_entrance"
              ],
              "loc_id": "L16",
              "state_label": "day_bicycle_departure",
              "sub_location": "exterior_entrance"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_office",
              "scope": "detective office with desks, monitors, duty area, and corridor access",
              "sub_location": "office"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_exterior_entrance",
              "scope": "police station entrance, curbside road, and bicycle parking area",
              "sub_location": "exterior_entrance"
            }
          ],
          "gen_order": [
            "fp_office",
            "fp_exterior_entrance",
            "bg_office_night_duty",
            "bg_office_day_empty_crime_photos_gps_monitor",
            "bg_exterior_day_bicycle_departure"
          ],
          "group_id": "bg_police_station",
          "rationale_summary": "사무실과 외부 출입구가 분리되어 2개 평면. 사무실은 야간 당직 상태와 낮의 범죄사진·GPS 모니터 상태를 체인으로 구분."
        }
      },
      "bg_pc_room": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_foggy_dock": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_fishing_boat": {
        "status": "ok",
        "plan": {
          "backgrounds": [
            {
              "applies_to_shots": [
                "S28_Shot3",
                "S28_Shot8"
              ],
              "bg_id": "bg_boat_exterior_dusk_normal",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_boat_exterior"
              ],
              "loc_id": "L19",
              "state_label": "dusk_normal",
              "sub_location": "boat_exterior"
            },
            {
              "applies_to_shots": [
                "S30_Shot2"
              ],
              "bg_id": "bg_boat_exterior_dusk_fog_wall",
              "depends_on_bg": [
                "bg_boat_exterior_dusk_normal"
              ],
              "depends_on_fp": [
                "fp_boat_exterior"
              ],
              "loc_id": "L19",
              "state_label": "dusk_fog_wall",
              "sub_location": "boat_exterior"
            },
            {
              "applies_to_shots": [
                "S29_Shot3",
                "S29_Shot5",
                "S29_Shot7"
              ],
              "bg_id": "bg_wheelhouse_interior_dusk_dark_red_circle_marks",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_wheelhouse_interior"
              ],
              "loc_id": "L20",
              "state_label": "dusk_dark_red_circle_marks",
              "sub_location": "wheelhouse_interior"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_boat_exterior",
              "scope": "small fishing boat exterior deck, wheelhouse entry, surrounding sea",
              "sub_location": "boat_exterior"
            },
            {
              "depends_on_fp": [
                "fp_boat_exterior"
              ],
              "fp_id": "fp_wheelhouse_interior",
              "scope": "compact wheelhouse interior connected to exterior deck entrance",
              "sub_location": "wheelhouse_interior"
            }
          ],
          "gen_order": [
            "fp_boat_exterior",
            "fp_wheelhouse_interior",
            "bg_boat_exterior_dusk_normal",
            "bg_boat_exterior_dusk_fog_wall",
            "bg_wheelhouse_interior_dusk_dark_red_circle_marks"
          ],
          "group_id": "bg_fishing_boat",
          "rationale_summary": "Exterior deck/sea and wheelhouse interior need separate plans. Exterior changes from normal dusk deck to fog-wall approach; interior must preserve red circle marks."
        }
      },
      "bg_old_photo_restaurant_front": {
        "status": "prev_shot_only",
        "plan": null
      }
    }
  },
  "step_id": "background_master_plan",
  "run_id": "8827108b-5512-4650-b015-ec48f9a9d25b",
  "resolved_model": "gpt",
  "updated_at": "2026-05-05T11:11:14.997164+00:00",
  "project_config_snapshot": {}
}