{
  "status": "completed",
  "applicable_count": 5,
  "completed_count": 5,
  "failed_count": 0,
  "schema_version": 1,
  "config_hash": "e0ce5a21cab5c061",
  "data": {
    "plans": {
      "bg_forest_site": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_city_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",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_rooftop_exterior"
              ],
              "loc_id": "L03",
              "state_label": "day_overcast",
              "sub_location": "rooftop_exterior"
            },
            {
              "applies_to_shots": [
                "S10_Shot3",
                "S10_Shot5",
                "S10_Shot6"
              ],
              "bg_id": "bg_rooftop_night_intrusion_shadow_open_door",
              "depends_on_bg": [
                "bg_rooftop_day_overcast"
              ],
              "depends_on_fp": [
                "fp_rooftop_exterior"
              ],
              "loc_id": "L03",
              "state_label": "night_intrusion_shadow_open_door",
              "sub_location": "rooftop_exterior"
            },
            {
              "applies_to_shots": [
                "S17_Shot2"
              ],
              "bg_id": "bg_rooftop_predawn_lit_cat",
              "depends_on_bg": [
                "bg_rooftop_night_intrusion_shadow_open_door"
              ],
              "depends_on_fp": [
                "fp_rooftop_exterior"
              ],
              "loc_id": "L03",
              "state_label": "predawn_lit_cat",
              "sub_location": "rooftop_exterior"
            },
            {
              "applies_to_shots": [
                "S11_Shot4",
                "S11_Shot5"
              ],
              "bg_id": "bg_stairs_night_arrival_foul_smell_open_door",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_villa_alley_stairs"
              ],
              "loc_id": "L11",
              "state_label": "night_arrival_foul_smell_open_door",
              "sub_location": "villa_alley_stairs"
            },
            {
              "applies_to_shots": [
                "S13_Shot2",
                "S13_Shot4",
                "S13_Shot6"
              ],
              "bg_id": "bg_stairs_night_police_siren",
              "depends_on_bg": [
                "bg_stairs_night_arrival_foul_smell_open_door"
              ],
              "depends_on_fp": [
                "fp_villa_alley_stairs"
              ],
              "loc_id": "L11",
              "state_label": "night_police_siren",
              "sub_location": "villa_alley_stairs"
            },
            {
              "applies_to_shots": [
                "S5_Shot2",
                "S5_Shot5",
                "S5_Shot9"
              ],
              "bg_id": "bg_living_day_normal_tv_herbs",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_living_kitchen_entry"
              ],
              "loc_id": "L04",
              "state_label": "day_normal_tv_herbs",
              "sub_location": "living_kitchen_entry"
            },
            {
              "applies_to_shots": [
                "S14_Shot1",
                "S14_Shot9"
              ],
              "bg_id": "bg_living_night_clean_after_disappearance",
              "depends_on_bg": [
                "bg_living_day_normal_tv_herbs"
              ],
              "depends_on_fp": [
                "fp_living_kitchen_entry"
              ],
              "loc_id": "L04",
              "state_label": "night_clean_after_disappearance",
              "sub_location": "living_kitchen_entry"
            },
            {
              "applies_to_shots": [
                "S18_Shot16"
              ],
              "bg_id": "bg_living_day_photo_face_hallucination",
              "depends_on_bg": [
                "bg_living_night_clean_after_disappearance"
              ],
              "depends_on_fp": [
                "fp_living_kitchen_entry"
              ],
              "loc_id": "L04",
              "state_label": "day_photo_face_hallucination",
              "sub_location": "living_kitchen_entry"
            },
            {
              "applies_to_shots": [
                "S25_Shot3"
              ],
              "bg_id": "bg_living_dusk_ransacked_open_window",
              "depends_on_bg": [
                "bg_living_day_photo_face_hallucination"
              ],
              "depends_on_fp": [
                "fp_living_kitchen_entry"
              ],
              "loc_id": "L04",
              "state_label": "dusk_ransacked_open_window",
              "sub_location": "living_kitchen_entry"
            },
            {
              "applies_to_shots": [
                "S27_Shot3",
                "S27_Shot4"
              ],
              "bg_id": "bg_living_dusk_desolate_wind_door",
              "depends_on_bg": [
                "bg_living_dusk_ransacked_open_window"
              ],
              "depends_on_fp": [
                "fp_living_kitchen_entry"
              ],
              "loc_id": "L04",
              "state_label": "dusk_desolate_wind_door",
              "sub_location": "living_kitchen_entry"
            },
            {
              "applies_to_shots": [
                "S12_Shot6",
                "S12_Shot13",
                "S12_Shot14"
              ],
              "bg_id": "bg_small_bedroom_night_blood_body_curtain_red_circle",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_small_bedroom"
              ],
              "loc_id": "L04",
              "state_label": "night_blood_body_curtain_red_circle",
              "sub_location": "small_bedroom"
            },
            {
              "applies_to_shots": [
                "S14_Shot5"
              ],
              "bg_id": "bg_small_bedroom_night_clean_reset",
              "depends_on_bg": [
                "bg_small_bedroom_night_blood_body_curtain_red_circle"
              ],
              "depends_on_fp": [
                "fp_small_bedroom"
              ],
              "loc_id": "L04",
              "state_label": "night_clean_reset",
              "sub_location": "small_bedroom"
            },
            {
              "applies_to_shots": [
                "S25_Shot6",
                "S25_Shot8"
              ],
              "bg_id": "bg_small_bedroom_dusk_ransacked_red_circle_bloody_photo",
              "depends_on_bg": [
                "bg_small_bedroom_night_clean_reset"
              ],
              "depends_on_fp": [
                "fp_small_bedroom"
              ],
              "loc_id": "L04",
              "state_label": "dusk_ransacked_red_circle_bloody_photo",
              "sub_location": "small_bedroom"
            },
            {
              "applies_to_shots": [
                "S18_Shot2"
              ],
              "bg_id": "bg_main_bedroom_dawn_waiting_normal",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_main_bedroom"
              ],
              "loc_id": "L04",
              "state_label": "dawn_waiting_normal",
              "sub_location": "main_bedroom"
            },
            {
              "applies_to_shots": [
                "S18_Shot11"
              ],
              "bg_id": "bg_bathroom_day_mirror_red_circle_hallucination",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_bathroom"
              ],
              "loc_id": "L04",
              "state_label": "day_mirror_red_circle_hallucination",
              "sub_location": "bathroom"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_rooftop_exterior",
              "scope": "old villa rooftop terrace with water tank clothesline metal door and window",
              "sub_location": "rooftop_exterior"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_villa_alley_stairs",
              "scope": "villa alley yard exterior stairs and rooftop landing access",
              "sub_location": "villa_alley_stairs"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_living_kitchen_entry",
              "scope": "compact rooftop unit living room with kitchenette dining table and entry",
              "sub_location": "living_kitchen_entry"
            },
            {
              "depends_on_fp": [
                "fp_living_kitchen_entry"
              ],
              "fp_id": "fp_small_bedroom",
              "scope": "small bedroom with bed wall window curtain backpack and doll area",
              "sub_location": "small_bedroom"
            },
            {
              "depends_on_fp": [
                "fp_living_kitchen_entry"
              ],
              "fp_id": "fp_main_bedroom",
              "scope": "main bedroom with bed used for overnight waiting",
              "sub_location": "main_bedroom"
            },
            {
              "depends_on_fp": [
                "fp_living_kitchen_entry"
              ],
              "fp_id": "fp_bathroom",
              "scope": "small bathroom with mirror and tiled wall",
              "sub_location": "bathroom"
            }
          ],
          "gen_order": [
            "fp_rooftop_exterior",
            "fp_villa_alley_stairs",
            "fp_living_kitchen_entry",
            "fp_small_bedroom",
            "fp_main_bedroom",
            "fp_bathroom",
            "bg_rooftop_day_overcast",
            "bg_rooftop_night_intrusion_shadow_open_door",
            "bg_rooftop_predawn_lit_cat",
            "bg_stairs_night_arrival_foul_smell_open_door",
            "bg_stairs_night_police_siren",
            "bg_living_day_normal_tv_herbs",
            "bg_living_night_clean_after_disappearance",
            "bg_living_day_photo_face_hallucination",
            "bg_living_dusk_ransacked_open_window",
            "bg_living_dusk_desolate_wind_door",
            "bg_small_bedroom_night_blood_body_curtain_red_circle",
            "bg_small_bedroom_night_clean_reset",
            "bg_small_bedroom_dusk_ransacked_red_circle_bloody_photo",
            "bg_main_bedroom_dawn_waiting_normal",
            "bg_bathroom_day_mirror_red_circle_hallucination"
          ],
          "group_id": "bg_rooftop_unit",
          "rationale_summary": "Separate plans for exterior, access stairs, and key interior rooms; states track blood scene, clean reset, red-circle visions, ransack, and wind-door continuity."
        }
      },
      "bg_coastal_road": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_animal_shelter": {
        "status": "ok",
        "plan": {
          "backgrounds": [
            {
              "applies_to_shots": [
                "S7_Shot1"
              ],
              "bg_id": "bg_kennel_day_wet_aggressive",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_kennel_area"
              ],
              "loc_id": "L06",
              "state_label": "day_wet_aggressive",
              "sub_location": "kennel_area"
            },
            {
              "applies_to_shots": [
                "S7_Shot4"
              ],
              "bg_id": "bg_kennel_day_vaccination_calm",
              "depends_on_bg": [
                "bg_kennel_day_wet_aggressive"
              ],
              "depends_on_fp": [
                "fp_kennel_area"
              ],
              "loc_id": "L06",
              "state_label": "day_vaccination_calm",
              "sub_location": "kennel_area"
            },
            {
              "applies_to_shots": [
                "S7_Shot7"
              ],
              "bg_id": "bg_grooming_day_cutting",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_grooming_area"
              ],
              "loc_id": "L06",
              "state_label": "day_cutting",
              "sub_location": "grooming_area"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_kennel_area",
              "scope": "wet indoor kennel aisle with wire cages and dog handling space",
              "sub_location": "kennel_area"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_grooming_area",
              "scope": "shelter grooming station with clipping table and wash supplies",
              "sub_location": "grooming_area"
            }
          ],
          "gen_order": [
            "fp_kennel_area",
            "fp_grooming_area",
            "bg_kennel_day_wet_aggressive",
            "bg_kennel_day_vaccination_calm",
            "bg_grooming_day_cutting"
          ],
          "group_id": "bg_animal_shelter",
          "rationale_summary": "Kennel shots need aggressive-to-calm vaccination chain; grooming is a separate functional area, so two floor plans and three day states."
        }
      },
      "bg_busy_street": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_large_market": {
        "status": "ok",
        "plan": {
          "backgrounds": [
            {
              "applies_to_shots": [
                "S8_Shot3"
              ],
              "bg_id": "bg_store_aisle_dusk_normal",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_store_aisle"
              ],
              "loc_id": "L08",
              "state_label": "dusk_normal",
              "sub_location": "store_aisle"
            },
            {
              "applies_to_shots": [
                "S19_Shot3"
              ],
              "bg_id": "bg_store_aisle_morning_quiet",
              "depends_on_bg": [
                "bg_store_aisle_dusk_normal"
              ],
              "depends_on_fp": [
                "fp_store_aisle"
              ],
              "loc_id": "L08",
              "state_label": "morning_quiet",
              "sub_location": "store_aisle"
            },
            {
              "applies_to_shots": [
                "S8_Shot5"
              ],
              "bg_id": "bg_storefront_exterior_dusk_wet_phone",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_storefront_exterior"
              ],
              "loc_id": "L08",
              "state_label": "dusk_wet_phone",
              "sub_location": "storefront_exterior"
            },
            {
              "applies_to_shots": [
                "S19_Shot5",
                "S19_Shot7"
              ],
              "bg_id": "bg_storefront_exterior_morning_cctv_check",
              "depends_on_bg": [
                "bg_storefront_exterior_dusk_wet_phone"
              ],
              "depends_on_fp": [
                "fp_storefront_exterior"
              ],
              "loc_id": "L08",
              "state_label": "morning_cctv_check",
              "sub_location": "storefront_exterior"
            },
            {
              "applies_to_shots": [
                "S20_Shot1",
                "S20_Shot5"
              ],
              "bg_id": "bg_security_office_day_dark_monitor",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_security_office"
              ],
              "loc_id": "L10",
              "state_label": "day_dark_monitor",
              "sub_location": "security_office"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_store_aisle",
              "scope": "large market interior aisles and employee interaction area",
              "sub_location": "store_aisle"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_storefront_exterior",
              "scope": "market entrance exterior, wall corner, bicycle area, and CCTV position",
              "sub_location": "storefront_exterior"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_security_office",
              "scope": "small security office with CCTV monitors and staff desk",
              "sub_location": "security_office"
            }
          ],
          "gen_order": [
            "fp_store_aisle",
            "fp_storefront_exterior",
            "fp_security_office",
            "bg_store_aisle_dusk_normal",
            "bg_store_aisle_morning_quiet",
            "bg_storefront_exterior_dusk_wet_phone",
            "bg_storefront_exterior_morning_cctv_check",
            "bg_security_office_day_dark_monitor"
          ],
          "group_id": "bg_large_market",
          "rationale_summary": "Interior aisle, exterior CCTV area, and security office need separate layouts. Dusk wet exterior, quiet morning, and dark monitor-lit CCTV room preserve plot continuity."
        }
      },
      "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_office_night_duty",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_office"
              ],
              "loc_id": "L13",
              "state_label": "night_duty",
              "sub_location": "office"
            },
            {
              "applies_to_shots": [
                "S21_Shot2"
              ],
              "bg_id": "bg_office_day_paperwork",
              "depends_on_bg": [
                "bg_office_night_duty"
              ],
              "depends_on_fp": [
                "fp_office"
              ],
              "loc_id": "L13",
              "state_label": "day_paperwork",
              "sub_location": "office"
            },
            {
              "applies_to_shots": [
                "S21_Shot9"
              ],
              "bg_id": "bg_office_day_empty_case_photos",
              "depends_on_bg": [
                "bg_office_day_paperwork"
              ],
              "depends_on_fp": [
                "fp_office"
              ],
              "loc_id": "L13",
              "state_label": "day_empty_case_photos",
              "sub_location": "office"
            },
            {
              "applies_to_shots": [
                "S21_Shot13"
              ],
              "bg_id": "bg_office_day_empty_monitor_result",
              "depends_on_bg": [
                "bg_office_day_empty_case_photos"
              ],
              "depends_on_fp": [
                "fp_office"
              ],
              "loc_id": "L13",
              "state_label": "day_empty_monitor_result",
              "sub_location": "office"
            },
            {
              "applies_to_shots": [
                "S22_Shot2"
              ],
              "bg_id": "bg_building_front_day_bicycle_departure",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_building_front"
              ],
              "loc_id": "L14",
              "state_label": "day_bicycle_departure",
              "sub_location": "building_front"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_office",
              "scope": "police office with detective desks, documents, monitor area",
              "sub_location": "office"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_building_front",
              "scope": "front exterior of police building with bicycle parking area",
              "sub_location": "building_front"
            }
          ],
          "gen_order": [
            "fp_office",
            "fp_building_front",
            "bg_office_night_duty",
            "bg_office_day_paperwork",
            "bg_office_day_empty_case_photos",
            "bg_office_day_empty_monitor_result",
            "bg_building_front_day_bicycle_departure"
          ],
          "group_id": "bg_police_station",
          "rationale_summary": "Two sub-locations: office and exterior front. Office states track night duty, daytime paperwork, exposed case photos, and monitor GPS result for plot continuity."
        }
      },
      "bg_pc_room": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_rocky_port": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_open_sea": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_small_fishing_boat": {
        "status": "ok",
        "plan": {
          "backgrounds": [
            {
              "applies_to_shots": [
                "S28_Shot4",
                "S28_Shot5",
                "S28_Shot10"
              ],
              "bg_id": "bg_deck_dusk_at_sea",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_deck"
              ],
              "loc_id": "L18",
              "state_label": "dusk_at_sea",
              "sub_location": "deck"
            },
            {
              "applies_to_shots": [
                "S29_Shot4"
              ],
              "bg_id": "bg_wheelhouse_dusk_normal",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_wheelhouse"
              ],
              "loc_id": "L19",
              "state_label": "dusk_normal",
              "sub_location": "wheelhouse"
            },
            {
              "applies_to_shots": [
                "S29_Shot7",
                "S29_Shot8"
              ],
              "bg_id": "bg_wheelhouse_dusk_red_circle_revealed",
              "depends_on_bg": [
                "bg_wheelhouse_dusk_normal"
              ],
              "depends_on_fp": [
                "fp_wheelhouse"
              ],
              "loc_id": "L19",
              "state_label": "dusk_red_circle_revealed",
              "sub_location": "wheelhouse"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_deck",
              "scope": "small fishing boat deck at sea with wheelhouse entrance",
              "sub_location": "deck"
            },
            {
              "depends_on_fp": [
                "fp_deck"
              ],
              "fp_id": "fp_wheelhouse",
              "scope": "compact wheelhouse interior tied to deck entrance",
              "sub_location": "wheelhouse"
            }
          ],
          "gen_order": [
            "fp_deck",
            "fp_wheelhouse",
            "bg_deck_dusk_at_sea",
            "bg_wheelhouse_dusk_normal",
            "bg_wheelhouse_dusk_red_circle_revealed"
          ],
          "group_id": "bg_small_fishing_boat",
          "rationale_summary": "Deck and wheelhouse are separate spaces. Wheelhouse has a later plot-critical red circle reveal, chained from the normal dusk interior."
        }
      }
    }
  },
  "step_id": "background_master_plan",
  "run_id": "f232a28c-3f1f-4424-a688-de537296ba0e",
  "resolved_model": "gpt",
  "updated_at": "2026-05-01T18:51:37.290013+00:00",
  "project_config_snapshot": {}
}