{
  "status": "completed",
  "applicable_count": 1,
  "completed_count": 1,
  "failed_count": 0,
  "schema_version": 5,
  "config_hash": "40fe7dfee524cec3",
  "data": {
    "plans": {
      "bg_bicycle_repair_shop": {
        "status": "ok",
        "plan": {
          "group_id": "bg_bicycle_repair_shop",
          "rationale_summary": "단일 공간 도면을 유지하고, 저녁의 평상 정비와 긴급 도착, 밤의 응급 돌봄과 순간 정전을 상태별로 구분한다.",
          "floor_plans": [
            {
              "fp_id": "fp_repair_shop_main",
              "loc_id": "L01",
              "space_key_hint": "main",
              "sub_location": "bicycle_repair_shop_interior",
              "scope": "Entire narrow repair shop with workbench, doorway, bicycle bay, and cleared floor area",
              "depends_on_fp": []
            }
          ],
          "backgrounds": [
            {
              "loc_id": "L01",
              "space_key_hint": "main",
              "time_phase": "dusk",
              "state_class": "normal",
              "surface_role": "interior_room",
              "sub_location_label": "좁은 자전거 정비소 작업 공간",
              "state_label_raw": "dusk normal repair setup with open toolbox and inverted old bicycle under fluorescent light",
              "depends_on_fp": [
                "fp_repair_shop_main"
              ],
              "depends_on_bg": [],
              "applies_to_shots": [
                "S1_Shot1"
              ],
              "bg_id": "L01B02"
            },
            {
              "loc_id": "L01",
              "space_key_hint": "main",
              "time_phase": "dusk",
              "state_class": "arrival",
              "surface_role": "interior_room",
              "sub_location_label": "정비소 출입문과 작업 공간",
              "state_label_raw": "urgent dusk arrival of rain-soaked Yeonhui holding a flashlight at the half-open door",
              "depends_on_fp": [
                "fp_repair_shop_main"
              ],
              "depends_on_bg": [],
              "applies_to_shots": [
                "S1_Shot2"
              ],
              "bg_id": "L01B01"
            },
            {
              "loc_id": "L01",
              "space_key_hint": "main",
              "time_phase": "night",
              "state_class": "busy",
              "surface_role": "interior_room",
              "sub_location_label": "작업대를 밀어 비운 정비소 바닥",
              "state_label_raw": "night emergency care setup with workbench pushed aside and an elderly man lying under a blanket",
              "depends_on_fp": [
                "fp_repair_shop_main"
              ],
              "depends_on_bg": [],
              "applies_to_shots": [
                "S3_Shot1"
              ],
              "bg_id": "L01B03"
            },
            {
              "loc_id": "L01",
              "space_key_hint": "main",
              "time_phase": "night",
              "state_class": "quiet",
              "surface_role": "interior_room",
              "sub_location_label": "순간 정전된 정비소 실내 전경",
              "state_label_raw": "night emergency scene suspended in a momentary fluorescent blackout, figures barely visible",
              "depends_on_fp": [
                "fp_repair_shop_main"
              ],
              "depends_on_bg": [],
              "applies_to_shots": [
                "S3_Shot5"
              ],
              "bg_id": "L01B04"
            }
          ],
          "gen_order": [
            "fp_repair_shop_main",
            "L01B02",
            "L01B01",
            "L01B03",
            "L01B04"
          ]
        }
      },
      "bg_wet_alley_intersection": {
        "status": "prev_shot_only",
        "plan": null
      }
    },
    "background_catalog": {
      "L01B01": {
        "bg_id": "L01B01",
        "loc_id": "L01",
        "space_key": "main",
        "time_phase": "dusk",
        "state_class": "arrival",
        "surface_role": "interior_room",
        "semantic_key": "L01|main|dusk|arrival",
        "depends_on_fp": [
          "fp_repair_shop_main"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S1_Shot2"
        ],
        "sub_location_label": "정비소 출입문과 작업 공간",
        "state_label_raw": "urgent dusk arrival of rain-soaked Yeonhui holding a flashlight at the half-open door"
      },
      "L01B02": {
        "bg_id": "L01B02",
        "loc_id": "L01",
        "space_key": "main",
        "time_phase": "dusk",
        "state_class": "normal",
        "surface_role": "interior_room",
        "semantic_key": "L01|main|dusk|normal",
        "depends_on_fp": [
          "fp_repair_shop_main"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S1_Shot1"
        ],
        "sub_location_label": "좁은 자전거 정비소 작업 공간",
        "state_label_raw": "dusk normal repair setup with open toolbox and inverted old bicycle under fluorescent light"
      },
      "L01B03": {
        "bg_id": "L01B03",
        "loc_id": "L01",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "busy",
        "surface_role": "interior_room",
        "semantic_key": "L01|main|night|busy",
        "depends_on_fp": [
          "fp_repair_shop_main"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S3_Shot1"
        ],
        "sub_location_label": "작업대를 밀어 비운 정비소 바닥",
        "state_label_raw": "night emergency care setup with workbench pushed aside and an elderly man lying under a blanket"
      },
      "L01B04": {
        "bg_id": "L01B04",
        "loc_id": "L01",
        "space_key": "main",
        "time_phase": "night",
        "state_class": "quiet",
        "surface_role": "interior_room",
        "semantic_key": "L01|main|night|quiet",
        "depends_on_fp": [
          "fp_repair_shop_main"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S3_Shot5"
        ],
        "sub_location_label": "순간 정전된 정비소 실내 전경",
        "state_label_raw": "night emergency scene suspended in a momentary fluorescent blackout, figures barely visible"
      }
    },
    "shot_background_map": {
      "S1_Shot2": "L01B01",
      "S1_Shot1": "L01B02",
      "S3_Shot1": "L01B03",
      "S3_Shot5": "L01B04"
    },
    "bg_catalog_hash": "6db58b28bee54994",
    "shot_binding_hash": "87e2f8dbb4025583",
    "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": 1,
        "kept_backgrounds_count": 4,
        "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": "f83c15b4-0f1f-4e2b-a9c6-d8747ccf1b8c",
  "resolved_model": "gpt",
  "updated_at": "2026-08-24T13:23:21.726035+00:00",
  "project_config_snapshot": {}
}