{
  "status": "completed",
  "applicable_count": 5,
  "completed_count": 5,
  "failed_count": 0,
  "schema_version": 1,
  "config_hash": "e0ce5a21cab5c061",
  "data": {
    "plans": {
      "bg_forest_path": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_city_alley": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_crime_scene_exterior": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_rooftop_unit": {
        "status": "ok",
        "plan": {
          "backgrounds": [
            {
              "applies_to_shots": [
                "S4_Shot1"
              ],
              "bg_id": "bg_rooftop_day_establishing",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_rooftop_exterior"
              ],
              "loc_id": "L04",
              "state_label": "day_establishing",
              "sub_location": "rooftop_exterior"
            },
            {
              "applies_to_shots": [
                "S10_Shot3",
                "S10_Shot8",
                "S10_Shot10"
              ],
              "bg_id": "bg_rooftop_night_intrusion",
              "depends_on_bg": [
                "bg_rooftop_day_establishing"
              ],
              "depends_on_fp": [
                "fp_rooftop_exterior"
              ],
              "loc_id": "L04",
              "state_label": "night_intrusion_iron_door",
              "sub_location": "rooftop_exterior"
            },
            {
              "applies_to_shots": [
                "S11_Shot4",
                "S11_Shot5",
                "S11_Shot6"
              ],
              "bg_id": "bg_rooftop_night_door_ajar_foul_smell",
              "depends_on_bg": [
                "bg_rooftop_night_intrusion"
              ],
              "depends_on_fp": [
                "fp_rooftop_exterior"
              ],
              "loc_id": "L04",
              "state_label": "night_door_ajar_foul_smell",
              "sub_location": "rooftop_exterior"
            },
            {
              "applies_to_shots": [
                "S17_Shot2"
              ],
              "bg_id": "bg_rooftop_dawn_lit_window_cat",
              "depends_on_bg": [
                "bg_rooftop_night_door_ajar_foul_smell"
              ],
              "depends_on_fp": [
                "fp_rooftop_exterior"
              ],
              "loc_id": "L04",
              "state_label": "dawn_lit_window_cat",
              "sub_location": "rooftop_exterior"
            },
            {
              "applies_to_shots": [
                "S5_Shot3",
                "S5_Shot11",
                "S5_Shot12"
              ],
              "bg_id": "bg_living_day_normal_cooking",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_main_living_area"
              ],
              "loc_id": "L05",
              "state_label": "day_normal_cooking",
              "sub_location": "main_living_area"
            },
            {
              "applies_to_shots": [
                "S14_Shot14"
              ],
              "bg_id": "bg_living_night_clean_reset",
              "depends_on_bg": [
                "bg_living_day_normal_cooking"
              ],
              "depends_on_fp": [
                "fp_main_living_area"
              ],
              "loc_id": "L13",
              "state_label": "night_clean_reset",
              "sub_location": "main_living_area"
            },
            {
              "applies_to_shots": [
                "S18_Shot18"
              ],
              "bg_id": "bg_living_dawn_clean_photo_hallucination",
              "depends_on_bg": [
                "bg_living_night_clean_reset"
              ],
              "depends_on_fp": [
                "fp_main_living_area"
              ],
              "loc_id": "L13",
              "state_label": "dawn_clean_photo_hallucination",
              "sub_location": "main_living_area"
            },
            {
              "applies_to_shots": [
                "S25_Shot2",
                "S27_Shot2",
                "S27_Shot3"
              ],
              "bg_id": "bg_living_dusk_ransacked_open_window",
              "depends_on_bg": [
                "bg_living_dawn_clean_photo_hallucination"
              ],
              "depends_on_fp": [
                "fp_main_living_area"
              ],
              "loc_id": "L20",
              "state_label": "dusk_ransacked_open_window",
              "sub_location": "main_living_area"
            },
            {
              "applies_to_shots": [
                "S12_Shot11",
                "S12_Shot13",
                "S12_Shot21"
              ],
              "bg_id": "bg_bedroom_night_blood_body_red_circle",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_small_bedroom"
              ],
              "loc_id": "L11",
              "state_label": "night_blood_body_red_circle",
              "sub_location": "small_bedroom"
            },
            {
              "applies_to_shots": [
                "S14_Shot5",
                "S14_Shot7"
              ],
              "bg_id": "bg_bedroom_night_clean_reset",
              "depends_on_bg": [
                "bg_bedroom_night_blood_body_red_circle"
              ],
              "depends_on_fp": [
                "fp_small_bedroom"
              ],
              "loc_id": "L13",
              "state_label": "night_clean_reset",
              "sub_location": "small_bedroom"
            },
            {
              "applies_to_shots": [
                "S25_Shot3",
                "S25_Shot5"
              ],
              "bg_id": "bg_bedroom_dusk_ransacked_red_circle_photo",
              "depends_on_bg": [
                "bg_bedroom_night_clean_reset"
              ],
              "depends_on_fp": [
                "fp_small_bedroom"
              ],
              "loc_id": "L20",
              "state_label": "dusk_ransacked_red_circle_photo",
              "sub_location": "small_bedroom"
            },
            {
              "applies_to_shots": [
                "S18_Shot2"
              ],
              "bg_id": "bg_main_bedroom_dawn_waiting_clean",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_main_bedroom"
              ],
              "loc_id": "L13",
              "state_label": "dawn_waiting_clean",
              "sub_location": "main_bedroom"
            },
            {
              "applies_to_shots": [
                "S18_Shot12"
              ],
              "bg_id": "bg_bathroom_dawn_red_circle_reflection",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_bathroom"
              ],
              "loc_id": "L13",
              "state_label": "dawn_red_circle_reflection",
              "sub_location": "bathroom"
            },
            {
              "applies_to_shots": [
                "S13_Shot5",
                "S13_Shot6",
                "S13_Shot7"
              ],
              "bg_id": "bg_villa_entrance_night_siren_arrival",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_villa_entrance_yard"
              ],
              "loc_id": "L12",
              "state_label": "night_siren_arrival",
              "sub_location": "villa_entrance_yard"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_rooftop_exterior",
              "scope": "flat rooftop with water tank, laundry line, iron door, small window",
              "sub_location": "rooftop_exterior"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_main_living_area",
              "scope": "compact entry, living table, kitchenette sink and stove",
              "sub_location": "main_living_area"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_small_bedroom",
              "scope": "small bedroom with bed, window curtain, wall mark area",
              "sub_location": "small_bedroom"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_main_bedroom",
              "scope": "main bedroom used as waiting space at dawn",
              "sub_location": "main_bedroom"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_bathroom",
              "scope": "small bathroom with mirror and visible rear wall",
              "sub_location": "bathroom"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_villa_entrance_yard",
              "scope": "villa entrance, yard, exterior stairs, street approach",
              "sub_location": "villa_entrance_yard"
            }
          ],
          "gen_order": [
            "fp_rooftop_exterior",
            "fp_main_living_area",
            "fp_small_bedroom",
            "fp_main_bedroom",
            "fp_bathroom",
            "fp_villa_entrance_yard",
            "bg_rooftop_day_establishing",
            "bg_rooftop_night_intrusion",
            "bg_rooftop_night_door_ajar_foul_smell",
            "bg_rooftop_dawn_lit_window_cat",
            "bg_living_day_normal_cooking",
            "bg_living_night_clean_reset",
            "bg_living_dawn_clean_photo_hallucination",
            "bg_living_dusk_ransacked_open_window",
            "bg_bedroom_night_blood_body_red_circle",
            "bg_bedroom_night_clean_reset",
            "bg_bedroom_dusk_ransacked_red_circle_photo",
            "bg_main_bedroom_dawn_waiting_clean",
            "bg_bathroom_dawn_red_circle_reflection",
            "bg_villa_entrance_night_siren_arrival"
          ],
          "group_id": "bg_rooftop_unit",
          "rationale_summary": "옥상, 생활공간, 침실, 안방, 욕실, 빌라 입구를 분리하고 피, 정돈, 난장판, 붉은 원, 문 열림 등 단서 상태를 체인으로 유지."
        }
      },
      "bg_coastal_road": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_animal_shelter": {
        "status": "ok",
        "plan": {
          "backgrounds": [
            {
              "applies_to_shots": [
                "S7_Shot1",
                "S7_Shot3"
              ],
              "bg_id": "bg_kennel_area_day_normal",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_kennel_area"
              ],
              "loc_id": "L07",
              "state_label": "day_normal",
              "sub_location": "kennel_area"
            },
            {
              "applies_to_shots": [
                "S7_Shot9"
              ],
              "bg_id": "bg_grooming_station_day_tools_ready",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_grooming_station"
              ],
              "loc_id": "L07",
              "state_label": "day_tools_ready",
              "sub_location": "grooming_station"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_kennel_area",
              "scope": "indoor shelter kennel aisle with barred dog pens",
              "sub_location": "kennel_area"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_grooming_station",
              "scope": "indoor shelter grooming station with table and tools",
              "sub_location": "grooming_station"
            }
          ],
          "gen_order": [
            "fp_kennel_area",
            "fp_grooming_station",
            "bg_kennel_area_day_normal",
            "bg_grooming_station_day_tools_ready"
          ],
          "group_id": "bg_animal_shelter",
          "rationale_summary": "Kennel shots share one daytime shelter pen background; grooming close-up needs a separate station plan/background with tools ready."
        }
      },
      "bg_commercial_street": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_supermarket": {
        "status": "ok",
        "plan": {
          "backgrounds": [
            {
              "applies_to_shots": [
                "S19_Shot4",
                "S19_Shot6"
              ],
              "bg_id": "bg_exterior_morning_normal",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_exterior"
              ],
              "loc_id": "L09",
              "state_label": "morning_normal",
              "sub_location": "supermarket_exterior"
            },
            {
              "applies_to_shots": [
                "S8_Shot4",
                "S8_Shot6",
                "S8_Shot8"
              ],
              "bg_id": "bg_sales_floor_dusk_normal",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_sales_floor"
              ],
              "loc_id": "L10",
              "state_label": "dusk_normal",
              "sub_location": "sales_floor"
            },
            {
              "applies_to_shots": [
                "S20_Shot1",
                "S20_Shot4"
              ],
              "bg_id": "bg_admin_office_dark_cctv_monitor",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_admin_office"
              ],
              "loc_id": "L16",
              "state_label": "dark_cctv_monitor",
              "sub_location": "admin_office"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_exterior",
              "scope": "supermarket entrance exterior, bike parking, street-facing wall",
              "sub_location": "supermarket_exterior"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_sales_floor",
              "scope": "large supermarket sales floor with aisles and employee display area",
              "sub_location": "sales_floor"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_admin_office",
              "scope": "small back office for security desk and CCTV monitors",
              "sub_location": "admin_office"
            }
          ],
          "gen_order": [
            "fp_exterior",
            "fp_sales_floor",
            "fp_admin_office",
            "bg_exterior_morning_normal",
            "bg_sales_floor_dusk_normal",
            "bg_admin_office_dark_cctv_monitor"
          ],
          "group_id": "bg_supermarket",
          "rationale_summary": "Three distinct areas need separate plans: exterior, sales floor, and CCTV office. Office state is dark with monitor glow for plot-critical footage review."
        }
      },
      "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": "L15",
              "state_label": "night_duty_normal",
              "sub_location": "police_office"
            },
            {
              "applies_to_shots": [
                "S21_Shot6",
                "S21_Shot7"
              ],
              "bg_id": "bg_police_office_day_case_photos_scattered",
              "depends_on_bg": [
                "bg_police_office_night_duty_normal"
              ],
              "depends_on_fp": [
                "fp_police_office"
              ],
              "loc_id": "L15",
              "state_label": "day_case_photos_scattered",
              "sub_location": "police_office"
            },
            {
              "applies_to_shots": [
                "S21_Shot8"
              ],
              "bg_id": "bg_police_office_day_location_result_on_monitor",
              "depends_on_bg": [
                "bg_police_office_day_case_photos_scattered"
              ],
              "depends_on_fp": [
                "fp_police_office"
              ],
              "loc_id": "L15",
              "state_label": "day_location_result_on_monitor",
              "sub_location": "police_office"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_police_office",
              "scope": "police station office with desks, duty area, computers, and case paperwork",
              "sub_location": "police_office"
            }
          ],
          "gen_order": [
            "fp_police_office",
            "bg_police_office_night_duty_normal",
            "bg_police_office_day_case_photos_scattered",
            "bg_police_office_day_location_result_on_monitor"
          ],
          "group_id": "bg_police_station",
          "rationale_summary": "One office floor plan; separate night duty, day desk with gruesome case photos, and monitor GPS result states for plot continuity."
        }
      },
      "bg_pc_room": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_old_photo_building_front": {
        "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": [
                "S28_Shot3",
                "S28_Shot5",
                "S28_Shot8"
              ],
              "bg_id": "bg_deck_dusk_normal",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_deck"
              ],
              "loc_id": "L23",
              "state_label": "dusk_normal",
              "sub_location": "deck"
            },
            {
              "applies_to_shots": [
                "S29_Shot3",
                "S29_Shot7",
                "S29_Shot10"
              ],
              "bg_id": "bg_wheelhouse_dusk_red_circle_markings",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_wheelhouse"
              ],
              "loc_id": "L24",
              "state_label": "dusk_red_circle_markings",
              "sub_location": "wheelhouse"
            },
            {
              "applies_to_shots": [
                "S30_Shot3"
              ],
              "bg_id": "bg_open_sea_dusk_golden_fog",
              "depends_on_bg": [],
              "depends_on_fp": [
                "fp_open_sea"
              ],
              "loc_id": "L25",
              "state_label": "dusk_golden_fog",
              "sub_location": "open_sea"
            }
          ],
          "floor_plans": [
            {
              "depends_on_fp": [],
              "fp_id": "fp_deck",
              "scope": "small fishing boat exterior deck and access to wheelhouse",
              "sub_location": "deck"
            },
            {
              "depends_on_fp": [
                "fp_deck"
              ],
              "fp_id": "fp_wheelhouse",
              "scope": "cramped wheelhouse interior connected to deck",
              "sub_location": "wheelhouse"
            },
            {
              "depends_on_fp": [],
              "fp_id": "fp_open_sea",
              "scope": "open water surrounding the small fishing boat and fog bank",
              "sub_location": "open_sea"
            }
          ],
          "gen_order": [
            "fp_deck",
            "fp_wheelhouse",
            "fp_open_sea",
            "bg_deck_dusk_normal",
            "bg_wheelhouse_dusk_red_circle_markings",
            "bg_open_sea_dusk_golden_fog"
          ],
          "group_id": "bg_small_fishing_boat",
          "rationale_summary": "갑판, 조타실, 바다를 별도 공간으로 분리. 조타실의 붉은 원 표식과 바다의 황금빛 안개는 장면 전환상 핵심 상태로 반영."
        }
      }
    }
  },
  "step_id": "background_master_plan",
  "run_id": "1e8dc836-866e-4eb1-9ee0-3dcb7a3f8870",
  "resolved_model": "gpt",
  "updated_at": "2026-04-30T23:55:31.119814+00:00"
}