{
  "status": "partial",
  "applicable_count": 12,
  "completed_count": 8,
  "failed_count": 4,
  "schema_version": 2,
  "config_hash": "3794fce1d340ea13",
  "data": {
    "groups": {
      "bg_mountain_trail": {
        "spec": {
          "excluded_transient_elements": [
            {
              "evidence": {
                "quote_ko": "해 질 무렵",
                "scene_index": 1
              },
              "name_en": "dusk illumination",
              "reason_en": "The time-of-day lighting is a moment-specific condition rather than a persistent site feature."
            },
            {
              "evidence": {
                "quote_ko": "우거진 수풀을 헤치며 도망치는.",
                "scene_index": 1
              },
              "name_en": "fleeing man",
              "reason_en": "The person and his movement occur only during the scene."
            },
            {
              "evidence": {
                "quote_ko": "벗겨진 한쪽 신발.",
                "scene_index": 1
              },
              "name_en": "single dislodged shoe",
              "reason_en": "The shoe is a movable object present during the incident, not a permanent part of the site."
            },
            {
              "evidence": {
                "quote_ko": "허벅지에 커다란 이빨 자국. 피가 흐르고.",
                "scene_index": 1
              },
              "name_en": "bite wound and flowing blood",
              "reason_en": "These are temporary bodily conditions tied to the incident."
            },
            {
              "evidence": {
                "quote_ko": "검은 인영이 남자를 덮친다.",
                "scene_index": 1
              },
              "name_en": "attacking black figure",
              "reason_en": "The figure and attack are moment-specific subjects rather than site markers."
            },
            {
              "evidence": {
                "quote_ko": "현장을 감식하는 경찰",
                "scene_index": 3
              },
              "name_en": "police forensic personnel",
              "reason_en": "The personnel occupy the site only during the investigation."
            },
            {
              "evidence": {
                "quote_ko": "폴리스 라인을 치고",
                "scene_index": 3
              },
              "name_en": "police cordon line",
              "reason_en": "The cordon is temporarily installed for the investigation and is not a persistent boundary."
            },
            {
              "evidence": {
                "quote_ko": "시신을 수거한다.",
                "scene_index": 3
              },
              "name_en": "bodies under recovery",
              "reason_en": "The bodies and recovery activity are temporary incident elements."
            },
            {
              "evidence": {
                "quote_ko": "형사무리 속에 사건을 지휘하는 혜수의 모습이 보인다.",
                "scene_index": 3
              },
              "name_en": "detective group",
              "reason_en": "The detectives are moment-specific occupants and cannot serve as persistent location markers."
            }
          ],
          "items": [
            {
              "code": "U1",
              "evidence": {
                "quote_ko": "우거진 수풀",
                "scene_index": 1
              },
              "inferred": false,
              "kind": "vegetation",
              "name_en": "dense forest undergrowth",
              "placement_en": "The dense forest undergrowth occupies the interior portion of the site and directly adjoins the neighboring forest ground.",
              "temporal_scope": "persistent_site"
            },
            {
              "code": "U2",
              "evidence": {
                "quote_ko": "숲속",
                "scene_index": 1
              },
              "inferred": false,
              "kind": "woodland",
              "name_en": "surrounding forest tree stand",
              "placement_en": "The surrounding forest tree stand contains both the dense forest undergrowth and the adjoining forest ground, forming the larger site envelope around them.",
              "temporal_scope": "persistent_site"
            },
            {
              "code": "G1",
              "evidence": null,
              "inferred": true,
              "kind": "ground",
              "name_en": "forest ground beside the undergrowth",
              "placement_en": "The forest ground lies within the surrounding tree stand and directly beside one side of the dense forest undergrowth.",
              "temporal_scope": "persistent_site"
            }
          ],
          "layout_narration_en": "The site is a forest interior enclosed by a surrounding tree stand. Dense forest undergrowth occupies its interior portion. A neighboring area of forest ground lies within the same tree stand and directly adjoins one side of the undergrowth, allowing the two zones to be mapped as contiguous parts of one woodland site. No permanent built boundary, fixed equipment, or constructed trail is established by the source scenes.",
          "zone_labels_en": [
            "Dense Understory Interior",
            "Forest Ground Beside the Understory"
          ]
        },
        "attempts": 1,
        "outdoor_loc_ids": [
          "L01"
        ],
        "scene_indices": [
          1,
          3
        ]
      },
      "bg_urban_back_alley": {
        "spec": {
          "excluded_transient_elements": [
            {
              "evidence": {
                "quote_ko": "도심 희미한 가로등 불빛.",
                "scene_index": 2
              },
              "name_en": "Dim streetlight illumination",
              "reason_en": "The illumination level is a moment-dependent nighttime condition, not a persistent physical site marker."
            },
            {
              "evidence": {
                "quote_ko": "전봇대에 뒤엉켜있는 두 사람. 남녀로 보인다.",
                "scene_index": 2
              },
              "name_en": "Two people at the utility pole",
              "reason_en": "The people and their position at the pole exist only during the depicted event and are not permanent site elements."
            },
            {
              "evidence": {
                "quote_ko": "푹 힘없이 쓰러지는 여자.",
                "scene_index": 2
              },
              "name_en": "Fallen woman",
              "reason_en": "The fallen body is an event-dependent subject rather than a persistent part of the location."
            }
          ],
          "items": [
            {
              "code": "A1",
              "evidence": {
                "quote_ko": "S#2. 도시 뒷골목 / N",
                "scene_index": 2
              },
              "inferred": false,
              "kind": "alley",
              "name_en": "urban back-alley passage",
              "placement_en": "The passage forms the primary exterior circulation space of the site and contains the utility-pole area.",
              "temporal_scope": "persistent_site"
            },
            {
              "code": "U1",
              "evidence": {
                "quote_ko": "전봇대에 뒤엉켜있는 두 사람.",
                "scene_index": 2
              },
              "inferred": false,
              "kind": "utility pole",
              "name_en": "utility pole within the back alley",
              "placement_en": "The utility pole stands within or immediately beside the urban back-alley passage, creating a fixed vertical point accessible from the passage.",
              "temporal_scope": "persistent_site"
            },
            {
              "code": "A2",
              "evidence": {
                "quote_ko": "도심 희미한 가로등 불빛.",
                "scene_index": 2
              },
              "inferred": false,
              "kind": "streetlight",
              "name_en": "streetlight serving the urban back alley",
              "placement_en": "The streetlight is installed along the urban back-alley passage so that it can illuminate the passage; its exact relationship to the utility pole is unspecified.",
              "temporal_scope": "persistent_site"
            }
          ],
          "layout_narration_en": "The site is organized around a single urban back-alley passage that serves as both the access route and the principal camera area. A utility pole stands within or immediately beside this passage, allowing camera positions directly beside it as well as views from farther along the alley. A streetlight also serves the passage, although the source text does not establish its exact position relative to the utility pole. No specific building edges, junctions, materials, dimensions, or directional orientation are fixed by the scene text.",
          "zone_labels_en": [
            "Back-Alley Passage",
            "Utility-Pole Area"
          ]
        },
        "attempts": 1,
        "outdoor_loc_ids": [
          "L02"
        ],
        "scene_indices": [
          2
        ]
      },
      "bg_rooftop_residence": {
        "spec": {
          "excluded_transient_elements": [
            {
              "name_en": "rooftop clothesline",
              "reason_en": "The line is present in the scene, but the text does not establish it as a permanent fixed installation.",
              "evidence": {
                "scene_index": 10,
                "quote_ko": "바람에 빨랫줄이 툭- 툭-"
              }
            },
            {
              "name_en": "platform on the rooftop",
              "reason_en": "The platform is movable site furnishing and is not confirmed as permanently fixed to the rooftop.",
              "evidence": {
                "scene_index": 10,
                "quote_ko": "평상에 놓인 말린 석창포가 바람에 날리는데..."
              }
            },
            {
              "name_en": "dried sweet-flag material and loose leaves",
              "reason_en": "These are movable materials whose presence and positions depend on the moment.",
              "evidence": {
                "scene_index": 10,
                "quote_ko": "평상에 놓인 말린 석창포가 바람에 날리는데..."
              }
            },
            {
              "name_en": "advertising leaflet in the door gap",
              "reason_en": "The leaflet is a temporary loose object rather than a persistent site feature.",
              "evidence": {
                "scene_index": 10,
                "quote_ko": "문틈에 낀 광고 전단지."
              }
            },
            {
              "name_en": "bicycle in the rear courtyard",
              "reason_en": "The bicycle is movable and is only parked there during the scene.",
              "evidence": {
                "scene_index": 11,
                "quote_ko": "마당 후미진 곳에 자전거를 대충 세우고"
              }
            },
            {
              "name_en": "vehicle outside the building",
              "reason_en": "The vehicle is present only as a scene-dependent arrival and is not a permanent site element.",
              "evidence": {
                "scene_index": 13,
                "quote_ko": "차에서 내린 혜수"
              }
            },
            {
              "name_en": "half-open state of the rooftop-room entrance door",
              "reason_en": "The iron door is persistent, but its half-open position is a momentary state.",
              "evidence": {
                "scene_index": 11,
                "quote_ko": "반쯤 열린 현관 철문."
              }
            },
            {
              "name_en": "illumination inside the rooftop room",
              "reason_en": "The lit condition is dependent on the time and event rather than part of the permanent spatial layout.",
              "evidence": {
                "scene_index": 17,
                "quote_ko": "불이 켜져 있는 옥탑 방"
              }
            },
            {
              "name_en": "cat on the rooftop boundary",
              "reason_en": "The cat is a moving animal and not a persistent part of the site.",
              "evidence": {
                "scene_index": 17,
                "quote_ko": "검은 고양이가 불이 켜져 있는 옥탑 방을 슬쩍 보더니 담을 넘는다"
              }
            }
          ],
          "items": [
            {
              "code": "A1",
              "kind": "alley",
              "name_en": "villa alley approach",
              "placement_en": "The alley runs past the villa exterior and provides the outdoor approach to the villa entrance door.",
              "temporal_scope": "persistent_site",
              "inferred": false,
              "evidence": {
                "scene_index": 11,
                "quote_ko": "자전거를 타고 골목길을 달리는 수리영."
              }
            },
            {
              "code": "A2",
              "kind": "building",
              "name_en": "multi-unit villa exterior",
              "placement_en": "The villa is the primary building mass beneath the main rooftop, with its entrance at alley level and the retrofit stair attached to an exterior wall.",
              "temporal_scope": "persistent_site",
              "inferred": false,
              "evidence": {
                "scene_index": 11,
                "quote_ko": "다세대 빌라 문을 열고 들어와"
              }
            },
            {
              "code": "A3",
              "kind": "door",
              "name_en": "alley-level villa entrance door",
              "placement_en": "The entrance door is set into the villa at alley level and connects the alley approach to the courtyard-side ground circulation.",
              "temporal_scope": "persistent_site",
              "inferred": false,
              "evidence": {
                "scene_index": 11,
                "quote_ko": "다세대 빌라 문을 열고 들어와"
              }
            },
            {
              "code": "A4",
              "kind": "yard",
              "name_en": "villa courtyard and rear ground area",
              "placement_en": "The courtyard lies beyond the alley-level villa entrance and includes a rear ground area from which the exterior stair route is reached.",
              "temporal_scope": "persistent_site",
              "inferred": false,
              "evidence": {
                "scene_index": 11,
                "quote_ko": "마당 후미진 곳에 자전거를 대충 세우고, 옥탑방과 연결되는 계단을 급히 오른다."
              }
            },
            {
              "code": "B1",
              "kind": "stair",
              "name_en": "exterior steel retrofit stair to the rooftop",
              "placement_en": "The later-added stair is attached to the villa exterior wall and climbs from the building's lower exterior level to the rooftop; it has open treads, thin steel-plate stringers and support columns, and pipe handrails.",
              "temporal_scope": "persistent_site",
              "inferred": false,
              "evidence": {
                "scene_index": 11,
                "quote_ko": "옥탑으로 오르는 외부 계단은 건물 외벽에 나중에 덧붙인 철제 증축 계단이다 — 오픈 발판, 얇은 강판 스트링거와 지지 기둥, 파이프 난간. 콘크리트/시멘트 계단이 아니다."
              }
            },
            {
              "code": "C1",
              "kind": "rooftop",
              "name_en": "main rooftop around the rooftop room",
              "placement_en": "The main rooftop lies above the villa and receives the upper end of the exterior stair; it contains the rooftop-room structure and the rooftop water tank.",
              "temporal_scope": "persistent_site",
              "inferred": false,
              "evidence": {
                "scene_index": 10,
                "quote_ko": "그 시각. 옥탑방 옥상. 물탱크."
              }
            },
            {
              "code": "C2",
              "kind": "water tank",
              "name_en": "rooftop water tank",
              "placement_en": "The water tank occupies a fixed utility position on the main rooftop outside the rooftop-room structure; the source does not establish its precise side relative to the room.",
              "temporal_scope": "persistent_site",
              "inferred": false,
              "evidence": {
                "scene_index": 10,
                "quote_ko": "옥탑방 옥상. 물탱크."
              }
            },
            {
              "code": "C3",
              "kind": "boundary wall",
              "name_en": "rooftop boundary wall",
              "placement_en": "The wall forms a fixed boundary segment along the exterior edge of the rooftop area from which the rooftop room remains visible.",
              "temporal_scope": "persistent_site",
              "inferred": false,
              "evidence": {
                "scene_index": 17,
                "quote_ko": "검은 고양이가 불이 켜져 있는 옥탑 방을 슬쩍 보더니 담을 넘는다"
              }
            },
            {
              "code": "D1",
              "kind": "room",
              "name_en": "rooftop-room exterior structure",
              "placement_en": "The rooftop-room structure stands on the main rooftop above the villa and presents an exterior wall containing its iron entrance door and window.",
              "temporal_scope": "persistent_site",
              "inferred": false,
              "evidence": {
                "scene_index": 4,
                "quote_ko": "인천 변두리 부감, 오래된 빌라 옥탑방 전경."
              }
            },
            {
              "code": "D2",
              "kind": "door",
              "name_en": "rooftop-room iron entrance door",
              "placement_en": "The iron entrance door is set into an exterior wall of the rooftop room and opens directly between the room interior and the surrounding main rooftop.",
              "temporal_scope": "persistent_site",
              "inferred": false,
              "evidence": {
                "scene_index": 10,
                "quote_ko": "신발은 옥탑방 철문 현관 앞에 멈춰 선다."
              }
            },
            {
              "code": "D3",
              "kind": "window",
              "name_en": "rooftop-room exterior window",
              "placement_en": "The window is set into an exterior wall of the rooftop room and faces outward across the rooftop area.",
              "temporal_scope": "persistent_site",
              "inferred": false,
              "evidence": {
                "scene_index": 10,
                "quote_ko": "창문에 비친 그림자."
              }
            }
          ],
          "layout_narration_en": "The villa alley approach reaches the alley-level entrance door in the multi-unit villa exterior. Passing through that entrance leads to the villa courtyard and its rear ground area. From the lower exterior level, the open-tread steel retrofit stair is attached to the villa wall and rises to the main rooftop. The rooftop is the shared upper circulation plane around the rooftop-room structure, with the rooftop water tank occupying a separate fixed position and a boundary wall defining an exterior roof edge. The rooftop-room exterior contains an iron entrance door opening directly onto the rooftop and an exterior window facing the same outdoor roof area. The source does not establish a compass orientation or the exact lateral order of the water tank, door, window, and boundary wall, so those relationships should remain flexible while preserving their common connection to the main rooftop.",
          "zone_labels_en": [
            "Villa Alley and Courtyard",
            "Exterior Stair Route",
            "Main Rooftop",
            "Rooftop-Room Entrance Exterior"
          ]
        },
        "attempts": 1,
        "outdoor_loc_ids": [
          "L03",
          "L04"
        ],
        "scene_indices": [
          4,
          10,
          11,
          13,
          17
        ]
      },
      "bg_coastal_road": {
        "error": "Local schema validation failed for step=outdoor_place_spec schema=outdoor_place_spec at path=items: [{'code': 'A1', 'evidence': {'quote_ko': '수리영 자전거를 타고 해안가 도로를 달린다.', 'scene_index': 6}, 'inferred': False, 'kind': 'road', 'name_en': 'Coastal road travel corridor', 'placement_en': 'The coastal road forms the continuous landward travel axis and runs alongside the seaward coastal edge.', 'temporal_scope': 'persistent_site'}, {'code': 'A2', 'evidence': {'quote_ko': '이어폰을 끼고 바다냄새를 실컷 마신다.', 'scene_index': 6}, 'inferred': False, 'kind': 'coastline', 'name_en': 'Sea-facing coastal edge', 'placement_en': 'The coastal edge extends along the seaward side of the coastal road, with the sea beyond it.', 'temporal_scope': 'persistent_site'}] is too short",
        "outdoor_loc_ids": [
          "L06"
        ]
      },
      "bg_harbor_commercial_street": {
        "skipped": "no scenes mapped to outdoor locs",
        "outdoor_loc_ids": [
          "L08"
        ]
      },
      "bg_large_market": {
        "skipped": "no scenes mapped to outdoor locs",
        "outdoor_loc_ids": [
          "L09"
        ]
      },
      "bg_coastal_bus_stop": {
        "spec": {
          "excluded_transient_elements": [
            {
              "evidence": {
                "quote_ko": "혜수, 사온 음료수를 수리영에게 건네며",
                "scene_index": 15
              },
              "name_en": "purchased beverage",
              "reason_en": "The beverage is a portable prop present during the scene, not a persistent part of the location."
            }
          ],
          "items": [
            {
              "code": "A1",
              "evidence": {
                "quote_ko": "해안가. 버스정류장 부근",
                "scene_index": 15
              },
              "inferred": false,
              "kind": "bus stop",
              "name_en": "coastal bus stop waiting point",
              "placement_en": "Place the designated waiting point beside the roadside approach within the coastal area, oriented toward the coastal edge and sea.",
              "temporal_scope": "persistent_site"
            },
            {
              "code": "B1",
              "evidence": null,
              "inferred": true,
              "kind": "approach",
              "name_en": "roadside approach serving the coastal bus stop",
              "placement_en": "Run this linear approach directly alongside the coastal bus stop waiting point, providing the fixed access route into and away from the waiting area.",
              "temporal_scope": "persistent_site"
            },
            {
              "code": "C1",
              "evidence": {
                "quote_ko": "해안가. 버스정류장 부근",
                "scene_index": 15
              },
              "inferred": false,
              "kind": "coastal edge",
              "name_en": "sea-facing coastal edge near the bus stop",
              "placement_en": "Set this edge on the seaward side of the overall site, facing the sea and remaining visible from the coastal bus stop waiting point.",
              "temporal_scope": "persistent_site"
            },
            {
              "code": "C2",
              "evidence": {
                "quote_ko": "바다를 바라보며 멍한 채로 앉아있는 수리영",
                "scene_index": 15
              },
              "inferred": false,
              "kind": "sea",
              "name_en": "sea visible from the coastal bus stop",
              "placement_en": "Extend the sea outward beyond the sea-facing coastal edge, aligned with the principal view from the bus stop waiting point.",
              "temporal_scope": "persistent_site"
            }
          ],
          "layout_narration_en": "Use the roadside approach as the site's linear access spine and attach the coastal bus stop waiting point directly to one side of it. Orient the waiting point's principal view toward the sea-facing coastal edge. The coastal edge defines the landward limit of the sea, and the sea extends outward beyond it. Preserve a clear visual axis from the waiting point across the coastal edge to the sea, while the roadside approach provides the route leading away from the bus stop area.",
          "zone_labels_en": [
            "Bus Stop Waiting Zone",
            "Roadside Approach Zone",
            "Coastal Outlook Zone"
          ]
        },
        "attempts": 1,
        "outdoor_loc_ids": [
          "L11"
        ],
        "scene_indices": [
          15
        ]
      },
      "bg_police_station": {
        "error": "Local schema validation failed for step=outdoor_place_spec schema=outdoor_place_spec at path=items: [{'code': 'A1', 'evidence': {'quote_ko': '경찰서 밖', 'scene_index': 22}, 'inferred': False, 'kind': 'building exterior', 'name_en': 'Police station building exterior', 'placement_en': 'The visible outer face of the police station directly adjoins the police station exterior area.', 'temporal_scope': 'persistent_site'}, {'code': 'A2', 'evidence': {'quote_ko': '경찰서 밖', 'scene_index': 22}, 'inferred': False, 'kind': 'exterior area', 'name_en': 'Police station exterior area', 'placement_en': 'The outdoor area lies immediately outside and alongside the police station building exterior, providing the site space used by the scene.', 'temporal_scope': 'persistent_site'}] is too short",
        "outdoor_loc_ids": [
          "L13"
        ]
      },
      "bg_stormy_coast": {
        "error": "Local schema validation failed for step=outdoor_place_spec schema=outdoor_place_spec at path=items: [{'code': 'A1', 'evidence': None, 'inferred': True, 'kind': 'route', 'name_en': 'Coastal travel route', 'placement_en': 'Runs through the coastal site alongside the shoreline edge, providing the landward path across the location.', 'temporal_scope': 'persistent_site'}, {'code': 'B1', 'evidence': {'quote_ko': 'S#24. 해안가 / 소나기', 'scene_index': 24}, 'inferred': False, 'kind': 'shoreline', 'name_en': 'Coastal shoreline edge', 'placement_en': 'Forms the seaward side of the site beside the coastal travel route.', 'temporal_scope': 'persistent_site'}] is too short",
        "outdoor_loc_ids": [
          "L15"
        ]
      },
      "bg_foggy_harbor": {
        "spec": {
          "excluded_transient_elements": [
            {
              "evidence": {
                "quote_ko": "비는 그치고 안개가 자욱하다.",
                "scene_index": 26
              },
              "name_en": "Dense harbor fog",
              "reason_en": "The fog is a temporary atmospheric condition and not a persistent site element."
            },
            {
              "evidence": {
                "quote_ko": "소나기가 한차례 퍼 붓는가 싶더니, 비는 그치고",
                "scene_index": 26
              },
              "name_en": "Recent rainfall and its aftermath",
              "reason_en": "Rain and any resulting surface wetness are momentary weather-dependent states."
            },
            {
              "evidence": {
                "quote_ko": "텅 빈 포구.",
                "scene_index": 26
              },
              "name_en": "Empty harbor state",
              "reason_en": "The absence of vessels or other occupants is a temporary occupancy condition."
            },
            {
              "evidence": {
                "quote_ko": "그때 안개를 뚫고 배 한척이 다가오는 게 보인다.",
                "scene_index": 26
              },
              "name_en": "Arriving boat",
              "reason_en": "The boat is mobile and present only during the depicted event."
            },
            {
              "evidence": {
                "quote_ko": "배에서 내린 인우(24세. 남)는 닷줄을 고정시키고 있다.",
                "scene_index": 26
              },
              "name_en": "Boat mooring line",
              "reason_en": "The line belongs to the momentary mooring activity and is not established as a permanent site installation."
            },
            {
              "evidence": {
                "quote_ko": "포구 / 해질 무렵",
                "scene_index": 26
              },
              "name_en": "Dusk illumination",
              "reason_en": "The time-of-day lighting is temporary and does not define the persistent site layout."
            }
          ],
          "items": [
            {
              "code": "H1",
              "evidence": {
                "quote_ko": "텅 빈 포구.",
                "scene_index": 26
              },
              "inferred": false,
              "kind": "waterfront",
              "name_en": "Harbor waterfront margin",
              "placement_en": "The harbor waterfront margin forms the principal camera-accessible edge beside the harbor water, adjoining the tidal rock outcrop and facing the seaward water approach.",
              "temporal_scope": "persistent_site"
            },
            {
              "code": "H2",
              "evidence": null,
              "inferred": true,
              "kind": "landing",
              "name_en": "Harbor boat-landing edge",
              "placement_en": "The harbor boat-landing edge occupies the waterfront margin where a vessel can come alongside and a person can pass between the vessel and the harbor edge.",
              "temporal_scope": "persistent_site"
            },
            {
              "code": "H3",
              "evidence": null,
              "inferred": true,
              "kind": "mooring point",
              "name_en": "Fixed mooring point beside the landing edge",
              "placement_en": "The fixed mooring point is set immediately beside the harbor boat-landing edge to receive a vessel's mooring line.",
              "temporal_scope": "persistent_site"
            },
            {
              "code": "H4",
              "evidence": {
                "quote_ko": "그때 안개를 뚫고 배 한척이 다가오는 게 보인다.",
                "scene_index": 26
              },
              "inferred": false,
              "kind": "water approach",
              "name_en": "Seaward water approach into the harbor",
              "placement_en": "The seaward water approach extends from open sea toward the harbor waterfront and aligns with the boat-landing edge.",
              "temporal_scope": "persistent_site"
            },
            {
              "code": "R1",
              "evidence": {
                "quote_ko": "갯바위에 앉아있는 수리영.",
                "scene_index": 26
              },
              "inferred": false,
              "kind": "rock outcrop",
              "name_en": "Tidal rock outcrop beside the harbor",
              "placement_en": "The tidal rock outcrop adjoins the harbor waterfront margin and faces across the seaward water approach toward open sea.",
              "temporal_scope": "persistent_site"
            }
          ],
          "layout_narration_en": "The site is organized around a camera-accessible harbor waterfront margin facing a seaward water approach. A boat-landing edge occupies part of this margin, with a fixed mooring point immediately beside it. The water approach runs from open sea toward the landing edge, providing the principal outward and inward sightline. A tidal rock outcrop adjoins another part of the same waterfront margin and faces the sea, allowing movement along the harbor edge between the rock area and the landing area without introducing a separate off-site location.",
          "zone_labels_en": [
            "Harbor Waterfront",
            "Tidal Rock Edge"
          ]
        },
        "attempts": 1,
        "outdoor_loc_ids": [
          "L17"
        ],
        "scene_indices": [
          26
        ]
      },
      "bg_small_fishing_boat": {
        "spec": {
          "excluded_transient_elements": [
            {
              "evidence": {
                "quote_ko": "인우한테 지도를 쓰윽 내미는 수리영.",
                "scene_index": 28
              },
              "name_en": "paper map",
              "reason_en": "The map is a movable hand-held object present only during the scene, not a persistent part of the vessel."
            },
            {
              "evidence": {
                "quote_ko": "25씬의 사진을 보여준다",
                "scene_index": 28
              },
              "name_en": "photograph",
              "reason_en": "The photograph is a movable prop used during the exchange, not a persistent site element."
            }
          ],
          "items": [
            {
              "code": "D1",
              "evidence": {
                "quote_ko": "바다위에 떠있는 소형어선.",
                "scene_index": 28
              },
              "inferred": false,
              "kind": "vessel",
              "name_en": "small fishing vessel hull",
              "placement_en": "The hull forms the continuous base of the site, carrying the exposed deck and the wheelhouse.",
              "temporal_scope": "persistent_site"
            },
            {
              "code": "D2",
              "evidence": {
                "quote_ko": "갑판에 홀로 앉아있다.",
                "scene_index": 28
              },
              "inferred": false,
              "kind": "deck",
              "name_en": "exposed fishing-boat deck",
              "placement_en": "The exposed deck occupies the exterior working area atop the small fishing vessel hull and directly adjoins the wheelhouse access.",
              "temporal_scope": "persistent_site"
            },
            {
              "code": "W1",
              "evidence": {
                "quote_ko": "인우, 발작적으로 일어나 조타실로 달려가",
                "scene_index": 28
              },
              "inferred": false,
              "kind": "wheelhouse",
              "name_en": "fishing-boat wheelhouse",
              "placement_en": "The wheelhouse is a fixed enclosed structure adjoining the exposed deck on the vessel hull.",
              "temporal_scope": "persistent_site"
            },
            {
              "code": "W2",
              "evidence": {
                "quote_ko": "수리영, 조타실로 따라들어가",
                "scene_index": 28
              },
              "inferred": false,
              "kind": "entrance",
              "name_en": "deck-to-wheelhouse entrance",
              "placement_en": "The entrance is set in the wheelhouse boundary and provides the direct passage between the exposed deck and the wheelhouse interior.",
              "temporal_scope": "persistent_site"
            },
            {
              "code": "W3",
              "evidence": null,
              "inferred": true,
              "kind": "helm",
              "name_en": "wheelhouse helm station",
              "placement_en": "The helm station is fixed inside the wheelhouse, reached after passing through the deck-to-wheelhouse entrance.",
              "temporal_scope": "persistent_site"
            }
          ],
          "layout_narration_en": "The site is a small fishing vessel organized around two connected camera zones. The vessel hull carries an exposed exterior deck and a fixed wheelhouse. The deck directly adjoins the wheelhouse boundary, where a single access point leads from the exterior deck into the wheelhouse interior. Inside that enclosure, the helm station occupies a fixed operating position accessible from the entrance. Movement through the site therefore runs from the exposed deck, through the deck-to-wheelhouse entrance, and into the wheelhouse toward the helm station.",
          "zone_labels_en": [
            "Exposed Deck",
            "Wheelhouse Interior"
          ]
        },
        "attempts": 1,
        "outdoor_loc_ids": [
          "L18"
        ],
        "scene_indices": [
          28
        ]
      },
      "bg_open_sea": {
        "error": "Local schema validation failed for step=outdoor_place_spec schema=outdoor_place_spec at path=items: [{'code': 'A1', 'evidence': {'quote_ko': 'S#30. 바다 / 해질 무렵', 'scene_index': 30}, 'inferred': False, 'kind': 'water body', 'name_en': 'Offshore open-sea expanse', 'placement_en': 'The offshore open-sea expanse occupies the entire established site, with no shoreline or fixed structure identified within the scene area.', 'temporal_scope': 'persistent_site'}] is too short",
        "outdoor_loc_ids": [
          "L20"
        ]
      }
    }
  },
  "step_id": "outdoor_place_spec",
  "run_id": "285de152-5626-4d29-9e90-2c3e25a30836",
  "resolved_model": "gpt",
  "updated_at": "2026-07-10T15:55:51.914724+00:00",
  "project_config_snapshot": {}
}