{
  "status": "completed",
  "applicable_count": 10,
  "completed_count": 10,
  "failed_count": 0,
  "schema_version": 1,
  "config_hash": "57ffd732e4a9ea10",
  "data": {
    "per_location": {
      "fp_rooftop_exterior": {
        "fp_id": "fp_rooftop_exterior",
        "loc_id": "L04",
        "status": "ok",
        "rebased_background_catalog": {
          "L04B01": {
            "bg_id": "L04B01",
            "loc_id": "L04",
            "physical_space_id": "open_rooftop_deck",
            "space_label": "Open Rooftop Deck",
            "applies_to_shots": [
              "S10_Shot3",
              "S17_Shot2",
              "S4_Shot1"
            ],
            "depends_on_fp": [
              "fp_rooftop_exterior"
            ],
            "depends_on_bg": [],
            "member_old_bg_ids": [
              "L04B01",
              "L04B02",
              "L04B03"
            ]
          },
          "L04B03": {
            "bg_id": "L04B03",
            "loc_id": "L04",
            "physical_space_id": "rooftop_room_threshold",
            "space_label": "Rooftop Room Interior",
            "applies_to_shots": [
              "S10_Shot4"
            ],
            "depends_on_fp": [
              "fp_rooftop_exterior"
            ],
            "depends_on_bg": [],
            "member_old_bg_ids": [
              "L04B03"
            ]
          }
        },
        "rebased_shot_background_map": {
          "S10_Shot3": "L04B01",
          "S17_Shot2": "L04B01",
          "S4_Shot1": "L04B01",
          "S10_Shot4": "L04B03"
        },
        "physical_spaces": [
          {
            "physical_space_id": "open_rooftop_deck",
            "space_label": "Open Rooftop Deck",
            "member_shots": [
              "S17_Shot2",
              "S4_Shot1",
              "S10_Shot3"
            ],
            "establishing_view_prompt": "Clean establishing view of an old villa rooftop deck: a broad flat concrete roof enclosed by a low parapet, with the small rooftop room volume on one side showing its exterior wall, metal door and frosted window, a stair access enclosure at the corner, a large rooftop water tank, and fixed laundry-line posts across the open deck; neutral daylight, tidy architectural state, no people, no loose props, no story marks.",
            "reasoning": "The FP shows the deck as the exterior area around the rooftop room, and these shots are all outside on the rooftop/parapet or looking at the rooftop-room exterior/window rather than inside the room."
          },
          {
            "physical_space_id": "rooftop_room_threshold",
            "space_label": "Rooftop Room Interior",
            "member_shots": [
              "S10_Shot4"
            ],
            "establishing_view_prompt": "Clean establishing view inside the small rooftop room: a compact rectangular old room with plain worn plaster walls, a simple floor, an exterior metal door at the side leading to the roof deck, and a frosted window set into the wall; neutral clean lighting, empty of people and removable props, with no darkness, damage, marks, or story state.",
            "reasoning": "The FP separates the rooftop room/threshold from the surrounding deck, and S10_Shot4 places the camera inside the dark room beside the action, requiring a separate interior plate from the exterior rooftop shots."
          }
        ],
        "establishing_prompts_by_bg_id": {
          "L04B01": "Clean establishing view of an old villa rooftop deck: a broad flat concrete roof enclosed by a low parapet, with the small rooftop room volume on one side showing its exterior wall, metal door and frosted window, a stair access enclosure at the corner, a large rooftop water tank, and fixed laundry-line posts across the open deck; neutral daylight, tidy architectural state, no people, no loose props, no story marks.\nHard constraints: a clean ESTABLISHING background plate of this ONE space showing its structure and built/large furniture. NO people, NO story props, NO photographs/frames, NO drawn marks, NO blood, NO clutter, NO time-of-day drama — neutral even light. ONE continuous frame, NO split/diptych. Photorealistic.",
          "L04B03": "Clean establishing view inside the small rooftop room: a compact rectangular old room with plain worn plaster walls, a simple floor, an exterior metal door at the side leading to the roof deck, and a frosted window set into the wall; neutral clean lighting, empty of people and removable props, with no darkness, damage, marks, or story state.\nHard constraints: a clean ESTABLISHING background plate of this ONE space showing its structure and built/large furniture. NO people, NO story props, NO photographs/frames, NO drawn marks, NO blood, NO clutter, NO time-of-day drama — neutral even light. ONE continuous frame, NO split/diptych. Photorealistic."
        },
        "lineage_map": {
          "old_to_canonical": {
            "L04B03": "L04B01",
            "L04B01": "L04B01",
            "L04B02": "L04B01"
          },
          "by_canonical": {
            "L04B01": {
              "physical_space_id": "open_rooftop_deck",
              "space_label": "Open Rooftop Deck",
              "member_shots": [
                "S10_Shot3",
                "S17_Shot2",
                "S4_Shot1"
              ],
              "member_old_bg_ids": [
                "L04B01",
                "L04B02",
                "L04B03"
              ],
              "reason": "preserved_member_bg"
            },
            "L04B03": {
              "physical_space_id": "rooftop_room_threshold",
              "space_label": "Rooftop Room Interior",
              "member_shots": [
                "S10_Shot4"
              ],
              "member_old_bg_ids": [
                "L04B03"
              ],
              "reason": "preserved_member_bg"
            }
          },
          "canonical_selection_basis": "structural_member_count",
          "old_to_canonical_is_audit_only": true
        },
        "rebased_bg_catalog_hash": "315bbd892b6609e6",
        "rebased_shot_binding_hash": "0682f27ef75ec534",
        "sot_mode": "physical_space",
        "real_vlm_call": true,
        "real_vlm_call_count": 1
      },
      "fp_rooftop_room_interior": {
        "fp_id": "fp_rooftop_room_interior",
        "loc_id": "L05",
        "status": "ok",
        "rebased_background_catalog": {
          "L05B02": {
            "bg_id": "L05B02",
            "loc_id": "L05",
            "physical_space_id": "daughter_bedroom",
            "space_label": "Daughter’s Bedroom",
            "applies_to_shots": [
              "S12_Shot11",
              "S12_Shot14",
              "S12_Shot6",
              "S14_Shot4",
              "S14_Shot8",
              "S25_Shot4",
              "S25_Shot7",
              "S25_Shot9"
            ],
            "depends_on_fp": [
              "fp_rooftop_room_interior"
            ],
            "depends_on_bg": [],
            "member_old_bg_ids": [
              "L05B02",
              "L05B05",
              "L05B06"
            ]
          },
          "L05B01": {
            "bg_id": "L05B01",
            "loc_id": "L05",
            "physical_space_id": "entry_threshold",
            "space_label": "Entry Threshold",
            "applies_to_shots": [
              "S5_Shot8"
            ],
            "depends_on_fp": [
              "fp_rooftop_room_interior"
            ],
            "depends_on_bg": [],
            "member_old_bg_ids": [
              "L05B01"
            ]
          },
          "L05B03": {
            "bg_id": "L05B03",
            "loc_id": "L05",
            "physical_space_id": "living_dining",
            "space_label": "Living / Dining Room",
            "applies_to_shots": [
              "S18_Shot13",
              "S18_Shot15",
              "S27_Shot1"
            ],
            "depends_on_fp": [
              "fp_rooftop_room_interior"
            ],
            "depends_on_bg": [],
            "member_old_bg_ids": [
              "L05B02",
              "L05B03",
              "L05B04"
            ]
          },
          "L05B07": {
            "bg_id": "L05B07",
            "loc_id": "L05",
            "physical_space_id": "main_bedroom",
            "space_label": "Main Bedroom",
            "applies_to_shots": [
              "S18_Shot1"
            ],
            "depends_on_fp": [
              "fp_rooftop_room_interior"
            ],
            "depends_on_bg": [],
            "member_old_bg_ids": [
              "L05B03"
            ]
          },
          "L05B08": {
            "bg_id": "L05B08",
            "loc_id": "L05",
            "physical_space_id": "sink_alcove",
            "space_label": "Sink Alcove",
            "applies_to_shots": [
              "S5_Shot1"
            ],
            "depends_on_fp": [
              "fp_rooftop_room_interior"
            ],
            "depends_on_bg": [],
            "member_old_bg_ids": [
              "L05B01"
            ]
          }
        },
        "rebased_shot_background_map": {
          "S12_Shot11": "L05B02",
          "S12_Shot14": "L05B02",
          "S12_Shot6": "L05B02",
          "S14_Shot4": "L05B02",
          "S14_Shot8": "L05B02",
          "S25_Shot4": "L05B02",
          "S25_Shot7": "L05B02",
          "S25_Shot9": "L05B02",
          "S5_Shot8": "L05B01",
          "S18_Shot13": "L05B03",
          "S18_Shot15": "L05B03",
          "S27_Shot1": "L05B03",
          "S18_Shot1": "L05B07",
          "S5_Shot1": "L05B08"
        },
        "physical_spaces": [
          {
            "physical_space_id": "sink_alcove",
            "space_label": "Sink Alcove",
            "member_shots": [
              "S5_Shot1"
            ],
            "establishing_view_prompt": "Clean establishing background plate of the compact sink alcove in the rooftop apartment: a narrow pale kitchen niche with fixed counter, metal sink and faucet, built-in stovetop or hot plate area, simple backsplash, light walls, hard floor, and the opening/partition connecting back to the main living room. Neutral even lighting, tidy surfaces, no cookware, no food, no people, no story marks.",
            "reasoning": "S5_Shot1 is staged around Minsuk by the faucet and boiling-pot area, with the floor plan showing this as the separate sink alcove adjoining the living room."
          },
          {
            "physical_space_id": "entry_threshold",
            "space_label": "Entry Threshold",
            "member_shots": [
              "S5_Shot8"
            ],
            "establishing_view_prompt": "Clean establishing background plate of the small apartment entry threshold: front door, low entry recess/threshold, adjacent interior wall edges, simple flooring transition into the living area, and the cramped connection toward the dining/living room. Neutral clean lighting, no shoes, no bags, no people, no clutter.",
            "reasoning": "S5_Shot8 is a wrist insert with the apartment entryway blurred behind it during the shoe/doorway beat, matching the floor-plan entry zone at the bottom of the living space."
          },
          {
            "physical_space_id": "living_dining",
            "space_label": "Living / Dining Room",
            "member_shots": [
              "S27_Shot1",
              "S18_Shot15",
              "S18_Shot13"
            ],
            "establishing_view_prompt": "Clean establishing background plate of the main living-dining room: a small central open room with a square dining table and chairs, TV on a low stand along one wall, floor lamp, small window, plain walls, hard floor, and visible door openings toward the bedrooms, bathroom, sink alcove, and entry. Neutral tidy daylight, no people, no personal props, no damage, no marks.",
            "reasoning": "These shots are in the central living/dining area: S27 explicitly frames the ruined living room, while S18_Shot13 and S18_Shot15 occur at or near the dining table with the dining area behind Suryoung."
          },
          {
            "physical_space_id": "main_bedroom",
            "space_label": "Main Bedroom",
            "member_shots": [
              "S18_Shot1"
            ],
            "establishing_view_prompt": "Clean establishing background plate of the main bedroom: a modest enclosed bedroom with a bed against the wall, wardrobe or tall storage along one side, small bedside surface, simple door opening to the living room, plain walls, and hard floor. Neutral clean lighting, no people, no bedding disorder, no personal story props, no marks.",
            "reasoning": "S18_Shot1 occurs in the '안방' before Suryoung goes to check her own closed room, matching the floor-plan main bedroom rather than the daughter bedroom."
          },
          {
            "physical_space_id": "daughter_bedroom",
            "space_label": "Daughter’s Bedroom",
            "member_shots": [
              "S25_Shot4",
              "S25_Shot7",
              "S25_Shot9",
              "S12_Shot6",
              "S12_Shot11",
              "S12_Shot14",
              "S14_Shot4",
              "S14_Shot8"
            ],
            "establishing_view_prompt": "Clean establishing background plate of the daughter’s bedroom: a small enclosed room with a single bed along the right wall, window and curtain wall beside the bed, plain wall above the bed, open floor area, door to the living room, simple hard flooring, and modest fixed room structure. Neutral clean lighting, no people, no blood, no red circles, no photographs, no scattered objects, no backpack or doll.",
            "reasoning": "All these shots are identified in the raw text as Suryoung’s room and repeatedly use the same bed, curtain/window wall, floor, and wall-above-bed structure despite different story states such as body, blood, red circle, or a cleaned room."
          }
        ],
        "establishing_prompts_by_bg_id": {
          "L05B02": "Clean establishing background plate of the daughter’s bedroom: a small enclosed room with a single bed along the right wall, window and curtain wall beside the bed, plain wall above the bed, open floor area, door to the living room, simple hard flooring, and modest fixed room structure. Neutral clean lighting, no people, no blood, no red circles, no photographs, no scattered objects, no backpack or doll.\nHard constraints: a clean ESTABLISHING background plate of this ONE space showing its structure and built/large furniture. NO people, NO story props, NO photographs/frames, NO drawn marks, NO blood, NO clutter, NO time-of-day drama — neutral even light. ONE continuous frame, NO split/diptych. Photorealistic.",
          "L05B01": "Clean establishing background plate of the small apartment entry threshold: front door, low entry recess/threshold, adjacent interior wall edges, simple flooring transition into the living area, and the cramped connection toward the dining/living room. Neutral clean lighting, no shoes, no bags, no people, no clutter.\nHard constraints: a clean ESTABLISHING background plate of this ONE space showing its structure and built/large furniture. NO people, NO story props, NO photographs/frames, NO drawn marks, NO blood, NO clutter, NO time-of-day drama — neutral even light. ONE continuous frame, NO split/diptych. Photorealistic.",
          "L05B03": "Clean establishing background plate of the main living-dining room: a small central open room with a square dining table and chairs, TV on a low stand along one wall, floor lamp, small window, plain walls, hard floor, and visible door openings toward the bedrooms, bathroom, sink alcove, and entry. Neutral tidy daylight, no people, no personal props, no damage, no marks.\nHard constraints: a clean ESTABLISHING background plate of this ONE space showing its structure and built/large furniture. NO people, NO story props, NO photographs/frames, NO drawn marks, NO blood, NO clutter, NO time-of-day drama — neutral even light. ONE continuous frame, NO split/diptych. Photorealistic.",
          "L05B07": "Clean establishing background plate of the main bedroom: a modest enclosed bedroom with a bed against the wall, wardrobe or tall storage along one side, small bedside surface, simple door opening to the living room, plain walls, and hard floor. Neutral clean lighting, no people, no bedding disorder, no personal story props, no marks.\nHard constraints: a clean ESTABLISHING background plate of this ONE space showing its structure and built/large furniture. NO people, NO story props, NO photographs/frames, NO drawn marks, NO blood, NO clutter, NO time-of-day drama — neutral even light. ONE continuous frame, NO split/diptych. Photorealistic.",
          "L05B08": "Clean establishing background plate of the compact sink alcove in the rooftop apartment: a narrow pale kitchen niche with fixed counter, metal sink and faucet, built-in stovetop or hot plate area, simple backsplash, light walls, hard floor, and the opening/partition connecting back to the main living room. Neutral even lighting, tidy surfaces, no cookware, no food, no people, no story marks.\nHard constraints: a clean ESTABLISHING background plate of this ONE space showing its structure and built/large furniture. NO people, NO story props, NO photographs/frames, NO drawn marks, NO blood, NO clutter, NO time-of-day drama — neutral even light. ONE continuous frame, NO split/diptych. Photorealistic."
        },
        "lineage_map": {
          "old_to_canonical": {
            "L05B05": "L05B02",
            "L05B06": "L05B02",
            "L05B02": "L05B02",
            "L05B01": "L05B01",
            "L05B04": "L05B03",
            "L05B03": "L05B03"
          },
          "by_canonical": {
            "L05B02": {
              "physical_space_id": "daughter_bedroom",
              "space_label": "Daughter’s Bedroom",
              "member_shots": [
                "S12_Shot11",
                "S12_Shot14",
                "S12_Shot6",
                "S14_Shot4",
                "S14_Shot8",
                "S25_Shot4",
                "S25_Shot7",
                "S25_Shot9"
              ],
              "member_old_bg_ids": [
                "L05B02",
                "L05B05",
                "L05B06"
              ],
              "reason": "preserved_member_bg"
            },
            "L05B01": {
              "physical_space_id": "entry_threshold",
              "space_label": "Entry Threshold",
              "member_shots": [
                "S5_Shot8"
              ],
              "member_old_bg_ids": [
                "L05B01"
              ],
              "reason": "preserved_member_bg"
            },
            "L05B03": {
              "physical_space_id": "living_dining",
              "space_label": "Living / Dining Room",
              "member_shots": [
                "S18_Shot13",
                "S18_Shot15",
                "S27_Shot1"
              ],
              "member_old_bg_ids": [
                "L05B02",
                "L05B03",
                "L05B04"
              ],
              "reason": "preserved_member_bg"
            },
            "L05B07": {
              "physical_space_id": "main_bedroom",
              "space_label": "Main Bedroom",
              "member_shots": [
                "S18_Shot1"
              ],
              "member_old_bg_ids": [
                "L05B03"
              ],
              "reason": "new_physical_space_split"
            },
            "L05B08": {
              "physical_space_id": "sink_alcove",
              "space_label": "Sink Alcove",
              "member_shots": [
                "S5_Shot1"
              ],
              "member_old_bg_ids": [
                "L05B01"
              ],
              "reason": "new_physical_space_split"
            }
          },
          "canonical_selection_basis": "structural_member_count",
          "old_to_canonical_is_audit_only": true
        },
        "rebased_bg_catalog_hash": "59c57aadc4952d46",
        "rebased_shot_binding_hash": "42bbf88ec6d62473",
        "sot_mode": "physical_space",
        "real_vlm_call": true,
        "real_vlm_call_count": 1
      },
      "fp_connection_stairs": {
        "fp_id": "fp_connection_stairs",
        "loc_id": "L10",
        "status": "ok",
        "rebased_background_catalog": {
          "L10B01": {
            "bg_id": "L10B01",
            "loc_id": "L10",
            "physical_space_id": "exterior_stair_run",
            "space_label": "Exterior stair run",
            "applies_to_shots": [
              "S11_Shot2"
            ],
            "depends_on_fp": [
              "fp_connection_stairs"
            ],
            "depends_on_bg": [],
            "member_old_bg_ids": [
              "L10B01"
            ]
          },
          "L10B02": {
            "bg_id": "L10B02",
            "loc_id": "L10",
            "physical_space_id": "rooftop_entrance_landing",
            "space_label": "Rooftop entrance landing",
            "applies_to_shots": [
              "S11_Shot4"
            ],
            "depends_on_fp": [
              "fp_connection_stairs"
            ],
            "depends_on_bg": [],
            "member_old_bg_ids": [
              "L10B01"
            ]
          }
        },
        "rebased_shot_background_map": {
          "S11_Shot2": "L10B01",
          "S11_Shot4": "L10B02"
        },
        "physical_spaces": [
          {
            "physical_space_id": "exterior_stair_run",
            "space_label": "Exterior stair run",
            "member_shots": [
              "S11_Shot2"
            ],
            "establishing_view_prompt": "A narrow exterior rooftop stair run enclosed by plain side walls, with concrete or painted steps ascending toward a small landing, a simple metal handrail along the stair side, and the stairwell edges creating a tight vertical passage; clean neutral lighting, no people, no loose objects, no story marks.",
            "reasoning": "S11_Shot2 is explicitly filmed midway up the exterior stairs as she climbs toward the rooftop, matching the FP stairs zone rather than the landing by the door."
          },
          {
            "physical_space_id": "rooftop_entrance_landing",
            "space_label": "Rooftop entrance landing",
            "member_shots": [
              "S11_Shot4"
            ],
            "establishing_view_prompt": "A compact rooftop entrance landing at the top of an exterior stair run, bordered by low/plain exterior walls and connected to an old iron entrance door set into the rooftop room wall; the landing has a simple hard floor surface and the door is the dominant fixed feature, shown in a clean neutral state with no people, clutter, marks, or dramatic darkness.",
            "reasoning": "S11_Shot4 is on the rooftop facing the old iron entrance door after reaching the top, matching the FP landing zone adjacent to the stair run and door."
          }
        ],
        "establishing_prompts_by_bg_id": {
          "L10B01": "A narrow exterior rooftop stair run enclosed by plain side walls, with concrete or painted steps ascending toward a small landing, a simple metal handrail along the stair side, and the stairwell edges creating a tight vertical passage; clean neutral lighting, no people, no loose objects, no story marks.\nHard constraints: a clean ESTABLISHING background plate of this ONE space showing its structure and built/large furniture. NO people, NO story props, NO photographs/frames, NO drawn marks, NO blood, NO clutter, NO time-of-day drama — neutral even light. ONE continuous frame, NO split/diptych. Photorealistic.",
          "L10B02": "A compact rooftop entrance landing at the top of an exterior stair run, bordered by low/plain exterior walls and connected to an old iron entrance door set into the rooftop room wall; the landing has a simple hard floor surface and the door is the dominant fixed feature, shown in a clean neutral state with no people, clutter, marks, or dramatic darkness.\nHard constraints: a clean ESTABLISHING background plate of this ONE space showing its structure and built/large furniture. NO people, NO story props, NO photographs/frames, NO drawn marks, NO blood, NO clutter, NO time-of-day drama — neutral even light. ONE continuous frame, NO split/diptych. Photorealistic."
        },
        "lineage_map": {
          "old_to_canonical": {
            "L10B01": "L10B01"
          },
          "by_canonical": {
            "L10B01": {
              "physical_space_id": "exterior_stair_run",
              "space_label": "Exterior stair run",
              "member_shots": [
                "S11_Shot2"
              ],
              "member_old_bg_ids": [
                "L10B01"
              ],
              "reason": "preserved_member_bg"
            },
            "L10B02": {
              "physical_space_id": "rooftop_entrance_landing",
              "space_label": "Rooftop entrance landing",
              "member_shots": [
                "S11_Shot4"
              ],
              "member_old_bg_ids": [
                "L10B01"
              ],
              "reason": "new_physical_space_split"
            }
          },
          "canonical_selection_basis": "structural_member_count",
          "old_to_canonical_is_audit_only": true
        },
        "rebased_bg_catalog_hash": "79c0f7599f1db8a3",
        "rebased_shot_binding_hash": "99f3273898bfe957",
        "sot_mode": "physical_space",
        "real_vlm_call": true,
        "real_vlm_call_count": 1
      },
      "fp_roadside_below": {
        "fp_id": "fp_roadside_below",
        "loc_id": "L11",
        "status": "ok",
        "rebased_background_catalog": {
          "L11B01": {
            "bg_id": "L11B01",
            "loc_id": "L11",
            "physical_space_id": "open_roadside",
            "space_label": "Roadside outside building",
            "applies_to_shots": [
              "S13_Shot2",
              "S13_Shot4"
            ],
            "depends_on_fp": [
              "fp_roadside_below"
            ],
            "depends_on_bg": [],
            "member_old_bg_ids": [
              "L11B01"
            ]
          }
        },
        "rebased_shot_background_map": {
          "S13_Shot2": "L11B01",
          "S13_Shot4": "L11B01"
        },
        "physical_spaces": [
          {
            "physical_space_id": "open_roadside",
            "space_label": "Roadside outside building",
            "member_shots": [
              "S13_Shot2",
              "S13_Shot4"
            ],
            "establishing_view_prompt": "Clean exterior establishing view of the roadside directly outside the building frontage: a paved street and sidewalk along the front wall, low gate and entry forecourt, the building facade set back from the road, and the visible mouth of the rooftop stair access beyond the entry. Neutral clean lighting, clear architectural surfaces, no people, vehicles, siren effects, clutter, or story marks.",
            "reasoning": "Both shots occur immediately outside after 수리영 descends, with Shot2 explicitly placing the camera on the roadside facing her with the stair mouth and street behind, and Shot4 continuing the same roadside/frontage encounter with 혜수 without moving into a different bounded zone."
          }
        ],
        "establishing_prompts_by_bg_id": {
          "L11B01": "Clean exterior establishing view of the roadside directly outside the building frontage: a paved street and sidewalk along the front wall, low gate and entry forecourt, the building facade set back from the road, and the visible mouth of the rooftop stair access beyond the entry. Neutral clean lighting, clear architectural surfaces, no people, vehicles, siren effects, clutter, or story marks.\nHard constraints: a clean ESTABLISHING background plate of this ONE space showing its structure and built/large furniture. NO people, NO story props, NO photographs/frames, NO drawn marks, NO blood, NO clutter, NO time-of-day drama — neutral even light. ONE continuous frame, NO split/diptych. Photorealistic."
        },
        "lineage_map": {
          "old_to_canonical": {
            "L11B01": "L11B01"
          },
          "by_canonical": {
            "L11B01": {
              "physical_space_id": "open_roadside",
              "space_label": "Roadside outside building",
              "member_shots": [
                "S13_Shot2",
                "S13_Shot4"
              ],
              "member_old_bg_ids": [
                "L11B01"
              ],
              "reason": "preserved_member_bg"
            }
          },
          "canonical_selection_basis": "structural_member_count",
          "old_to_canonical_is_audit_only": true
        },
        "rebased_bg_catalog_hash": "04c9dbf331c8d514",
        "rebased_shot_binding_hash": "feacc1d259a684a8",
        "sot_mode": "physical_space",
        "real_vlm_call": true,
        "real_vlm_call_count": 1
      },
      "fp_l08_street_storefront": {
        "fp_id": "fp_l08_street_storefront",
        "loc_id": "L08",
        "status": "ok",
        "rebased_background_catalog": {
          "L08B03": {
            "bg_id": "L08B03",
            "loc_id": "L08",
            "physical_space_id": "cctv_wall_area",
            "space_label": "Exterior CCTV Wall Area",
            "applies_to_shots": [
              "S19_Shot4",
              "S19_Shot6"
            ],
            "depends_on_fp": [
              "fp_l08_street_storefront"
            ],
            "depends_on_bg": [],
            "member_old_bg_ids": [
              "L08B03"
            ]
          },
          "L08B01": {
            "bg_id": "L08B01",
            "loc_id": "L08",
            "physical_space_id": "mart_interior_aisle",
            "space_label": "Mart Interior Aisle",
            "applies_to_shots": [
              "S8_Shot4"
            ],
            "depends_on_fp": [
              "fp_l08_street_storefront"
            ],
            "depends_on_bg": [],
            "member_old_bg_ids": [
              "L08B01"
            ]
          },
          "L08B02": {
            "bg_id": "L08B02",
            "loc_id": "L08",
            "physical_space_id": "street_view_storefront_frontage",
            "space_label": "Street View of Mart Frontage",
            "applies_to_shots": [
              "S8_Shot5"
            ],
            "depends_on_fp": [
              "fp_l08_street_storefront"
            ],
            "depends_on_bg": [],
            "member_old_bg_ids": [
              "L08B02"
            ]
          }
        },
        "rebased_shot_background_map": {
          "S19_Shot4": "L08B03",
          "S19_Shot6": "L08B03",
          "S8_Shot4": "L08B01",
          "S8_Shot5": "L08B02"
        },
        "physical_spaces": [
          {
            "physical_space_id": "mart_interior_aisle",
            "space_label": "Mart Interior Aisle",
            "member_shots": [
              "S8_Shot4"
            ],
            "establishing_view_prompt": "Clean neutral supermarket interior aisle background plate: a straight mid-aisle corridor with tall stocked shelving units running along both sides, polished floor, overhead fluorescent ceiling lights, clear walking path, and organized generic merchandise on shelves; no people, no loose boxes, no story clutter, no dramatic lighting.",
            "reasoning": "S8_Shot4 is explicitly inside the mart in a continuous supermarket corridor with shelves on both sides, a separate interior space not shown as an exterior FP zone."
          },
          {
            "physical_space_id": "street_view_storefront_frontage",
            "space_label": "Street View of Mart Frontage",
            "member_shots": [
              "S8_Shot5"
            ],
            "establishing_view_prompt": "Clean wide exterior street-facing supermarket frontage background plate from across the street: pale storefront facade with glass sliding entrance doors and display windows, broad tiled sidewalk in front, curb edge and quiet street lane in the foreground, simple urban frontage geometry, neutral even lighting; no people, vehicles, bicycles, vendor activity, phone glow, or night drama.",
            "reasoning": "S8_Shot5 places the camera across the street looking toward Suriyeong on the dark sidewalk with the supermarket frontage and pavement filling the frame, matching the FP street/sidewalk/frontage exterior rather than the interior aisle."
          },
          {
            "physical_space_id": "cctv_wall_area",
            "space_label": "Exterior CCTV Wall Area",
            "member_shots": [
              "S19_Shot4",
              "S19_Shot6"
            ],
            "establishing_view_prompt": "Clean neutral exterior CCTV wall area background plate: the right-side supermarket exterior wall with a mounted CCTV camera high near the top, visible conduit piping and small wall utility box, adjacent edge of the storefront facade, and tiled sidewalk at the base; no people, pointing gesture, phone, investigation marks, or dramatic lighting.",
            "reasoning": "S19_Shot4 and S19_Shot6 occur outside the mart during the CCTV check, with the camera beside or in front of Suriyeong against the supermarket exterior/CCTV wall zone shown on the FP."
          }
        ],
        "establishing_prompts_by_bg_id": {
          "L08B03": "Clean neutral exterior CCTV wall area background plate: the right-side supermarket exterior wall with a mounted CCTV camera high near the top, visible conduit piping and small wall utility box, adjacent edge of the storefront facade, and tiled sidewalk at the base; no people, pointing gesture, phone, investigation marks, or dramatic lighting.\nHard constraints: a clean ESTABLISHING background plate of this ONE space showing its structure and built/large furniture. NO people, NO story props, NO photographs/frames, NO drawn marks, NO blood, NO clutter, NO time-of-day drama — neutral even light. ONE continuous frame, NO split/diptych. Photorealistic.",
          "L08B01": "Clean neutral supermarket interior aisle background plate: a straight mid-aisle corridor with tall stocked shelving units running along both sides, polished floor, overhead fluorescent ceiling lights, clear walking path, and organized generic merchandise on shelves; no people, no loose boxes, no story clutter, no dramatic lighting.\nHard constraints: a clean ESTABLISHING background plate of this ONE space showing its structure and built/large furniture. NO people, NO story props, NO photographs/frames, NO drawn marks, NO blood, NO clutter, NO time-of-day drama — neutral even light. ONE continuous frame, NO split/diptych. Photorealistic.",
          "L08B02": "Clean wide exterior street-facing supermarket frontage background plate from across the street: pale storefront facade with glass sliding entrance doors and display windows, broad tiled sidewalk in front, curb edge and quiet street lane in the foreground, simple urban frontage geometry, neutral even lighting; no people, vehicles, bicycles, vendor activity, phone glow, or night drama.\nHard constraints: a clean ESTABLISHING background plate of this ONE space showing its structure and built/large furniture. NO people, NO story props, NO photographs/frames, NO drawn marks, NO blood, NO clutter, NO time-of-day drama — neutral even light. ONE continuous frame, NO split/diptych. Photorealistic."
        },
        "lineage_map": {
          "old_to_canonical": {
            "L08B03": "L08B03",
            "L08B01": "L08B01",
            "L08B02": "L08B02"
          },
          "by_canonical": {
            "L08B03": {
              "physical_space_id": "cctv_wall_area",
              "space_label": "Exterior CCTV Wall Area",
              "member_shots": [
                "S19_Shot4",
                "S19_Shot6"
              ],
              "member_old_bg_ids": [
                "L08B03"
              ],
              "reason": "preserved_member_bg"
            },
            "L08B01": {
              "physical_space_id": "mart_interior_aisle",
              "space_label": "Mart Interior Aisle",
              "member_shots": [
                "S8_Shot4"
              ],
              "member_old_bg_ids": [
                "L08B01"
              ],
              "reason": "preserved_member_bg"
            },
            "L08B02": {
              "physical_space_id": "street_view_storefront_frontage",
              "space_label": "Street View of Mart Frontage",
              "member_shots": [
                "S8_Shot5"
              ],
              "member_old_bg_ids": [
                "L08B02"
              ],
              "reason": "preserved_member_bg"
            }
          },
          "canonical_selection_basis": "structural_member_count",
          "old_to_canonical_is_audit_only": true
        },
        "rebased_bg_catalog_hash": "72fa344c7c13f8ff",
        "rebased_shot_binding_hash": "c66c0d822ffe26b9",
        "sot_mode": "physical_space",
        "real_vlm_call": true,
        "real_vlm_call_count": 1
      },
      "fp_l15_admin_security_office": {
        "fp_id": "fp_l15_admin_security_office",
        "loc_id": "L15",
        "status": "ok",
        "rebased_background_catalog": {
          "L15B01": {
            "bg_id": "L15B01",
            "loc_id": "L15",
            "physical_space_id": "cctv_review_area",
            "space_label": "CCTV Review Area",
            "applies_to_shots": [
              "S20_Shot4"
            ],
            "depends_on_fp": [
              "fp_l15_admin_security_office"
            ],
            "depends_on_bg": [],
            "member_old_bg_ids": [
              "L15B01"
            ]
          },
          "L15B02": {
            "bg_id": "L15B02",
            "loc_id": "L15",
            "physical_space_id": "media_handoff_area",
            "space_label": "Media Handoff Admin Area",
            "applies_to_shots": [
              "S20_Shot7"
            ],
            "depends_on_fp": [
              "fp_l15_admin_security_office"
            ],
            "depends_on_bg": [],
            "member_old_bg_ids": [
              "L15B01"
            ]
          }
        },
        "rebased_shot_background_map": {
          "S20_Shot4": "L15B01",
          "S20_Shot7": "L15B02"
        },
        "physical_spaces": [
          {
            "physical_space_id": "cctv_review_area",
            "space_label": "CCTV Review Area",
            "member_shots": [
              "S20_Shot4"
            ],
            "establishing_view_prompt": "Clean security CCTV review room with a long built-in workstation against the wall, a row of surveillance monitors, central computer monitor, keyboard and mouse, an office chair facing the screens, pale blue-gray walls, dark trim, and a filing cabinet along the side; neutral even office lighting, no people or loose story props.",
            "reasoning": "S20_Shot4 is explicitly filmed beside the monitor line while 혜수 studies the unseen CCTV screen, matching the FP security zone with the surveillance workstation."
          },
          {
            "physical_space_id": "media_handoff_area",
            "space_label": "Media Handoff Admin Area",
            "member_shots": [
              "S20_Shot7"
            ],
            "establishing_view_prompt": "Clean administrative handoff office with a rectangular work desk, two visitor chairs, a copier or office machine along one wall, storage shelves with binders and drawers, pale warm walls, dark trim, and a doorway connecting toward the security room; neutral even office lighting, no people and no loose media or documents emphasized.",
            "reasoning": "S20_Shot7 focuses on 혜수 gripping the USB at desk height during the CCTV-copy handoff, which aligns with the FP admin/media handoff zone rather than the monitor-facing CCTV review position."
          }
        ],
        "establishing_prompts_by_bg_id": {
          "L15B01": "Clean security CCTV review room with a long built-in workstation against the wall, a row of surveillance monitors, central computer monitor, keyboard and mouse, an office chair facing the screens, pale blue-gray walls, dark trim, and a filing cabinet along the side; neutral even office lighting, no people or loose story props.\nHard constraints: a clean ESTABLISHING background plate of this ONE space showing its structure and built/large furniture. NO people, NO story props, NO photographs/frames, NO drawn marks, NO blood, NO clutter, NO time-of-day drama — neutral even light. ONE continuous frame, NO split/diptych. Photorealistic.",
          "L15B02": "Clean administrative handoff office with a rectangular work desk, two visitor chairs, a copier or office machine along one wall, storage shelves with binders and drawers, pale warm walls, dark trim, and a doorway connecting toward the security room; neutral even office lighting, no people and no loose media or documents emphasized.\nHard constraints: a clean ESTABLISHING background plate of this ONE space showing its structure and built/large furniture. NO people, NO story props, NO photographs/frames, NO drawn marks, NO blood, NO clutter, NO time-of-day drama — neutral even light. ONE continuous frame, NO split/diptych. Photorealistic."
        },
        "lineage_map": {
          "old_to_canonical": {
            "L15B01": "L15B01"
          },
          "by_canonical": {
            "L15B01": {
              "physical_space_id": "cctv_review_area",
              "space_label": "CCTV Review Area",
              "member_shots": [
                "S20_Shot4"
              ],
              "member_old_bg_ids": [
                "L15B01"
              ],
              "reason": "preserved_member_bg"
            },
            "L15B02": {
              "physical_space_id": "media_handoff_area",
              "space_label": "Media Handoff Admin Area",
              "member_shots": [
                "S20_Shot7"
              ],
              "member_old_bg_ids": [
                "L15B01"
              ],
              "reason": "new_physical_space_split"
            }
          },
          "canonical_selection_basis": "structural_member_count",
          "old_to_canonical_is_audit_only": true
        },
        "rebased_bg_catalog_hash": "556835b90c3c76bb",
        "rebased_shot_binding_hash": "2a912672b2bd3a9c",
        "sot_mode": "physical_space",
        "real_vlm_call": true,
        "real_vlm_call_count": 1
      },
      "fp_l13_police_office_main": {
        "fp_id": "fp_l13_police_office_main",
        "loc_id": "L13",
        "status": "ok",
        "rebased_background_catalog": {
          "L13B02": {
            "bg_id": "L13B02",
            "loc_id": "L13",
            "physical_space_id": "duty_detective_desk_zone",
            "space_label": "Duty Detective Workstation Zone",
            "applies_to_shots": [
              "S16_Shot3",
              "S16_Shot5",
              "S21_Shot8"
            ],
            "depends_on_fp": [
              "fp_l13_police_office_main"
            ],
            "depends_on_bg": [],
            "member_old_bg_ids": [
              "L13B01",
              "L13B02"
            ]
          },
          "L13B01": {
            "bg_id": "L13B01",
            "loc_id": "L13",
            "physical_space_id": "hyesu_desk_zone",
            "space_label": "Hyesu Desk Zone",
            "applies_to_shots": [
              "S21_Shot5"
            ],
            "depends_on_fp": [
              "fp_l13_police_office_main"
            ],
            "depends_on_bg": [],
            "member_old_bg_ids": [
              "L13B01"
            ]
          }
        },
        "rebased_shot_background_map": {
          "S16_Shot3": "L13B02",
          "S16_Shot5": "L13B02",
          "S21_Shot8": "L13B02",
          "S21_Shot5": "L13B01"
        },
        "physical_spaces": [
          {
            "physical_space_id": "hyesu_desk_zone",
            "space_label": "Hyesu Desk Zone",
            "member_shots": [
              "S21_Shot5"
            ],
            "establishing_view_prompt": "Clean establishing background plate of Hyesu’s desk zone inside a police detective office: a semi-bounded desk area along the lower-left side of the open office, pale blue floor zone, plain partition walls, a large rectangular work desk with an office chair behind it, a low side cabinet attached beside the desk, neutral office wall surfaces, and the surrounding open police-office architecture visible beyond; clean, orderly, evenly lit, no people, no paperwork, no photos, no personal items, no dramatic lighting.",
            "reasoning": "S21_Shot5 is explicitly filmed from near Hyesu’s desk corner while Suriyoung sits at Hyesu’s place looking at material on that desk, matching the FP’s separate Hyesu desk zone."
          },
          {
            "physical_space_id": "duty_detective_desk_zone",
            "space_label": "Duty Detective Workstation Zone",
            "member_shots": [
              "S21_Shot8",
              "S16_Shot3",
              "S16_Shot5"
            ],
            "establishing_view_prompt": "Clean establishing background plate of the duty detective workstation zone inside the police office: a semi-bounded workstation area on the lower-right side of the plan with pale cyan floor zone, partial wall boundary, a rectangular computer desk, office chair, desktop monitor, keyboard area, desk phone position, simple police-office walls and adjacent doorway edge; clean, neutral, evenly lit, no people, no loose documents, no notes, no phone screens, no clutter, no story-specific evidence.",
            "reasoning": "S16_Shot3 and S16_Shot5 are staged from Kim Detective’s side of the duty desk as Hyesu asks him to trace a phone, and S21_Shot8 follows Suriyoung using Kim’s monitor and writing the coordinates, all requiring the same bounded duty detective workstation shown in the FP."
          }
        ],
        "establishing_prompts_by_bg_id": {
          "L13B02": "Clean establishing background plate of the duty detective workstation zone inside the police office: a semi-bounded workstation area on the lower-right side of the plan with pale cyan floor zone, partial wall boundary, a rectangular computer desk, office chair, desktop monitor, keyboard area, desk phone position, simple police-office walls and adjacent doorway edge; clean, neutral, evenly lit, no people, no loose documents, no notes, no phone screens, no clutter, no story-specific evidence.\nHard constraints: a clean ESTABLISHING background plate of this ONE space showing its structure and built/large furniture. NO people, NO story props, NO photographs/frames, NO drawn marks, NO blood, NO clutter, NO time-of-day drama — neutral even light. ONE continuous frame, NO split/diptych. Photorealistic.",
          "L13B01": "Clean establishing background plate of Hyesu’s desk zone inside a police detective office: a semi-bounded desk area along the lower-left side of the open office, pale blue floor zone, plain partition walls, a large rectangular work desk with an office chair behind it, a low side cabinet attached beside the desk, neutral office wall surfaces, and the surrounding open police-office architecture visible beyond; clean, orderly, evenly lit, no people, no paperwork, no photos, no personal items, no dramatic lighting.\nHard constraints: a clean ESTABLISHING background plate of this ONE space showing its structure and built/large furniture. NO people, NO story props, NO photographs/frames, NO drawn marks, NO blood, NO clutter, NO time-of-day drama — neutral even light. ONE continuous frame, NO split/diptych. Photorealistic."
        },
        "lineage_map": {
          "old_to_canonical": {
            "L13B02": "L13B02",
            "L13B01": "L13B02"
          },
          "by_canonical": {
            "L13B02": {
              "physical_space_id": "duty_detective_desk_zone",
              "space_label": "Duty Detective Workstation Zone",
              "member_shots": [
                "S16_Shot3",
                "S16_Shot5",
                "S21_Shot8"
              ],
              "member_old_bg_ids": [
                "L13B01",
                "L13B02"
              ],
              "reason": "preserved_member_bg"
            },
            "L13B01": {
              "physical_space_id": "hyesu_desk_zone",
              "space_label": "Hyesu Desk Zone",
              "member_shots": [
                "S21_Shot5"
              ],
              "member_old_bg_ids": [
                "L13B01"
              ],
              "reason": "preserved_member_bg"
            }
          },
          "canonical_selection_basis": "structural_member_count",
          "old_to_canonical_is_audit_only": true
        },
        "rebased_bg_catalog_hash": "f5f1ace6e534bc6a",
        "rebased_shot_binding_hash": "7806ba510f32fc73",
        "sot_mode": "physical_space",
        "real_vlm_call": true,
        "real_vlm_call_count": 1
      },
      "fp_l14_police_exterior_main": {
        "fp_id": "fp_l14_police_exterior_main",
        "loc_id": "L14",
        "status": "ok",
        "rebased_background_catalog": {
          "L14B01": {
            "bg_id": "L14B01",
            "loc_id": "L14",
            "physical_space_id": "station_frontage",
            "space_label": "Police Station Frontage",
            "applies_to_shots": [
              "S22_Shot2"
            ],
            "depends_on_fp": [
              "fp_l14_police_exterior_main"
            ],
            "depends_on_bg": [],
            "member_old_bg_ids": [
              "L14B01"
            ]
          }
        },
        "rebased_shot_background_map": {
          "S22_Shot2": "L14B01"
        },
        "physical_spaces": [
          {
            "physical_space_id": "station_frontage",
            "space_label": "Police Station Frontage",
            "member_shots": [
              "S22_Shot2"
            ],
            "establishing_view_prompt": "Clean daytime exterior frontage of a police station: a broad beige facade with rows of rectangular windows, a central glass double-door entrance under a shallow canopy, steps leading down to an open paved forecourt, low rectangular shrub planters, and a bicycle parking area with metal bike racks to one side beside the walkway and departure road.",
            "reasoning": "The shot tracks Su-ri-young riding a bicycle outside the police station with the exterior slipping by, placing the camera in the frontage/bicycle-parking forecourt area shown on the floor plan rather than a separate interior room."
          }
        ],
        "establishing_prompts_by_bg_id": {
          "L14B01": "Clean daytime exterior frontage of a police station: a broad beige facade with rows of rectangular windows, a central glass double-door entrance under a shallow canopy, steps leading down to an open paved forecourt, low rectangular shrub planters, and a bicycle parking area with metal bike racks to one side beside the walkway and departure road.\nHard constraints: a clean ESTABLISHING background plate of this ONE space showing its structure and built/large furniture. NO people, NO story props, NO photographs/frames, NO drawn marks, NO blood, NO clutter, NO time-of-day drama — neutral even light. ONE continuous frame, NO split/diptych. Photorealistic."
        },
        "lineage_map": {
          "old_to_canonical": {
            "L14B01": "L14B01"
          },
          "by_canonical": {
            "L14B01": {
              "physical_space_id": "station_frontage",
              "space_label": "Police Station Frontage",
              "member_shots": [
                "S22_Shot2"
              ],
              "member_old_bg_ids": [
                "L14B01"
              ],
              "reason": "preserved_member_bg"
            }
          },
          "canonical_selection_basis": "structural_member_count",
          "old_to_canonical_is_audit_only": true
        },
        "rebased_bg_catalog_hash": "8206e461a9fc6435",
        "rebased_shot_binding_hash": "4b9195a1220cfe93",
        "sot_mode": "physical_space",
        "real_vlm_call": true,
        "real_vlm_call_count": 1
      },
      "fp_l19_deck": {
        "fp_id": "fp_l19_deck",
        "loc_id": "L19",
        "status": "ok",
        "rebased_background_catalog": {
          "L19B02": {
            "bg_id": "L19B02",
            "loc_id": "L19",
            "physical_space_id": "open_deck",
            "space_label": "Open Deck",
            "applies_to_shots": [
              "S28_Shot4"
            ],
            "depends_on_fp": [
              "fp_l19_deck"
            ],
            "depends_on_bg": [],
            "member_old_bg_ids": [
              "L19B02"
            ]
          },
          "L19B01": {
            "bg_id": "L19B01",
            "loc_id": "L19",
            "physical_space_id": "wheelhouse_threshold",
            "space_label": "Wheelhouse Threshold",
            "applies_to_shots": [
              "S28_Shot6"
            ],
            "depends_on_fp": [
              "fp_l19_deck"
            ],
            "depends_on_bg": [],
            "member_old_bg_ids": [
              "L19B01"
            ]
          }
        },
        "rebased_shot_background_map": {
          "S28_Shot4": "L19B02",
          "S28_Shot6": "L19B01"
        },
        "physical_spaces": [
          {
            "physical_space_id": "open_deck",
            "space_label": "Open Deck",
            "member_shots": [
              "S28_Shot4"
            ],
            "establishing_view_prompt": "Clean establishing background plate of the open deck of a small fishing boat: a broad flat pale-gray metal deck bordered by low metal railings, fixed cleats and mooring hardware along the sides, a flush rectangular hatch set into the deck, and a low secured equipment crate or deck box, with the sea visible beyond the rail line in neutral daylight. No people, loose props, maps, photographs, clutter, or dramatic lighting.",
            "reasoning": "S28_Shot4 is a tight close-up of Inwoo during the exchange while he is seated on the boat’s deck, matching the FP’s large open_deck zone rather than the doorway area."
          },
          {
            "physical_space_id": "wheelhouse_threshold",
            "space_label": "Wheelhouse Threshold",
            "member_shots": [
              "S28_Shot6"
            ],
            "establishing_view_prompt": "Clean establishing background plate of the wheelhouse entrance threshold on a small fishing boat: a recessed doorway set into the forward side of the deck, sturdy door jambs and sill, an open hinged wheelhouse door, compact threshold landing, and the darker but clean wheelhouse interior visible beyond, framed by the surrounding deck structure in neutral daylight. No people, blocking gestures, story props, marks, or dramatic sunset lighting.",
            "reasoning": "S28_Shot6 is staged squarely on the wheelhouse entrance, with the character braced between the jambs and the wheelhouse interior behind her, so it belongs to the FP’s distinct wheelhouse_threshold zone."
          }
        ],
        "establishing_prompts_by_bg_id": {
          "L19B02": "Clean establishing background plate of the open deck of a small fishing boat: a broad flat pale-gray metal deck bordered by low metal railings, fixed cleats and mooring hardware along the sides, a flush rectangular hatch set into the deck, and a low secured equipment crate or deck box, with the sea visible beyond the rail line in neutral daylight. No people, loose props, maps, photographs, clutter, or dramatic lighting.\nHard constraints: a clean ESTABLISHING background plate of this ONE space showing its structure and built/large furniture. NO people, NO story props, NO photographs/frames, NO drawn marks, NO blood, NO clutter, NO time-of-day drama — neutral even light. ONE continuous frame, NO split/diptych. Photorealistic.",
          "L19B01": "Clean establishing background plate of the wheelhouse entrance threshold on a small fishing boat: a recessed doorway set into the forward side of the deck, sturdy door jambs and sill, an open hinged wheelhouse door, compact threshold landing, and the darker but clean wheelhouse interior visible beyond, framed by the surrounding deck structure in neutral daylight. No people, blocking gestures, story props, marks, or dramatic sunset lighting.\nHard constraints: a clean ESTABLISHING background plate of this ONE space showing its structure and built/large furniture. NO people, NO story props, NO photographs/frames, NO drawn marks, NO blood, NO clutter, NO time-of-day drama — neutral even light. ONE continuous frame, NO split/diptych. Photorealistic."
        },
        "lineage_map": {
          "old_to_canonical": {
            "L19B02": "L19B02",
            "L19B01": "L19B01"
          },
          "by_canonical": {
            "L19B02": {
              "physical_space_id": "open_deck",
              "space_label": "Open Deck",
              "member_shots": [
                "S28_Shot4"
              ],
              "member_old_bg_ids": [
                "L19B02"
              ],
              "reason": "preserved_member_bg"
            },
            "L19B01": {
              "physical_space_id": "wheelhouse_threshold",
              "space_label": "Wheelhouse Threshold",
              "member_shots": [
                "S28_Shot6"
              ],
              "member_old_bg_ids": [
                "L19B01"
              ],
              "reason": "preserved_member_bg"
            }
          },
          "canonical_selection_basis": "structural_member_count",
          "old_to_canonical_is_audit_only": true
        },
        "rebased_bg_catalog_hash": "44ecd67cffbe126b",
        "rebased_shot_binding_hash": "81c31641739acf09",
        "sot_mode": "physical_space",
        "real_vlm_call": true,
        "real_vlm_call_count": 1
      },
      "fp_l20_wheelhouse": {
        "fp_id": "fp_l20_wheelhouse",
        "loc_id": "L20",
        "status": "ok",
        "rebased_background_catalog": {
          "L20B01": {
            "bg_id": "L20B01",
            "loc_id": "L20",
            "physical_space_id": "wheelhouse",
            "space_label": "Wheelhouse",
            "applies_to_shots": [
              "S29_Shot3",
              "S29_Shot8"
            ],
            "depends_on_fp": [
              "fp_l20_wheelhouse"
            ],
            "depends_on_bg": [],
            "member_old_bg_ids": [
              "L20B01",
              "L20B02"
            ]
          }
        },
        "rebased_shot_background_map": {
          "S29_Shot3": "L20B01",
          "S29_Shot8": "L20B01"
        },
        "physical_spaces": [
          {
            "physical_space_id": "wheelhouse",
            "space_label": "Wheelhouse",
            "member_shots": [
              "S29_Shot8",
              "S29_Shot3"
            ],
            "establishing_view_prompt": "Clean neutral establishing background plate of a compact boat wheelhouse: a rectangular enclosed cabin with pale walls and floor, front-facing navigation console built into the forward wall, central ship’s wheel, chart/navigation display, radio panel, rows of switches, round instrument gauges, throttle levers, and small control panel. Narrow horizontal windows line the front and side walls, with a door opening at the rear, a fixed captain’s chair near the center-left, a tall storage cabinet along the left wall, and a low bench/storage unit on the right. No people, loose papers, personal props, markings, clutter, or dramatic lighting.",
            "reasoning": "The floor plan contains only the wheelhouse zone, and both the close two-shot and the photo insert are explicitly set inside the 조타실/wheelhouse, sharing the same fixed console, wheelhouse surfaces, and cabin structure."
          }
        ],
        "establishing_prompts_by_bg_id": {
          "L20B01": "Clean neutral establishing background plate of a compact boat wheelhouse: a rectangular enclosed cabin with pale walls and floor, front-facing navigation console built into the forward wall, central ship’s wheel, chart/navigation display, radio panel, rows of switches, round instrument gauges, throttle levers, and small control panel. Narrow horizontal windows line the front and side walls, with a door opening at the rear, a fixed captain’s chair near the center-left, a tall storage cabinet along the left wall, and a low bench/storage unit on the right. No people, loose papers, personal props, markings, clutter, or dramatic lighting.\nHard constraints: a clean ESTABLISHING background plate of this ONE space showing its structure and built/large furniture. NO people, NO story props, NO photographs/frames, NO drawn marks, NO blood, NO clutter, NO time-of-day drama — neutral even light. ONE continuous frame, NO split/diptych. Photorealistic."
        },
        "lineage_map": {
          "old_to_canonical": {
            "L20B02": "L20B01",
            "L20B01": "L20B01"
          },
          "by_canonical": {
            "L20B01": {
              "physical_space_id": "wheelhouse",
              "space_label": "Wheelhouse",
              "member_shots": [
                "S29_Shot3",
                "S29_Shot8"
              ],
              "member_old_bg_ids": [
                "L20B01",
                "L20B02"
              ],
              "reason": "preserved_member_bg"
            }
          },
          "canonical_selection_basis": "structural_member_count",
          "old_to_canonical_is_audit_only": true
        },
        "rebased_bg_catalog_hash": "3a4475ee1eb66a89",
        "rebased_shot_binding_hash": "80857659f75ddcbf",
        "sot_mode": "physical_space",
        "real_vlm_call": true,
        "real_vlm_call_count": 1
      }
    },
    "sot_mode": "physical_space",
    "input_contract": "physical_space_cluster_v1",
    "schema_version": 1,
    "prompt_pack_version": "1.202606040000",
    "real_vlm_call_count": 10,
    "image_api_call_count": 0,
    "llm_call_count": 0
  },
  "step_id": "physical_space_cluster_plan",
  "run_id": "771f70b3-a8bd-4036-8b75-10b617da6cd2",
  "resolved_model": "gpt",
  "updated_at": "2026-06-04T02:36:00.167794+00:00",
  "project_config_snapshot": {}
}