{
  "status": "completed",
  "applicable_count": 1,
  "completed_count": 1,
  "failed_count": 0,
  "schema_version": 5,
  "config_hash": "40fe7dfee524cec3",
  "data": {
    "plans": {
      "bg_bus_depot_vehicles": {
        "status": "ok",
        "plan": {
          "group_id": "bg_bus_depot_vehicles",
          "rationale_summary": "차량별 상이한 좌석·통로·요금통 구조를 위해 평면을 분리하고, 1호차는 저녁 수색과 밤의 회수권 발견, 2호차는 헛수색 후 이탈 상태로 구분한다.",
          "floor_plans": [
            {
              "fp_id": "fp_bus_one_interior",
              "loc_id": "L01",
              "space_key_hint": "main",
              "sub_location": "bus_one_passenger_cabin",
              "scope": "Full cabin layout of bus one, including doors, aisle, seats, driver area, and chained farebox.",
              "depends_on_fp": []
            },
            {
              "fp_id": "fp_bus_two_interior",
              "loc_id": "L02",
              "space_key_hint": "main",
              "sub_location": "bus_two_passenger_cabin",
              "scope": "Full cabin layout of bus two, including doors, bare aisle, renewed seats, and empty farebox stand.",
              "depends_on_fp": []
            }
          ],
          "backgrounds": [
            {
              "loc_id": "L01",
              "space_key_hint": "main",
              "time_phase": "dusk",
              "state_class": "busy",
              "surface_role": "interior_room",
              "sub_location_label": "차고지의 낡은 시외버스 1호차 객실",
              "state_label_raw": "dusk active search around the chained farebox and worn passenger seats",
              "depends_on_fp": [
                "fp_bus_one_interior"
              ],
              "depends_on_bg": [],
              "applies_to_shots": [
                "S1_Shot7",
                "S1_Shot8",
                "S1_Shot9"
              ],
              "bg_id": "L01B01"
            },
            {
              "loc_id": "L02",
              "space_key_hint": "main",
              "time_phase": "dusk",
              "state_class": "busy_exit",
              "surface_role": "interior_room",
              "sub_location_label": "차고지의 시외버스 2호차 객실",
              "state_label_raw": "dusk fruitless search ending with a signal to leave and return to bus one",
              "depends_on_fp": [
                "fp_bus_two_interior"
              ],
              "depends_on_bg": [],
              "applies_to_shots": [
                "S2_Shot5",
                "S2_Shot7"
              ],
              "bg_id": "L02B01"
            },
            {
              "loc_id": "L01",
              "space_key_hint": "main",
              "time_phase": "night",
              "state_class": "evidence_display",
              "surface_role": "interior_room",
              "sub_location_label": "밤의 낡은 시외버스 1호차 객실",
              "state_label_raw": "night discovery and display of the rubber-banded used-ticket bundle beneath the seat",
              "depends_on_fp": [
                "fp_bus_one_interior"
              ],
              "depends_on_bg": [],
              "applies_to_shots": [
                "S3_Shot5",
                "S3_Shot9"
              ],
              "bg_id": "L01B02"
            }
          ],
          "gen_order": [
            "fp_bus_one_interior",
            "fp_bus_two_interior",
            "L01B01",
            "L02B01",
            "L01B02"
          ]
        }
      }
    },
    "background_catalog": {
      "L01B01": {
        "bg_id": "L01B01",
        "loc_id": "L01",
        "space_key": "main",
        "time_phase": "dusk",
        "state_class": "busy",
        "surface_role": "interior_room",
        "semantic_key": "L01|main|dusk|busy",
        "depends_on_fp": [
          "fp_bus_one_interior"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S1_Shot7",
          "S1_Shot8",
          "S1_Shot9"
        ],
        "sub_location_label": "차고지의 낡은 시외버스 1호차 객실",
        "state_label_raw": "dusk active search around the chained farebox and worn passenger seats"
      },
      "L01B02": {
        "bg_id": "L01B02",
        "loc_id": "L01",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "evidence_display",
        "surface_role": "interior_room",
        "semantic_key": "L01|main|night|evidence_display",
        "depends_on_fp": [
          "fp_bus_one_interior"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S3_Shot5",
          "S3_Shot9"
        ],
        "sub_location_label": "밤의 낡은 시외버스 1호차 객실",
        "state_label_raw": "night discovery and display of the rubber-banded used-ticket bundle beneath the seat"
      },
      "L02B01": {
        "bg_id": "L02B01",
        "loc_id": "L02",
        "space_key": "main",
        "time_phase": "dusk",
        "state_class": "busy_exit",
        "surface_role": "interior_room",
        "semantic_key": "L02|main|dusk|busy_exit",
        "depends_on_fp": [
          "fp_bus_two_interior"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S2_Shot5",
          "S2_Shot7"
        ],
        "sub_location_label": "차고지의 시외버스 2호차 객실",
        "state_label_raw": "dusk fruitless search ending with a signal to leave and return to bus one"
      }
    },
    "shot_background_map": {
      "S1_Shot7": "L01B01",
      "S1_Shot8": "L01B01",
      "S1_Shot9": "L01B01",
      "S3_Shot5": "L01B02",
      "S3_Shot9": "L01B02",
      "S2_Shot5": "L02B01",
      "S2_Shot7": "L02B01"
    },
    "bg_catalog_hash": "48aab13a1bbb186e",
    "shot_binding_hash": "2f35cce200bd24da",
    "diagnostics": {
      "w21b_surface_role_scope_filter": {
        "policy": "surface_role-aware background-first filter; interior_room remains floor-plan-bound; exterior/transition/site may be fp-less; transitive cascade depends_on_bg exact raw key.",
        "kept_floor_plans_count": 2,
        "kept_backgrounds_count": 3,
        "dropped_floor_plans_count": 0,
        "dropped_backgrounds_count": 0,
        "dropped_groups_count": 0,
        "dropped_floor_plans": [],
        "dropped_backgrounds": [],
        "dropped_groups": []
      },
      "location_profile_pre_filter": {}
    }
  },
  "step_id": "background_master_plan",
  "run_id": "a3856db1-cdc4-4901-8a20-fb2eff94bc86",
  "resolved_model": "gpt",
  "updated_at": "2026-08-29T07:23:19.403596+00:00",
  "project_config_snapshot": {}
}