{
  "status": "completed",
  "applicable_count": 1,
  "completed_count": 1,
  "failed_count": 0,
  "schema_version": 2,
  "config_hash": "074ecec520ec7eec",
  "data": {
    "groups": {
      "bg_laundry_shop": {
        "spec": {
          "layout_narration_en": "A narrow exterior alley passage runs directly past the laundry-shop doorway. A water-stained wall forms one long side of the passage, while a fixed opposing boundary completes the confined alley corridor. The doorway is set into the opposing side and opens directly onto the alley. One end of the passage functions as the alley egress, allowing movement from the laundry frontage into the adjoining access beyond the site.",
          "zone_labels_en": [
            "Laundry Shop Doorway Zone",
            "Narrow Alley Zone"
          ],
          "items": [
            {
              "code": "D1",
              "kind": "entrance",
              "name_en": "laundry-shop alley doorway",
              "placement_en": "Set into one side of the narrow alley and opening directly onto the exterior passage.",
              "inferred": false,
              "evidence": {
                "scene_index": 2,
                "quote_ko": "정순은 문 앞에 서서 그 뒷모습을 본다."
              },
              "temporal_scope": "persistent_site"
            },
            {
              "code": "A1",
              "kind": "alley",
              "name_en": "narrow laundry-front alley passage",
              "placement_en": "Runs directly along the laundry-shop doorway between the alley's fixed side boundaries and continues toward the alley egress.",
              "inferred": false,
              "evidence": {
                "scene_index": 2,
                "quote_ko": "좁은 골목에 빗물이 고여 있다."
              },
              "temporal_scope": "persistent_site"
            },
            {
              "code": "A2",
              "kind": "wall",
              "name_en": "water-stained alley boundary wall",
              "placement_en": "Borders one long side of the narrow alley passage opposite the passage's other fixed edge.",
              "inferred": false,
              "evidence": {
                "scene_index": 2,
                "quote_ko": "담벼락에 물때가 올라 있다."
              },
              "temporal_scope": "persistent_site"
            },
            {
              "code": "A3",
              "kind": "boundary",
              "name_en": "opposing fixed alley boundary",
              "placement_en": "Borders the side of the narrow passage opposite the water-stained wall and contains the laundry-shop alley doorway.",
              "inferred": true,
              "evidence": null,
              "temporal_scope": "persistent_site"
            },
            {
              "code": "A4",
              "kind": "approach",
              "name_en": "narrow alley egress",
              "placement_en": "Occupies one end of the narrow alley passage and connects the laundry frontage passage to access beyond the site.",
              "inferred": false,
              "evidence": {
                "scene_index": 2,
                "quote_ko": "태욱이 노란 우산을 펴고 골목을 빠져나간다."
              },
              "temporal_scope": "persistent_site"
            }
          ],
          "excluded_transient_elements": [
            {
              "name_en": "pooled rainwater",
              "reason_en": "Rainwater collected on the alley floor is a temporary weather-dependent condition rather than a persistent site element.",
              "evidence": {
                "scene_index": 2,
                "quote_ko": "좁은 골목에 빗물이 고여 있다."
              }
            },
            {
              "name_en": "yellow umbrella",
              "reason_en": "The umbrella is a movable prop present only during the depicted action.",
              "evidence": {
                "scene_index": 2,
                "quote_ko": "태욱이 노란 우산을 펴고 골목을 빠져나간다."
              }
            },
            {
              "name_en": "ironed shirt",
              "reason_en": "The shirt is a hand-carried movable prop rather than part of the permanent location.",
              "evidence": {
                "scene_index": 2,
                "quote_ko": "손에는 다림질하던 셔츠가 그대로 들려 있다."
              }
            },
            {
              "name_en": "people at the doorway and in the alley",
              "reason_en": "The people and their positions belong to the scene's momentary action and are not persistent site markers.",
              "evidence": {
                "scene_index": 2,
                "quote_ko": "정순은 문 앞에 서서 그 뒷모습을 본다."
              }
            }
          ]
        },
        "attempts": 1,
        "outdoor_loc_ids": [
          "L02"
        ],
        "scene_indices": [
          2
        ]
      }
    }
  },
  "step_id": "outdoor_place_spec",
  "run_id": "6d19828c-b82f-499f-a6a0-e42458da0f8a",
  "resolved_model": "gpt",
  "updated_at": "2026-09-04T10:29:01.804391+00:00",
  "project_config_snapshot": {}
}