{
  "status": "completed",
  "applicable_count": 5,
  "completed_count": 5,
  "failed_count": 0,
  "schema_version": 2,
  "config_hash": "074ecec520ec7eec",
  "data": {
    "groups": {
      "bg_forest_ridge": {
        "spec": {
          "layout_narration_en": "A natural cliff margin forms the exposed outer edge of the forested ridge and overlooks the canopy below. The canopy continues from the cliffside airspace into the ridge forest, where a prominent massive branch and an interlaced branch network occupy the upper tree level. Large tree trunks connect this canopy level to the forest floor, including a trunk with enough breadth to screen the ground immediately behind it. The forest floor extends beneath the trees and transitions directly into a sloping section of the forest. A prominent rock stands higher on that slope, while a distinct moss-covered ground patch occupies a lower portion of the same sloping terrain. Gray moss also grows on tree bark within the forest interior.",
          "zone_labels_en": [
            "Cliff Margin",
            "Canopy and Overhead Airspace",
            "Forest Floor",
            "Forest Slope"
          ],
          "items": [
            {
              "code": "A1",
              "kind": "cliff",
              "name_en": "natural forest-ridge cliff edge",
              "placement_en": "Forms the exposed outer margin of the forested ridge, with open air beyond it and the forest canopy visible below.",
              "inferred": false,
              "evidence": {
                "scene_index": 1,
                "quote_ko": "멀리서 창백한 삭제광선이 절벽의 가장자리를 깨끗하게 지운다."
              },
              "temporal_scope": "persistent_site"
            },
            {
              "code": "B1",
              "kind": "canopy",
              "name_en": "continuous treetop canopy below the ridge",
              "placement_en": "Spreads below the cliffside airspace and continues into the upper level of the ridge forest.",
              "inferred": false,
              "evidence": {
                "scene_index": 1,
                "quote_ko": "아래에는 나무 꼭대기뿐이다."
              },
              "temporal_scope": "persistent_site"
            },
            {
              "code": "B2",
              "kind": "branch",
              "name_en": "prominent massive canopy branch",
              "placement_en": "Projects through the upper canopy on the forest side of the cliffside airspace and is surrounded by other branches and leaves.",
              "inferred": false,
              "evidence": {
                "scene_index": 1,
                "quote_ko": "두 사람이 거대한 나뭇가지에 충돌하듯 착지한다. 가지가 휘어지지만 부러지지 않는다."
              },
              "temporal_scope": "persistent_site"
            },
            {
              "code": "B3",
              "kind": "branches",
              "name_en": "interlaced upper branch network",
              "placement_en": "Occupies the upper forest level around the prominent massive canopy branch, creating enclosed spaces among multiple branches.",
              "inferred": false,
              "evidence": {
                "scene_index": 4,
                "quote_ko": "과하게 높이 솟아 나뭇가지 사이에 거꾸로 처박힌다."
              },
              "temporal_scope": "persistent_site"
            },
            {
              "code": "B4",
              "kind": "tree",
              "name_en": "broad screening tree trunk",
              "placement_en": "Rises from the forest floor into the canopy and provides a screened ground-side area directly behind its trunk.",
              "inferred": false,
              "evidence": {
                "scene_index": 2,
                "quote_ko": "윌마가 토니를 나무 뒤로 끌어당긴다."
              },
              "temporal_scope": "persistent_site"
            },
            {
              "code": "C1",
              "kind": "ground",
              "name_en": "ridge forest floor",
              "placement_en": "Extends beneath the canopy and tree trunks and adjoins the sloping forest ground.",
              "inferred": false,
              "evidence": {
                "scene_index": 3,
                "quote_ko": "S3. EXT. 숲 바닥 — 잠시 후"
              },
              "temporal_scope": "persistent_site"
            },
            {
              "code": "C2",
              "kind": "moss",
              "name_en": "gray moss growth on tree bark",
              "placement_en": "Grows directly on tree bark within the forest interior near the forest-floor zone.",
              "inferred": false,
              "evidence": {
                "scene_index": 2,
                "quote_ko": "윌마는 나무껍질에 붙은 회색 이끼를 떼어 벨트와 총에 문지른다."
              },
              "temporal_scope": "persistent_site"
            },
            {
              "code": "D1",
              "kind": "slope",
              "name_en": "sloping forest ground",
              "placement_en": "Continues from the ridge forest floor as an inclined section beneath the trees, with the prominent upper-slope rock above the moss-covered ground patch.",
              "inferred": false,
              "evidence": {
                "scene_index": 4,
                "quote_ko": "S4. EXT. 경사진 숲 — 연속"
              },
              "temporal_scope": "persistent_site"
            },
            {
              "code": "D2",
              "kind": "rock",
              "name_en": "prominent upper-slope rock",
              "placement_en": "Stands on the higher part of the sloping forest ground above the lower moss-covered ground patch.",
              "inferred": false,
              "evidence": {
                "scene_index": 4,
                "quote_ko": "윌마가 가볍게 도약해 십여 미터 위 바위에 선다."
              },
              "temporal_scope": "persistent_site"
            },
            {
              "code": "D3",
              "kind": "moss",
              "name_en": "lower-slope moss-covered ground patch",
              "placement_en": "Occupies a lower portion of the sloping forest ground beneath the prominent upper-slope rock.",
              "inferred": false,
              "evidence": {
                "scene_index": 4,
                "quote_ko": "토니는 낮게 날지만 이끼밭을 길게 구른다."
              },
              "temporal_scope": "persistent_site"
            }
          ],
          "excluded_transient_elements": [
            {
              "name_en": "cleanly erased section of the cliff edge",
              "reason_en": "The missing section is created by a beam during the scene and is therefore dependent on a specific event rather than invariant site geography.",
              "evidence": {
                "scene_index": 1,
                "quote_ko": "멀리서 창백한 삭제광선이 절벽의 가장자리를 깨끗하게 지운다."
              }
            },
            {
              "name_en": "temporarily flexed state of the massive branch",
              "reason_en": "The branch is persistent, but its bent condition is a temporary response to impact and is not a site marker.",
              "evidence": {
                "scene_index": 1,
                "quote_ko": "가지가 휘어지지만 부러지지 않는다."
              }
            },
            {
              "name_en": "vacuum-generated wind across the forest",
              "reason_en": "This is a momentary atmospheric effect caused by the deletion event, not a persistent physical feature.",
              "evidence": {
                "scene_index": 1,
                "quote_ko": "진공이 만든 돌풍이 숲을 덮친다."
              }
            },
            {
              "name_en": "descending search probes",
              "reason_en": "The probes are mobile surveillance devices present only during the search and cannot serve as persistent site markers.",
              "evidence": {
                "scene_index": 2,
                "quote_ko": "하늘에서 세 개의 작은 빛점이 갈라져 내려온다. 탐색 침이다."
              }
            },
            {
              "name_en": "moss transferred from bark onto equipment",
              "reason_en": "Moss growing on the bark is admitted as a persistent feature, but the removed and transferred material exists only through a specific action.",
              "evidence": {
                "scene_index": 2,
                "quote_ko": "윌마는 나무껍질에 붙은 회색 이끼를 떼어 벨트와 총에 문지른다."
              }
            },
            {
              "name_en": "characters and their carried or worn equipment",
              "reason_en": "People, jumper belts, weights, weapons, the phone, and its pouch move between positions and are not persistent components of the site.",
              "evidence": {
                "scene_index": 3,
                "quote_ko": "토니가 벨트를 살핀다. 안쪽에 납작한 검은 판과 무거운 은색 추가 겹쳐 있다."
              }
            },
            {
              "name_en": "temporary entrapment among branches",
              "reason_en": "The branch network is persistent, but a person being caught within it is an event-specific state.",
              "evidence": {
                "scene_index": 4,
                "quote_ko": "과하게 높이 솟아 나뭇가지 사이에 거꾸로 처박힌다."
              }
            }
          ]
        },
        "attempts": 1,
        "outdoor_loc_ids": [
          "L04",
          "L05",
          "L06"
        ],
        "scene_indices": [
          1,
          2,
          3,
          4
        ]
      },
      "bg_forest_valley": {
        "skipped": "no scenes mapped to outdoor locs",
        "outdoor_loc_ids": [
          "L07"
        ]
      },
      "bg_ruined_stadium": {
        "spec": {
          "layout_narration_en": "The site is a forested ridge enclosing a half-buried baseball stadium ruin. Movement into the site begins in the outer forest, where the massive concrete curve becomes visible through the foliage and defines the stadium perimeter. The ruined seating area lies within the stadium footprint along the inner side of this curved structure. A separate stadium-edge position holds the root-torn scoreboard, with its surviving lettered face oriented toward the seating side in the conventional relationship of a baseball stadium. Forest growth surrounds and penetrates the stadium footprint, so the outer forest, perimeter curve, seating remains, and scoreboard position read as connected parts of one overgrown ruin.",
          "zone_labels_en": [
            "Outer Forest",
            "Stadium Perimeter Ruin",
            "Ruined Seating Area"
          ],
          "items": [
            {
              "code": "F1",
              "kind": "forest",
              "name_en": "Forest surrounding the half-buried stadium ruin",
              "placement_en": "Surrounds the stadium footprint across the ridge and forms the exterior approach to the exposed concrete curve.",
              "inferred": false,
              "evidence": {
                "scene_index": 5,
                "quote_ko": "두 사람이 나란히, 이제는 리듬을 맞춰 숲을 건넌다."
              },
              "temporal_scope": "persistent_site"
            },
            {
              "code": "P1",
              "kind": "stadium",
              "name_en": "Half-buried baseball stadium ruin",
              "placement_en": "Occupies the central ruin footprint within the surrounding forest, with its surviving perimeter structure and seating remains partly embedded in the forested ground.",
              "inferred": false,
              "evidence": {
                "scene_index": 5,
                "quote_ko": "숲에 반쯤 파묻힌 야구 경기장."
              },
              "temporal_scope": "persistent_site"
            },
            {
              "code": "P2",
              "kind": "structure",
              "name_en": "Massive curved concrete stadium structure",
              "placement_en": "Forms the prominent curved perimeter of the stadium ruin and emerges from the surrounding forest beside the outer approach zone.",
              "inferred": false,
              "evidence": {
                "scene_index": 5,
                "quote_ko": "나뭇잎 사이로 거대한 콘크리트 곡선이 드러난다."
              },
              "temporal_scope": "persistent_site"
            },
            {
              "code": "P3",
              "kind": "scoreboard",
              "name_en": "Root-torn scoreboard with surviving ANTON RAILRIDERS lettering",
              "placement_en": "Occupies a separate edge of the stadium footprint from the ruined seating area, with its lettered face oriented toward the seating side and its structure penetrated by tree roots.",
              "inferred": false,
              "evidence": {
                "scene_index": 5,
                "quote_ko": "전광판은 나무뿌리에 찢겼다. 희미한 글자 일부가 남아 있다. ...ANTON RAILRIDERS"
              },
              "temporal_scope": "persistent_site"
            },
            {
              "code": "S1",
              "kind": "seating",
              "name_en": "Cracked stadium seating remains",
              "placement_en": "Occupies the ruined seating area inside the stadium footprint, adjoining the inner side of the curved concrete stadium structure.",
              "inferred": false,
              "evidence": {
                "scene_index": 5,
                "quote_ko": "토니가 관중석의 금 간 의자를 손으로 쓸어본다."
              },
              "temporal_scope": "persistent_site"
            }
          ],
          "excluded_transient_elements": [
            {
              "name_en": "Detached old stadium seat placed beneath a tree",
              "reason_en": "The seat is removed and repositioned during the scene, so its detached placement depends on a specific action and is not a persistent site marker.",
              "evidence": {
                "scene_index": 5,
                "quote_ko": "윌마가 낡은 좌석 하나를 뽑아 나무 아래 세운다."
              }
            },
            {
              "name_en": "Tony and Wilma",
              "reason_en": "The two people are temporary occupants moving through the site rather than persistent physical elements of the location.",
              "evidence": {
                "scene_index": 5,
                "quote_ko": "두 사람이 나란히, 이제는 리듬을 맞춰 숲을 건넌다."
              }
            },
            {
              "name_en": "Distant metal scraping sound",
              "reason_en": "This is a momentary auditory event with no persistent physical source identified in the scene text.",
              "evidence": {
                "scene_index": 5,
                "quote_ko": "그 순간, 멀리서 금속이 나무를 긁는 소리."
              }
            },
            {
              "name_en": "Afternoon sunlight",
              "reason_en": "The illumination belongs to the scene's temporary time-of-day condition rather than the persistent site layout.",
              "evidence": {
                "scene_index": 5,
                "quote_ko": "S5. EXT. 폐허 능선 — 오후"
              }
            }
          ]
        },
        "attempts": 1,
        "outdoor_loc_ids": [
          "L08"
        ],
        "scene_indices": [
          5
        ]
      },
      "bg_mountain_canyon": {
        "spec": {
          "layout_narration_en": "The canyon approach occupies the near side of the site and terminates at the near edge of an open canyon chasm. A tree beside the canyonward portion of the approach provides a fixed vertical landmark near that edge. The open canyon airspace extends between the approach side and the opposite cliff. Across the chasm, the top of the opposite cliff forms the far-side ground toward which the canyon-spanning trajectory descends. A forest directly adjoins the landward side of that cliff-top ground, allowing movement from the exposed rim into the trees.",
          "zone_labels_en": [
            "Canyon Approach Zone",
            "Open Canyon Airspace",
            "Opposite Cliff Rim and Forest Edge"
          ],
          "items": [
            {
              "code": "A1",
              "kind": "approach",
              "name_en": "canyon approach route",
              "placement_en": "Occupies the near-side ground and leads to the near edge of the open canyon chasm.",
              "inferred": false,
              "evidence": {
                "scene_index": 6,
                "quote_ko": "EXT. 협곡 접근로"
              },
              "temporal_scope": "persistent_site"
            },
            {
              "code": "A2",
              "kind": "tree",
              "name_en": "canyon-edge tree beside the approach",
              "placement_en": "Stands beside the canyonward portion of the canyon approach, near the near edge of the chasm.",
              "inferred": false,
              "evidence": {
                "scene_index": 6,
                "quote_ko": "윌마가 나무를 박차고 날아올라"
              },
              "temporal_scope": "persistent_site"
            },
            {
              "code": "C1",
              "kind": "canyon",
              "name_en": "open canyon chasm",
              "placement_en": "Separates the canyon approach from the opposite cliff and provides open airspace above its depth.",
              "inferred": false,
              "evidence": {
                "scene_index": 6,
                "quote_ko": "협곡 위, 붙잡을 곳이 없다."
              },
              "temporal_scope": "persistent_site"
            },
            {
              "code": "O1",
              "kind": "cliff",
              "name_en": "opposite cliff and its rim",
              "placement_en": "Forms the far side of the open canyon chasm, with cliff-top ground above the canyon wall and across from the approach.",
              "inferred": false,
              "evidence": {
                "scene_index": 6,
                "quote_ko": "절벽 위에서 러스크가 모습을 드러낸다."
              },
              "temporal_scope": "persistent_site"
            },
            {
              "code": "O2",
              "kind": "forest",
              "name_en": "forest adjoining the opposite cliff rim",
              "placement_en": "Directly adjoins the landward side of the opposite cliff-top ground, behind the exposed rim.",
              "inferred": false,
              "evidence": {
                "scene_index": 6,
                "quote_ko": "러스크는 뒤로 물러나 숲속으로 사라진다."
              },
              "temporal_scope": "persistent_site"
            }
          ],
          "excluded_transient_elements": [
            {
              "name_en": "three jumper landing impressions",
              "reason_en": "These are activity-dependent ground traces, including one identified as fresh, rather than time-invariant site structures.",
              "evidence": {
                "scene_index": 6,
                "quote_ko": "점퍼 착지 흔적 세 개. 하나는 새것이다."
              }
            },
            {
              "name_en": "projectile-created rock breakage and loose debris",
              "reason_en": "The altered rock and resulting debris are consequences of the specific projectile impact and are not established as permanent site markers.",
              "evidence": {
                "scene_index": 6,
                "quote_ko": "탄자가 그 사이 바위를 터뜨린다."
              }
            },
            {
              "name_en": "dropped silver belt weights",
              "reason_en": "The weights detach from a character's equipment during the action and are movable props rather than persistent site elements.",
              "evidence": {
                "scene_index": 6,
                "quote_ko": "토니의 벨트에서 은색 추 하나가 떨어진다."
              }
            },
            {
              "name_en": "detached signal transmitter",
              "reason_en": "The transmitter is torn from a character and falls into the canyon during this moment; it is not a fixed part of the location.",
              "evidence": {
                "scene_index": 6,
                "quote_ko": "송신기가 뜯겨 협곡 아래로 떨어진다."
              }
            },
            {
              "name_en": "rescue rope and grappling hook",
              "reason_en": "The rope and hook are deployed portable equipment used only during the action, not permanent fixtures of the site.",
              "evidence": {
                "scene_index": 6,
                "quote_ko": "토니가 구조용 로프를 던진다. 갈고리가 러스크의 송신기에 걸린다."
              }
            },
            {
              "name_en": "rocket-pistol projectile",
              "reason_en": "The projectile is a moving action element that crosses the site only during the firing event.",
              "evidence": {
                "scene_index": 6,
                "quote_ko": "탄자가 그 사이 바위를 터뜨린다."
              }
            }
          ]
        },
        "attempts": 1,
        "outdoor_loc_ids": [
          "L09"
        ],
        "scene_indices": [
          6
        ]
      },
      "bg_mountain_outpost": {
        "spec": {
          "layout_narration_en": "The site follows a direct exterior-to-interior sequence. An exterior standing and approach area adjoins a natural rock wall. A concealed entrance occupies part of that wall and forms the threshold between the exterior ground and a small underground cellar immediately behind the rock face. Inside the cellar, a round communication panel is fixed to a wall, while a ceiling-mounted map occupies the overhead plane. The entrance, cellar, wall panel, and ceiling map form one integrated contact-post structure embedded in the mountain terrain.",
          "zone_labels_en": [
            "Rock-Wall Exterior",
            "Concealed Entrance Threshold",
            "Underground Cellar"
          ],
          "items": [
            {
              "code": "A1",
              "kind": "approach",
              "name_en": "exterior standing area before the concealed entrance",
              "placement_en": "Directly adjoins the natural rock wall and provides the exterior access surface in front of the concealed entrance.",
              "inferred": true,
              "evidence": null,
              "temporal_scope": "persistent_site"
            },
            {
              "code": "A2",
              "kind": "rock wall",
              "name_en": "natural rock wall surrounding the concealed entrance",
              "placement_en": "Forms the mountain-facing frontage of the site, with the concealed entrance integrated into part of its surface and the underground cellar behind it.",
              "inferred": false,
              "evidence": {
                "scene_index": 7,
                "quote_ko": "평범한 바위벽 앞."
              },
              "temporal_scope": "persistent_site"
            },
            {
              "code": "B1",
              "kind": "entrance",
              "name_en": "concealed rock-surface entrance to the underground cellar",
              "placement_en": "Occupies part of the natural rock wall and connects the exterior standing area directly to the underground cellar behind the rock face.",
              "inferred": false,
              "evidence": {
                "scene_index": 7,
                "quote_ko": "바위 표면이 소리 없이 열리며 작은 지하실이 드러난다."
              },
              "temporal_scope": "persistent_site"
            },
            {
              "code": "C1",
              "kind": "chamber",
              "name_en": "small underground contact-post cellar",
              "placement_en": "Lies immediately behind the concealed rock-surface entrance and contains the wall-mounted communication panel and the ceiling-mounted map.",
              "inferred": false,
              "evidence": {
                "scene_index": 7,
                "quote_ko": "바위 표면이 소리 없이 열리며 작은 지하실이 드러난다."
              },
              "temporal_scope": "persistent_site"
            },
            {
              "code": "C2",
              "kind": "panel",
              "name_en": "round communication panel on the cellar wall",
              "placement_en": "Fixed to a wall within the small underground cellar.",
              "inferred": false,
              "evidence": {
                "scene_index": 7,
                "quote_ko": "접촉소 벽의 둥근 통신판이 저절로 켜진다."
              },
              "temporal_scope": "persistent_site"
            },
            {
              "code": "C3",
              "kind": "map",
              "name_en": "ceiling-mounted contact-post map",
              "placement_en": "Fixed overhead on the ceiling of the small underground cellar.",
              "inferred": false,
              "evidence": {
                "scene_index": 7,
                "quote_ko": "천장 지도에 붉은 점들이 켜진다."
              },
              "temporal_scope": "persistent_site"
            }
          ],
          "excluded_transient_elements": [
            {
              "name_en": "opened state of the concealed entrance",
              "reason_en": "The open configuration occurs during the scene and is not a time-invariant site marker; the permanent entrance structure is retained separately.",
              "evidence": {
                "scene_index": 7,
                "quote_ko": "바위 표면이 소리 없이 열리며 작은 지하실이 드러난다."
              }
            },
            {
              "name_en": "people and carried rifle",
              "reason_en": "The occupants and carried weapon are movable scene-specific elements rather than persistent parts of the site.",
              "evidence": {
                "scene_index": 7,
                "quote_ko": "안쪽의 앨런이 장총을 겨눈다."
              }
            },
            {
              "name_en": "active communication-panel warning",
              "reason_en": "The displayed warning is temporary interface content; only the fixed communication panel is retained as a marker.",
              "evidence": {
                "scene_index": 7,
                "quote_ko": "UNAUTHORIZED LEGACY AUTHORITY DETECTED"
              }
            },
            {
              "name_en": "illuminated red map points",
              "reason_en": "The red points are temporary activated display content; only the fixed ceiling map is retained as a marker.",
              "evidence": {
                "scene_index": 7,
                "quote_ko": "천장 지도에 붉은 점들이 켜진다."
              }
            },
            {
              "name_en": "waterproof pouch and mobile phone",
              "reason_en": "These are portable personal objects and do not persist as site elements.",
              "evidence": {
                "scene_index": 7,
                "quote_ko": "토니의 방수 주머니 안에서 꺼진 휴대폰이 한 번 진동한다."
              }
            },
            {
              "name_en": "twilight illumination",
              "reason_en": "Twilight is a time-dependent lighting condition rather than a persistent physical feature of the site.",
              "evidence": {
                "scene_index": 7,
                "quote_ko": "S7. EXT. 산악 접촉소 — 황혼 (05:15–06:00)"
              }
            }
          ]
        },
        "attempts": 1,
        "outdoor_loc_ids": [
          "L10"
        ],
        "scene_indices": [
          7
        ]
      }
    }
  },
  "step_id": "outdoor_place_spec",
  "run_id": "84c184ab-4866-42b7-96e0-db98ba62b1ba",
  "resolved_model": "gpt",
  "updated_at": "2026-09-04T21:53:07.541353+00:00",
  "project_config_snapshot": {}
}