{
  "status": "completed",
  "applicable_count": 5,
  "completed_count": 5,
  "failed_count": 0,
  "schema_version": 1,
  "config_hash": "e0ce5a21cab5c061",
  "data": {
    "plans": {
      "bg_rooftop_unit": {
        "status": "ok",
        "plan": {
          "backgrounds": [
            {
              "applies_to_shots": [
                "S4_Shot1"
              ],
              "bg_id": "bg_rooftop_outside_day_normal",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_rooftop_outside"
              ],
              "loc_id": "L03",
              "state_label": "day_normal",
              "sub_location": "rooftop_outside"
            },
            {
              "applies_to_shots": [
                "S10_Shot3",
                "S10_Shot5",
                "S10_Shot6"
              ],
              "bg_id": "bg_rooftop_outside_night_intruder_door_ajar_shadow",
              "depends_on_bg": [
                "bg_rooftop_outside_day_normal"
              ],
              "depends_on_fp": [
                "fp_rooftop_outside"
              ],
              "loc_id": "L03",
              "state_label": "night_intruder_door_ajar_shadow",
              "sub_location": "rooftop_outside"
            },
            {
              "applies_to_shots": [
                "S17_Shot2"
              ],
              "bg_id": "bg_rooftop_outside_predawn_light_cat",
              "depends_on_bg": [
                "bg_rooftop_outside_night_intruder_door_ajar_shadow"
              ],
              "depends_on_fp": [
                "fp_rooftop_outside"
              ],
              "loc_id": "L03",
              "state_label": "predawn_light_cat",
              "sub_location": "rooftop_outside"
            },
            {
              "applies_to_shots": [
                "S11_Shot4",
                "S11_Shot5"
              ],
              "bg_id": "bg_villa_stairs_yard_night_arrival_odor_door_ajar",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_villa_stairs_yard"
              ],
              "loc_id": "L11",
              "state_label": "night_arrival_odor_door_ajar",
              "sub_location": "villa_stairs_yard"
            },
            {
              "applies_to_shots": [
                "S13_Shot2",
                "S13_Shot4",
                "S13_Shot6"
              ],
              "bg_id": "bg_villa_stairs_yard_night_police_siren",
              "depends_on_bg": [
                "bg_villa_stairs_yard_night_arrival_odor_door_ajar"
              ],
              "depends_on_fp": [
                "fp_villa_stairs_yard"
              ],
              "loc_id": "L11",
              "state_label": "night_police_siren",
              "sub_location": "villa_stairs_yard"
            },
            {
              "applies_to_shots": [
                "S5_Shot2",
                "S5_Shot5",
                "S5_Shot9"
              ],
              "bg_id": "bg_living_kitchen_day_normal",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_living_kitchen"
              ],
              "loc_id": "L04",
              "state_label": "day_normal",
              "sub_location": "living_kitchen"
            },
            {
              "applies_to_shots": [
                "S14_Shot9"
              ],
              "bg_id": "bg_living_kitchen_night_impossibly_clean",
              "depends_on_bg": [
                "bg_living_kitchen_day_normal"
              ],
              "depends_on_fp": [
                "fp_living_kitchen"
              ],
              "loc_id": "L04",
              "state_label": "night_impossibly_clean",
              "sub_location": "living_kitchen"
            },
            {
              "applies_to_shots": [
                "S18_Shot16"
              ],
              "bg_id": "bg_living_kitchen_day_photo_hallucination",
              "depends_on_bg": [
                "bg_living_kitchen_night_impossibly_clean"
              ],
              "depends_on_fp": [
                "fp_living_kitchen"
              ],
              "loc_id": "L04",
              "state_label": "day_photo_hallucination",
              "sub_location": "living_kitchen"
            },
            {
              "applies_to_shots": [
                "S25_Shot3",
                "S27_Shot3"
              ],
              "bg_id": "bg_living_kitchen_dusk_ransacked",
              "depends_on_bg": [
                "bg_living_kitchen_day_photo_hallucination"
              ],
              "depends_on_fp": [
                "fp_living_kitchen"
              ],
              "loc_id": "L04",
              "state_label": "dusk_ransacked",
              "sub_location": "living_kitchen"
            },
            {
              "applies_to_shots": [
                "S12_Shot6",
                "S12_Shot13",
                "S12_Shot14"
              ],
              "bg_id": "bg_daughter_room_night_body_blood_curtain_red_circle",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_daughter_room"
              ],
              "loc_id": "L04",
              "state_label": "night_body_blood_curtain_red_circle",
              "sub_location": "daughter_room"
            },
            {
              "applies_to_shots": [
                "S14_Shot5"
              ],
              "bg_id": "bg_daughter_room_night_impossibly_clean_shifted_props",
              "depends_on_bg": [
                "bg_daughter_room_night_body_blood_curtain_red_circle"
              ],
              "depends_on_fp": [
                "fp_daughter_room"
              ],
              "loc_id": "L04",
              "state_label": "night_impossibly_clean_shifted_props",
              "sub_location": "daughter_room"
            },
            {
              "applies_to_shots": [
                "S25_Shot6",
                "S25_Shot8"
              ],
              "bg_id": "bg_daughter_room_dusk_red_circle_bloody_photo",
              "depends_on_bg": [
                "bg_daughter_room_night_impossibly_clean_shifted_props"
              ],
              "depends_on_fp": [
                "fp_daughter_room"
              ],
              "loc_id": "L04",
              "state_label": "dusk_red_circle_bloody_photo",
              "sub_location": "daughter_room"
            },
            {
              "applies_to_shots": [
                "S14_Shot1"
              ],
              "bg_id": "bg_entry_night_impossibly_clean",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_entry"
              ],
              "loc_id": "L04",
              "state_label": "night_impossibly_clean",
              "sub_location": "entry"
            },
            {
              "applies_to_shots": [
                "S27_Shot4"
              ],
              "bg_id": "bg_entry_dusk_windy_door_ajar",
              "depends_on_bg": [
                "bg_entry_night_impossibly_clean"
              ],
              "depends_on_fp": [
                "fp_entry"
              ],
              "loc_id": "L04",
              "state_label": "dusk_windy_door_ajar",
              "sub_location": "entry"
            },
            {
              "applies_to_shots": [
                "S18_Shot2"
              ],
              "bg_id": "bg_main_bedroom_day_waiting",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_main_bedroom"
              ],
              "loc_id": "L04",
              "state_label": "day_waiting",
              "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_outside",
              "scope": "rooftop exterior with water tank, laundry line, door, window, parapet",
              "sub_location": "rooftop_outside"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_villa_stairs_yard",
              "scope": "villa alley, yard, stair route, upper landing toward rooftop unit",
              "sub_location": "villa_stairs_yard"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_living_kitchen",
              "scope": "small living room and kitchenette with table, TV, window, sink",
              "sub_location": "living_kitchen"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_daughter_room",
              "scope": "small bedroom with bed, curtain, wall, backpack and personal props",
              "sub_location": "daughter_room"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_entry",
              "scope": "interior entry with old metal front door and view into clean living area",
              "sub_location": "entry"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_main_bedroom",
              "scope": "main bedroom with bed where daughter waits overnight",
              "sub_location": "main_bedroom"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_bathroom",
              "scope": "compact bathroom with mirror and tiled wall",
              "sub_location": "bathroom"
            }
          ],
          "gen_order": [
            "fp_rooftop_outside",
            "fp_villa_stairs_yard",
            "fp_living_kitchen",
            "fp_daughter_room",
            "fp_entry",
            "fp_main_bedroom",
            "fp_bathroom",
            "bg_rooftop_outside_day_normal",
            "bg_rooftop_outside_night_intruder_door_ajar_shadow",
            "bg_rooftop_outside_predawn_light_cat",
            "bg_villa_stairs_yard_night_arrival_odor_door_ajar",
            "bg_villa_stairs_yard_night_police_siren",
            "bg_living_kitchen_day_normal",
            "bg_living_kitchen_night_impossibly_clean",
            "bg_living_kitchen_day_photo_hallucination",
            "bg_living_kitchen_dusk_ransacked",
            "bg_daughter_room_night_body_blood_curtain_red_circle",
            "bg_daughter_room_night_impossibly_clean_shifted_props",
            "bg_daughter_room_dusk_red_circle_bloody_photo",
            "bg_entry_night_impossibly_clean",
            "bg_entry_dusk_windy_door_ajar",
            "bg_main_bedroom_day_waiting",
            "bg_bathroom_day_mirror_red_circle_hallucination"
          ],
          "group_id": "bg_rooftop_unit",
          "rationale_summary": "Separate rooftop, villa stairs, and key interior rooms; states track blood/curtain, red circles, impossible cleanup, ransack, hallucinations, and windy door."
        }
      },
      "bg_forest_site": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_urban_alley": {
        "status": "prev_shot_only",
        "plan": null
      },
      "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_area_day_damp",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_kennel_area"
              ],
              "loc_id": "L06",
              "state_label": "day_damp_kennel_row",
              "sub_location": "kennel_area"
            },
            {
              "applies_to_shots": [
                "S7_Shot7"
              ],
              "bg_id": "bg_grooming_area_day_normal",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_grooming_area"
              ],
              "loc_id": "L06",
              "state_label": "day_grooming_station",
              "sub_location": "grooming_area"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_kennel_area",
              "scope": "indoor shelter kennel aisle with wet floor and wire cages",
              "sub_location": "kennel_area"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_grooming_area",
              "scope": "indoor grooming and treatment station for bathing, clipping, ointment",
              "sub_location": "grooming_area"
            }
          ],
          "gen_order": [
            "fp_kennel_area",
            "fp_grooming_area",
            "bg_kennel_area_day_damp",
            "bg_grooming_area_day_normal"
          ],
          "group_id": "bg_animal_shelter",
          "rationale_summary": "Kennel shots share a damp cage-row layout; grooming is a distinct work area, so two floor plans and two day-state backgrounds."
        }
      },
      "bg_busy_street": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_large_store": {
        "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_outside_dusk_wet_neon",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_storefront_outside"
              ],
              "loc_id": "L09",
              "state_label": "dusk_wet_neon",
              "sub_location": "storefront_outside"
            },
            {
              "applies_to_shots": [
                "S19_Shot5",
                "S19_Shot7"
              ],
              "bg_id": "bg_storefront_outside_morning_cctv_corner",
              "depends_on_bg": [
                "bg_storefront_outside_dusk_wet_neon"
              ],
              "depends_on_fp": [
                "fp_storefront_outside"
              ],
              "loc_id": "L09",
              "state_label": "morning_cctv_corner",
              "sub_location": "storefront_outside"
            },
            {
              "applies_to_shots": [
                "S20_Shot1",
                "S20_Shot5"
              ],
              "bg_id": "bg_security_office_dark_cctv_monitor",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_security_office"
              ],
              "loc_id": "L10",
              "state_label": "dark_cctv_monitor",
              "sub_location": "security_office"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_store_aisle",
              "scope": "large supermarket sales aisle with display shelves",
              "sub_location": "store_aisle"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_storefront_outside",
              "scope": "supermarket exterior entrance and wall corner with CCTV",
              "sub_location": "storefront_outside"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_security_office",
              "scope": "small administrative security office with CCTV monitors",
              "sub_location": "security_office"
            }
          ],
          "gen_order": [
            "fp_store_aisle",
            "fp_storefront_outside",
            "fp_security_office",
            "bg_store_aisle_dusk_normal",
            "bg_storefront_outside_dusk_wet_neon",
            "bg_store_aisle_morning_quiet",
            "bg_storefront_outside_morning_cctv_corner",
            "bg_security_office_dark_cctv_monitor"
          ],
          "group_id": "bg_large_store",
          "rationale_summary": "Store aisle, exterior CCTV corner, and security office are distinct spaces. Dusk wet exterior, quiet morning, and dark monitor-lit room preserve plot states."
        }
      },
      "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_quiet",
              "sub_location": "office"
            },
            {
              "applies_to_shots": [
                "S21_Shot2",
                "S21_Shot9"
              ],
              "bg_id": "bg_office_day_forms_case_photos",
              "depends_on_bg": [
                "bg_office_night_duty"
              ],
              "depends_on_fp": [
                "fp_office"
              ],
              "loc_id": "L13",
              "state_label": "day_busy_forms_murder_photos_scattered",
              "sub_location": "office"
            },
            {
              "applies_to_shots": [
                "S21_Shot13"
              ],
              "bg_id": "bg_office_day_location_result_monitor",
              "depends_on_bg": [
                "bg_office_day_forms_case_photos"
              ],
              "depends_on_fp": [
                "fp_office"
              ],
              "loc_id": "L13",
              "state_label": "day_empty_location_result_on_monitor",
              "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_parking_departure",
              "sub_location": "building_front"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_office",
              "scope": "police office with desks, duty desk, paperwork, monitors, and case-photo area",
              "sub_location": "office"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_building_front",
              "scope": "police station exterior front approach with bicycle parking and street exit",
              "sub_location": "building_front"
            }
          ],
          "gen_order": [
            "fp_office",
            "fp_building_front",
            "bg_office_night_duty",
            "bg_office_day_forms_case_photos",
            "bg_office_day_location_result_monitor",
            "bg_building_front_day_bicycle_departure"
          ],
          "group_id": "bg_police_station",
          "rationale_summary": "사무실과 건물 앞은 분리 공간. 사무실은 밤 당직, 낮 서류·사진, 위치추적 모니터 표시로 플롯상 필요한 상태 변화를 체인화."
        }
      },
      "bg_pc_room": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_rocky_harbor": {
        "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_normal",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_deck"
              ],
              "loc_id": "L18",
              "state_label": "dusk_normal",
              "sub_location": "deck"
            },
            {
              "applies_to_shots": [
                "S29_Shot4",
                "S29_Shot7",
                "S29_Shot8"
              ],
              "bg_id": "bg_wheelhouse_dusk_red_circle_marked",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_wheelhouse"
              ],
              "loc_id": "L19",
              "state_label": "dusk_red_circle_marked",
              "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 wheelhouse interior connected to deck entrance",
              "sub_location": "wheelhouse"
            }
          ],
          "gen_order": [
            "fp_deck",
            "fp_wheelhouse",
            "bg_deck_dusk_normal",
            "bg_wheelhouse_dusk_red_circle_marked"
          ],
          "group_id": "bg_small_fishing_boat",
          "rationale_summary": "갑판과 조타실은 별도 공간이라 2개 평면. 모두 해질 무렵이며 조타실 벽의 붉은 원은 plot-critical 상태로 반영."
        }
      }
    }
  },
  "step_id": "background_master_plan",
  "run_id": "14d181f2-e3c5-4547-acbc-c0c1ef90be20",
  "resolved_model": "gpt",
  "updated_at": "2026-05-01T20:00:41.977719+00:00",
  "project_config_snapshot": {}
}