{
  "status": "completed",
  "applicable_count": 1,
  "completed_count": 1,
  "failed_count": 0,
  "schema_version": 5,
  "config_hash": "40fe7dfee524cec3",
  "data": {
    "plans": {
      "bg_forest_ridge": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_forest_valley": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_ruined_stadium": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_mountain_canyon": {
        "status": "prev_shot_only",
        "plan": null
      },
      "bg_mountain_outpost": {
        "status": "ok",
        "plan": {
          "group_id": "bg_mountain_outpost",
          "rationale_summary": "L10은 바위문과 드러난 지하 접촉소의 단일 전이 공간으로 계획하고, 무장 대면·포위 지도·권한 반응을 각각 arrival/evidence_display/intrusion 상태로 구분한다. 무샷 L11도 단일 평면을 유지한다.",
          "floor_plans": [
            {
              "fp_id": "fp_l10_rock_entrance",
              "loc_id": "L10",
              "space_key_hint": "main",
              "sub_location": "concealed_rock_entrance",
              "scope": "Rock-wall door, exterior approach, threshold, and revealed contact-room edge",
              "depends_on_fp": []
            }
          ],
          "backgrounds": [
            {
              "loc_id": "L10",
              "space_key_hint": "main",
              "time_phase": "dusk",
              "state_class": "arrival",
              "surface_role": "transition_zone",
              "sub_location_label": "완전히 열린 바위문과 지하실 입구 경계",
              "state_label_raw": "dusk arrival at opened concealed entrance with armed defender aiming outward",
              "depends_on_fp": [
                "fp_l10_rock_entrance"
              ],
              "depends_on_bg": [],
              "applies_to_shots": [
                "S7_Shot4"
              ],
              "bg_id": "L10B01"
            },
            {
              "loc_id": "L10",
              "space_key_hint": "main",
              "time_phase": "dusk",
              "state_class": "evidence_display",
              "surface_role": "transition_zone",
              "sub_location_label": "입구에서 보이는 접촉소 천장 지도",
              "state_label_raw": "ceiling map displaying dense red encirclement points across the forward mountain range",
              "depends_on_fp": [
                "fp_l10_rock_entrance"
              ],
              "depends_on_bg": [],
              "applies_to_shots": [
                "S7_Shot15"
              ],
              "bg_id": "L10B02"
            },
            {
              "loc_id": "L10",
              "space_key_hint": "main",
              "time_phase": "dusk",
              "state_class": "intrusion",
              "surface_role": "transition_zone",
              "sub_location_label": "바위문 안쪽 접촉소 입구",
              "state_label_raw": "tense unauthorized-authority reaction as Tony watches the phone vibrate inside its waterproof pouch",
              "depends_on_fp": [
                "fp_l10_rock_entrance"
              ],
              "depends_on_bg": [],
              "applies_to_shots": [
                "S7_Shot20"
              ],
              "bg_id": "L10B03"
            }
          ],
          "gen_order": [
            "fp_l10_rock_entrance",
            "L10B01",
            "L10B02",
            "L10B03"
          ]
        }
      }
    },
    "background_catalog": {
      "L10B01": {
        "bg_id": "L10B01",
        "loc_id": "L10",
        "space_key": "main",
        "time_phase": "dusk",
        "state_class": "arrival",
        "surface_role": "transition_zone",
        "semantic_key": "L10|main|dusk|arrival",
        "depends_on_fp": [
          "fp_l10_rock_entrance"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S7_Shot4"
        ],
        "sub_location_label": "완전히 열린 바위문과 지하실 입구 경계",
        "state_label_raw": "dusk arrival at opened concealed entrance with armed defender aiming outward"
      },
      "L10B02": {
        "bg_id": "L10B02",
        "loc_id": "L10",
        "space_key": "main",
        "time_phase": "dusk",
        "state_class": "evidence_display",
        "surface_role": "transition_zone",
        "semantic_key": "L10|main|dusk|evidence_display",
        "depends_on_fp": [
          "fp_l10_rock_entrance"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S7_Shot15"
        ],
        "sub_location_label": "입구에서 보이는 접촉소 천장 지도",
        "state_label_raw": "ceiling map displaying dense red encirclement points across the forward mountain range"
      },
      "L10B03": {
        "bg_id": "L10B03",
        "loc_id": "L10",
        "space_key": "main",
        "time_phase": "dusk",
        "state_class": "intrusion",
        "surface_role": "transition_zone",
        "semantic_key": "L10|main|dusk|intrusion",
        "depends_on_fp": [
          "fp_l10_rock_entrance"
        ],
        "depends_on_bg": [],
        "applies_to_shots": [
          "S7_Shot20"
        ],
        "sub_location_label": "바위문 안쪽 접촉소 입구",
        "state_label_raw": "tense unauthorized-authority reaction as Tony watches the phone vibrate inside its waterproof pouch"
      }
    },
    "shot_background_map": {
      "S7_Shot4": "L10B01",
      "S7_Shot15": "L10B02",
      "S7_Shot20": "L10B03"
    },
    "bg_catalog_hash": "4edb84b98cd3db15",
    "shot_binding_hash": "42cbc46b2974a8e8",
    "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": 3,
        "dropped_floor_plans_count": 1,
        "dropped_backgrounds_count": 0,
        "dropped_groups_count": 0,
        "dropped_floor_plans": [
          {
            "group_id": "bg_mountain_outpost",
            "fp_id": "fp_l11_basement_interior",
            "loc_id": "L11",
            "is_indoor": true,
            "shot_count": 0,
            "referenced_by_kept_background": false,
            "reasons": [
              "no_kept_background_ref"
            ]
          }
        ],
        "dropped_backgrounds": [],
        "dropped_groups": []
      },
      "location_profile_pre_filter": {}
    }
  },
  "step_id": "background_master_plan",
  "run_id": "8be7234b-04dc-4fd2-95dc-25971c9897e5",
  "resolved_model": "gpt",
  "updated_at": "2026-09-04T21:11:35.581256+00:00",
  "project_config_snapshot": {}
}