{
  "status": "completed",
  "applicable_count": 4,
  "completed_count": 4,
  "failed_count": 0,
  "schema_version": 1,
  "config_hash": "5fd2f989362d936a",
  "data": {
    "groups": {
      "bg_rooftop_unit": {
        "status": "ok",
        "spaces": [
          "옥상 외부 마당",
          "현관",
          "거실 겸 주방",
          "안방",
          "작은 침실",
          "욕실"
        ],
        "validation": {
          "fails": [],
          "warnings": [
            "uncertain: 옥탑방 내부의 정확한 평면 배열 (거실, 안방, 작은 침실, 욕실이 별도 공간이라는 증거는 충분하지만, 각 방문의 상대 위치와 복도 유무는 명시되지 않았다.)",
            "uncertain: 옥탑 접근 계단의 정확한 구조 (계단 존재는 명확하지만 내부 계단인지 외부 노출 계단인지 완전히 특정되지는 않는다. 다만 오래된 빌라 옥탑 접근로의 현실 기본으로 좁은 노출/반노출 계단 성격이 강하다.)",
            "uncertain: 안방 외기 창 (직접 언급은 없지만 외벽에 면한 주거 침실의 현실 기본 채광·환기 개구부로 보수적으로 포함했다. 만약 안방이 완전 내측에 배치된다면 조정 필요.)",
            "uncertain: 욕실 환기 창 (직접 언급은 없지만 소형 주거 욕실의 외기 환기 또는 환풍 개구부가 현실 기본이다. 외벽에 면하지 않는 배치라면 환풍기로 대체될 수 있다.)",
            "uncertain: 담벼락과 고양이 위치가 옥상 난간인지 인접 담인지 (S#17에서 고양이가 담을 넘는다고만 되어 있어 옥탑 옥상 경계 담인지 인접 건물 담인지 확정하기 어렵다.)"
          ],
          "independent_spaces": 6,
          "separate_space_evidence": 6
        },
        "frame_checks": {
          "indoor": {
            "frame_preserved": true,
            "frame_doors_first": 4,
            "frame_doors_second": 4,
            "frame_windows_first": 4,
            "frame_windows_second": 4,
            "rooms_first": 4,
            "rooms_second": 4,
            "changed_frame_elements": [],
            "verdict": "벽·문·창·방 구성과 출입/연결 관계가 동일하게 보존되었고, 추가된 요소는 가구/설비 및 장식뿐입니다."
          }
        },
        "plates": {
          "옥상 외부 마당": {
            "status": "ok",
            "kind": "outdoor_t2i",
            "png": "bg_space1.png",
            "key": "space1",
            "num": 1,
            "reference": "single_t2i (FP 미경유)",
            "enclosure": "open_air"
          },
          "거실 겸 주방": {
            "status": "ok",
            "kind": "marked_indoor",
            "png": "bg_space2.png",
            "key": "space2",
            "num": 2,
            "reference": "marked_fp:#2",
            "enclosure": "enclosed"
          },
          "안방": {
            "status": "ok",
            "kind": "marked_indoor",
            "png": "bg_space3.png",
            "key": "space3",
            "num": 3,
            "reference": "marked_fp:#3",
            "enclosure": "enclosed"
          },
          "작은 침실": {
            "status": "ok",
            "kind": "marked_indoor",
            "png": "bg_space4.png",
            "key": "space4",
            "num": 4,
            "reference": "marked_fp:#4",
            "enclosure": "enclosed"
          },
          "욕실": {
            "status": "ok",
            "kind": "marked_indoor",
            "png": "bg_space5.png",
            "key": "space5",
            "num": 5,
            "reference": "marked_fp:#5",
            "enclosure": "enclosed"
          }
        },
        "connectors": [
          {
            "room": "현관",
            "enclosure": "threshold",
            "role": "entry connector (no plate)",
            "view": "Wide establishing view from just inside the closed metal entrance door with the camera backed against it, looking inward so the door itself is not visible, capturing the entire tiny entry threshold in one frame. The narrow shoe-removal floor area or slight step-down, worn low-cost walls, damp scuffed finishes, small entry light, and old lock hardware area implied behind camera define this practical rooftop-house transition space. Ahead, the only visible opening is the simple passage into the living room-kitchen, with no extra side corridors or invented doors."
          }
        ],
        "descs": {
          "whole": "A small rooftop dwelling on an old low-rise Korean multifamily building, with a weathered concrete roof yard, low parapet walls, a plastic water tank, laundry lines, and a low wooden or metal platform set against a visibly mismatched lightweight rooftop addition of faded panels, thin masonry, and a metal door. Inside, the compact 2020s Korean rooftop home has a narrow entry, a combined living room, kitchen, and dining area with low ceilings, worn wallpaper, a small straight-line sink and cooktop, a modest table, chairs, TV, and dim household lamp, all arranged tightly in humid gray-blue and dull green tones under practical fluorescent or weak warm lighting. The bedrooms and tiny bathroom are plain and cramped, with simple partitions, small windows, curtains, basic beds, a small basin, mirror, toilet, waterproof floor drain, and cheap tile or waterproof panels, emphasizing aged concrete, rusted metal, peeling finishes, and low-cost everyday realism.",
          "indoor": "A cramped rooftop dwelling interior in a modest 2020s Korean multi-family villa, built as a low-cost add-on with thin masonry or lightweight panel walls, a metal entry door, low ceilings, worn wallpaper, small practical windows, and visibly cheap, slightly damp finishes. The main room compresses living, dining, and kitchen functions into one space: a narrow straight-line sink and cooktop along the wall, a small family table with chairs, a domestic TV, and a dim floor lamp under cool fluorescent and muted household lighting. The bedrooms are small and plain with simple doors, modest beds and curtains, while the tiny bathroom has waterproof tile or panels, a compact sink, mirror, toilet, floor drain, and no large tub or separate shower booth, all in gray-blue, faded beige, rusty metal, and damp concrete tones.",
          "outdoor": "An open-air rooftop yard on an aging low-rise multi-family apartment building in a contemporary working-class Korean coastal city, with worn waterproof concrete flooring, low parapet walls, damp gray-blue tones, rusted metal details, and practical rooftop fixtures such as a plastic water tank, tied laundry lines, and a low wooden or metal platform.  \nThe original rooftop concrete and the later lightweight rooftop dwelling meet visibly: faded sandwich-panel or thin masonry exterior walls, small plain windows, a cheap metal entrance door, and low-cost bathroom vent openings look weathered by moisture and wind."
        },
        "assets_dir": "/Users/manta/Documents/Projects/TheRoad-I1/projects/703e84ed-4ad1-46a5-893a-543be35adc7d/checkpoints/episodes/b4aac19e-e617-4e99-a171-eda48248251d/space_set_bg/assets/bg_rooftop_unit",
        "shot_plate_map": {
          "4_1": {
            "space": "옥상 외부 마당",
            "plate_key": "space1",
            "plate_png": "bg_space1.png",
            "plate_kind": "outdoor_t2i",
            "shot_id": "S4_Shot1",
            "basis": "낡은 빌라 옥탑방의 외관을 내려다보는 부감 쇼트로, 목록 중 옥탑 외부를 포괄하는 공간은 옥상 외부 마당뿐이다.",
            "plate_action": "reuse_base"
          },
          "5_1": {
            "space": "거실 겸 주방",
            "plate_key": "space2",
            "plate_png": "bg_space2.png",
            "plate_kind": "marked_indoor",
            "shot_id": "S5_Shot1",
            "basis": "거실의 작은 창, 켜진 TV, 민숙이 TV를 바라보는 묘사가 거실 겸 주방의 TV와 공용 공간 증거와 일치한다.",
            "plate_action": "reuse_base"
          },
          "10_2": {
            "space": "옥상 외부 마당",
            "plate_key": "space1",
            "plate_png": "bg_derived_10_2.png",
            "plate_kind": "outdoor_t2i",
            "shot_id": "S10_Shot2",
            "basis": "낯선 남자가 옥탑방 철문 현관 앞에 서 있지만 카메라는 문 앞 외부 옥상에 머무는 것으로 묘사된다.",
            "plate_action": "derive_from_base",
            "derive_instruction": "Move the camera from the rooftop yard base position to the area directly facing the rooftop entrance door. Frame the door threshold and the adjacent rooftop floor tightly so the doorway dominates the view.",
            "canonical_plate_key": "space1",
            "canonical_plate_png": "bg_space1.png",
            "secondary_spaces": [
              "현관"
            ]
          },
          "10_5": {
            "space": "옥상 외부 마당",
            "plate_key": "space1",
            "plate_png": "bg_derived_10_5.png",
            "plate_kind": "outdoor_t2i",
            "shot_id": "S10_Shot5",
            "basis": "어두운 창문 유리에 비친 실루엣을 보는 구도이므로 주 시점은 창문 바깥 옥상 외부 쪽이다.",
            "plate_action": "derive_from_base",
            "derive_instruction": "Shift the camera close to the exterior side of the rooftop room window. Fill the frame with the dark window glass surface and its reflected interior-facing darkness.",
            "canonical_plate_key": "space1",
            "canonical_plate_png": "bg_space1.png",
            "secondary_spaces": [
              "거실 겸 주방"
            ]
          },
          "11_4": {
            "space": "옥상 외부 마당",
            "plate_key": "space1",
            "plate_png": "bg_space1.png",
            "plate_kind": "outdoor_t2i",
            "shot_id": "S11_Shot4",
            "basis": "옥상 바닥에 두 발을 딛고 반쯤 열린 현관 철문을 바라보는 장면으로 옥상 외부가 주 공간이다.",
            "plate_action": "reuse_base",
            "secondary_spaces": [
              "현관"
            ]
          },
          "12_9": {
            "space": "작은 침실",
            "plate_key": "space4",
            "plate_png": "bg_derived_12_9.png",
            "plate_kind": "marked_indoor",
            "shot_id": "S12_Shot9",
            "basis": "수리영 방의 커튼 뒤에서 민숙의 시신을 발견하는 장면이므로 작은 침실이다.",
            "plate_action": "derive_from_base",
            "derive_instruction": "Move the camera inside the small bedroom toward the curtained window area. Frame the opened curtain and the dark floor area immediately behind it so that this corner fills the shot.",
            "canonical_plate_key": "space4",
            "canonical_plate_png": "bg_space4.png"
          },
          "12_18": {
            "space": "작은 침실",
            "plate_key": "space4",
            "plate_png": "bg_derived_12_18.png",
            "plate_kind": "marked_indoor",
            "shot_id": "S12_Shot18",
            "basis": "침대 위 벽에 붉은 원이 생긴다는 묘사와 작은 침실의 침대·벽면 증거가 일치한다.",
            "plate_action": "derive_from_base",
            "derive_instruction": "Move the camera toward the wall above the bed in the small bedroom. Fill the frame with the upper wall surface over the bed.",
            "canonical_plate_key": "space4",
            "canonical_plate_png": "bg_space4.png"
          },
          "14_4": {
            "space": "작은 침실",
            "plate_key": "space4",
            "plate_png": "bg_space4.png",
            "plate_kind": "marked_indoor",
            "shot_id": "S14_Shot4",
            "basis": "수리영 방 안이 지나치게 깨끗하게 정돈되어 있다는 묘사와 빈 방 쇼트가 직접 일치한다.",
            "plate_action": "reuse_base"
          },
          "14_5": {
            "space": "작은 침실",
            "plate_key": "space4",
            "plate_png": "bg_space4.png",
            "plate_kind": "marked_indoor",
            "shot_id": "S14_Shot5",
            "basis": "아무것도 없는 방을 보는 수리영의 표정으로, 직전의 수리영 방 안 확인 장면에 속한다.",
            "plate_action": "reuse_base"
          },
          "14_11": {
            "space": "작은 침실",
            "plate_key": "space4",
            "plate_png": "bg_derived_14_11.png",
            "plate_kind": "marked_indoor",
            "shot_id": "S14_Shot11",
            "basis": "방 한구석의 백팩과 인형 클로즈업은 수리영 방 안에 놓인 물건들의 위치 변화 묘사에 해당한다.",
            "plate_action": "derive_from_base",
            "derive_instruction": "Move the camera to a low, tight angle toward one corner of the small bedroom. Frame the corner floor and adjacent wall area closely so small objects placed there would dominate the shot.",
            "canonical_plate_key": "space4",
            "canonical_plate_png": "bg_space4.png"
          },
          "17_1": {
            "space": "옥상 외부 마당",
            "plate_key": "space1",
            "plate_png": "bg_derived_17_1.png",
            "plate_kind": "outdoor_t2i",
            "shot_id": "S17_Shot1",
            "basis": "담벼락 위 고양이가 불 켜진 옥탑방 창문을 바라보는 외부 새벽 장면으로 옥상 외부가 가장 근접한 공간이다.",
            "plate_action": "derive_from_base",
            "derive_instruction": "Move the camera to the rooftop boundary wall area and aim back toward the lit rooftop room window. Keep the wall edge and the exterior window line within the frame.",
            "canonical_plate_key": "space1",
            "canonical_plate_png": "bg_space1.png"
          },
          "18_10": {
            "space": "욕실",
            "plate_key": "space5",
            "plate_png": "bg_derived_18_10.png",
            "plate_kind": "marked_indoor",
            "shot_id": "S18_Shot10",
            "basis": "욕실 거울에 비친 뒷벽의 붉은 원이라는 묘사가 욕실 거울과 벽 설비와 직접 일치한다.",
            "plate_action": "derive_from_base",
            "derive_instruction": "Move the camera close to the bathroom mirror above the sink. Frame the mirror surface so the reflected rear bathroom wall fills most of the image.",
            "canonical_plate_key": "space5",
            "canonical_plate_png": "bg_space5.png"
          },
          "25_3": {
            "space": "거실 겸 주방",
            "plate_key": "space2",
            "plate_png": "bg_space2.png",
            "plate_kind": "marked_indoor",
            "shot_id": "S25_Shot3",
            "basis": "집안이 헤집히고 거실 창과 식탁 의자가 언급된 뒤 거실 입구에 선 수리영의 상체로 묘사된다.",
            "plate_action": "reuse_base",
            "secondary_spaces": [
              "작은 침실"
            ]
          },
          "25_5": {
            "space": "작은 침실",
            "plate_key": "space4",
            "plate_png": "bg_derived_25_5.png",
            "plate_kind": "marked_indoor",
            "shot_id": "S25_Shot5",
            "basis": "수리영 방의 어두운 방 안쪽 벽면 중앙에 붉은 원이 그려져 있다는 묘사와 일치한다.",
            "plate_action": "derive_from_base",
            "derive_instruction": "Move the camera into the small bedroom and face the inner wall directly. Frame the central wall surface tightly so the wall plane fills the composition.",
            "canonical_plate_key": "space4",
            "canonical_plate_png": "bg_space4.png"
          },
          "27_1": {
            "space": "거실 겸 주방",
            "plate_key": "space2",
            "plate_png": "bg_space2.png",
            "plate_kind": "marked_indoor",
            "shot_id": "S27_Shot1",
            "basis": "난장판이 된 옥탑방 거실 한가운데에서 혜수가 스마트폰을 듣는 장면으로 명시되어 있다.",
            "plate_action": "reuse_base"
          },
          "27_3": {
            "space": "거실 겸 주방",
            "plate_key": "space2",
            "plate_png": "bg_space2.png",
            "plate_kind": "marked_indoor",
            "shot_id": "S27_Shot3",
            "basis": "혜수와 함께 옥탑방 거실에 있는 김형사의 상체 쇼트로, 대화 위치가 거실 한가운데로 제시된다.",
            "plate_action": "reuse_base"
          }
        },
        "shot_assign_diagnostics": [
          {
            "reason": "plate_action_no_plate",
            "scene": 5,
            "shot": 6,
            "space": "현관",
            "basis": "직전 동선이 수리영이 신발을 신는 장면이며, 얼굴 클로즈업이라 현관 배경 참조는 거의 보이지 않는다."
          },
          {
            "reason": "plate_action_no_plate",
            "scene": 5,
            "shot": 8,
            "space": "현관",
            "basis": "수리영이 나가기 전 현관에서 민숙 손목의 표식을 보는 흐름이지만 손목 클로즈업이라 공간 배경은 사실상 드러나지 않는다."
          },
          {
            "reason": "unassigned",
            "scene": 11,
            "shot": 3,
            "basis": "어두운 계단 중간은 제공된 공간 목록에 없으므로 배정할 수 없다."
          },
          {
            "reason": "plate_action_no_plate",
            "scene": 12,
            "shot": 14,
            "space": "작은 침실",
            "basis": "민숙의 손아귀와 사진 클로즈업으로, 시신이 있는 수리영 방 안 장면이지만 공간 배경은 거의 보이지 않는다."
          },
          {
            "reason": "unassigned",
            "scene": 13,
            "shot": 4,
            "basis": "차에서 내린 혜수가 밖에서 수리영을 붙잡는 옥탑방 외곽 장면이나, 해당 외부 거리·마당 공간은 목록에 없다."
          },
          {
            "reason": "unassigned",
            "scene": 13,
            "shot": 6,
            "basis": "혜수의 클로즈업이며 위치가 제공된 공간 목록의 어느 공간인지 확정할 증거가 부족하다."
          },
          {
            "reason": "plate_action_no_plate",
            "scene": 18,
            "shot": 14,
            "space": "거실 겸 주방",
            "basis": "거실로 나와 식탁에 놓인 사진을 본 뒤 비명을 지르는 흐름이지만 얼굴 클로즈업이라 배경 참조는 부적합하다."
          },
          {
            "reason": "plate_action_no_plate",
            "scene": 25,
            "shot": 8,
            "space": "작은 침실",
            "basis": "사진을 방 벽의 원 가운데에서 떼어 확인하는 흐름이지만, 낡은 사진 이미지 자체의 클로즈업이라 공간 배경은 보이지 않는다."
          }
        ],
        "derived_plates": {
          "10_2": {
            "status": "ok",
            "png": "bg_derived_10_2.png",
            "canonical_plate_key": "space1",
            "space": "옥상 외부 마당",
            "derive_instruction": "Move the camera from the rooftop yard base position to the area directly facing the rooftop entrance door. Frame the door threshold and the adjacent rooftop floor tightly so the doorway dominates the view."
          },
          "10_5": {
            "status": "ok",
            "png": "bg_derived_10_5.png",
            "canonical_plate_key": "space1",
            "space": "옥상 외부 마당",
            "derive_instruction": "Shift the camera close to the exterior side of the rooftop room window. Fill the frame with the dark window glass surface and its reflected interior-facing darkness."
          },
          "12_9": {
            "status": "ok",
            "png": "bg_derived_12_9.png",
            "canonical_plate_key": "space4",
            "space": "작은 침실",
            "derive_instruction": "Move the camera inside the small bedroom toward the curtained window area. Frame the opened curtain and the dark floor area immediately behind it so that this corner fills the shot."
          },
          "12_18": {
            "status": "ok",
            "png": "bg_derived_12_18.png",
            "canonical_plate_key": "space4",
            "space": "작은 침실",
            "derive_instruction": "Move the camera toward the wall above the bed in the small bedroom. Fill the frame with the upper wall surface over the bed."
          },
          "14_11": {
            "status": "ok",
            "png": "bg_derived_14_11.png",
            "canonical_plate_key": "space4",
            "space": "작은 침실",
            "derive_instruction": "Move the camera to a low, tight angle toward one corner of the small bedroom. Frame the corner floor and adjacent wall area closely so small objects placed there would dominate the shot."
          },
          "17_1": {
            "status": "ok",
            "png": "bg_derived_17_1.png",
            "canonical_plate_key": "space1",
            "space": "옥상 외부 마당",
            "derive_instruction": "Move the camera to the rooftop boundary wall area and aim back toward the lit rooftop room window. Keep the wall edge and the exterior window line within the frame."
          },
          "18_10": {
            "status": "ok",
            "png": "bg_derived_18_10.png",
            "canonical_plate_key": "space5",
            "space": "욕실",
            "derive_instruction": "Move the camera close to the bathroom mirror above the sink. Frame the mirror surface so the reflected rear bathroom wall fills most of the image."
          },
          "25_5": {
            "status": "ok",
            "png": "bg_derived_25_5.png",
            "canonical_plate_key": "space4",
            "space": "작은 침실",
            "derive_instruction": "Move the camera into the small bedroom and face the inner wall directly. Frame the central wall surface tightly so the wall plane fills the composition."
          }
        }
      },
      "bg_large_store": {
        "status": "ok",
        "spaces": [
          "주 판매장",
          "마트 전면부와 처마 아래 외부",
          "총무/보안 사무실"
        ],
        "validation": {
          "fails": [],
          "warnings": [
            "uncertain: 마트 총무과가 판매장과 직접 연결되는지, 별도 후방 복도를 거치는지 (S#20은 '마트 총무과 / 실내'만 명시하고 판매장에서 총무과까지의 구체 경유 공간은 보여주지 않는다.)",
            "uncertain: 마트 전면부가 완전한 보행로인지 주차장 일부인지 (자전거를 세우고 입구 밖 길거리에 서는 장면은 있으나 전용 주차장 구조는 명시되지 않는다.)",
            "uncertain: 번화가의 네온사인, 택시 승하차 구역, 길거리 포장마차의 정확한 배치 (마트 주변 분위기와 접근 배경으로 제시되지만 마트 세트의 고정 경계인지 독립된 거리 세트인지 불명확하다.)",
            "uncertain: 총무/보안 사무실의 외부 창 존재 여부 (실내 사무공간이 외벽에 면하는지 내부 후방실인지 증거가 없다. 내부 후방실일 경우 무창이 현실적일 수 있어 창을 frame opening에 확정하지 않았다.)"
          ],
          "independent_spaces": 3,
          "separate_space_evidence": 3
        },
        "frame_checks": {
          "indoor": {
            "frame_preserved": true,
            "frame_doors_first": 2,
            "frame_doors_second": 2,
            "frame_windows_first": 6,
            "frame_windows_second": 6,
            "rooms_first": 2,
            "rooms_second": 2,
            "changed_frame_elements": [],
            "verdict": "벽, 출입문 2개, 전면 창 구성, 외부 접근 경로가 모두 동일하게 보존되었고 추가된 요소는 가구/설비뿐입니다."
          }
        },
        "plates": {
          "주 판매장": {
            "status": "ok",
            "kind": "marked_indoor",
            "png": "bg_space1.png",
            "key": "space1",
            "num": 1,
            "reference": "marked_fp:#1",
            "enclosure": "enclosed"
          },
          "마트 전면부와 처마 아래 외부": {
            "status": "ok",
            "kind": "outdoor_t2i",
            "png": "bg_space2.png",
            "key": "space2",
            "num": 2,
            "reference": "single_t2i (FP 미경유)",
            "enclosure": "open_air"
          },
          "총무/보안 사무실": {
            "status": "ok",
            "kind": "marked_indoor",
            "png": "bg_space3.png",
            "key": "space3",
            "num": 3,
            "reference": "marked_fp:#3",
            "enclosure": "enclosed"
          }
        },
        "connectors": [],
        "descs": {
          "whole": "A modern, practical Korean neighborhood supermarket near a working waterfront, with a wide bright sales floor, durable vinyl or polished concrete flooring, rows of waist-to-chest-high metal shelving, modest checkout counters, and evenly harsh fluorescent ceiling lights in cool blue-gray tones. The front exterior has a functional commercial facade with glass entrance doors, a fixed canopy, an upper-wall security camera, damp concrete paving, a small bicycle parking area, muted neon spill, and weathered metal and plastic details rather than upscale finishes. In the back management area, a small partitioned general affairs and security office uses plain office walls, fluorescent light, inexpensive desks, chairs, computer equipment, recording devices, and CCTV monitors, clearly more cramped and utilitarian than the public sales floor.",
          "indoor": "A practical 2020s Korean local supermarket interior with a wide, bright sales floor, durable polished flooring, standardized wall panels, exposed ceiling fixtures, and evenly spaced fluorescent commercial lights; rows of waist-to-chest-high metal shelves form broad aisles for carts, staff work, and boxed stock, with a modest checkout or customer service counter near the entry path.  \nBehind the sales area is a small partitioned administration and security office, finished more plainly than the retail floor, with utilitarian desks, office chairs, CCTV monitors, a computer and recording equipment arranged so several staff can stand behind and view the screens.  \nThe overall palette is functional and slightly cold—white fluorescent light, pale gray flooring, muted plastic signage, metal shelving, and worn everyday surfaces—realistic for a busy coastal Korean neighborhood mart rather than a luxury store.",
          "outdoor": "A modern Korean coastal-town supermarket frontage with a practical commercial facade, wide glass entrance doors, a fixed metal-and-polycarbonate canopy, damp concrete paving, muted neon spill, and a small bicycle rack area near the wall. High on the exterior wall under the canopy are ordinary security cameras, with cold fluorescent light leaking through the entrance and a humid palette of blue-gray concrete, dull green signage, rust-stained metal, and rain-darkened surfaces. The adjacent main retail hall reads from outside as a broad, functional, high-ceiling commercial mass, while the back-office/security area appears only as a plainer enclosed service volume within the same utilitarian building shell."
        },
        "assets_dir": "/Users/manta/Documents/Projects/TheRoad-I1/projects/703e84ed-4ad1-46a5-893a-543be35adc7d/checkpoints/episodes/b4aac19e-e617-4e99-a171-eda48248251d/space_set_bg/assets/bg_large_store",
        "shot_plate_map": {
          "8_2": {
            "space": "주 판매장",
            "plate_key": "space1",
            "plate_png": "bg_space1.png",
            "plate_kind": "marked_indoor",
            "shot_id": "S8_Shot2",
            "basis": "샷 묘사에 '밝은 마트 진열대 사이', '한쪽 진열대 너머'가 명시되어 주 판매장의 진열대 통로와 일치한다.",
            "plate_action": "reuse_base"
          },
          "8_5": {
            "space": "마트 전면부와 처마 아래 외부",
            "plate_key": "space2",
            "plate_png": "bg_space2.png",
            "plate_kind": "outdoor_t2i",
            "shot_id": "S8_Shot5",
            "basis": "샷 묘사에 '마트 입구 밖, 어두운 길거리'가 명시되어 마트 외부 전면부에 해당한다.",
            "plate_action": "reuse_base"
          },
          "19_5": {
            "space": "마트 전면부와 처마 아래 외부",
            "plate_key": "space2",
            "plate_png": "bg_derived_19_5.png",
            "plate_kind": "outdoor_t2i",
            "shot_id": "S19_Shot5",
            "basis": "샷 묘사에 '마트 밖 처마 아래', '벽면 위쪽의 CCTV 카메라'가 명시되어 외부 전면부와 처마 아래 공간이다.",
            "plate_action": "derive_from_base",
            "derive_instruction": "Move the camera under the entrance canopy toward the exterior wall and tilt upward so the upper wall area with the fixed CCTV camera dominates the frame. Keep the canopy edge and wall surface as the spatial reference.",
            "canonical_plate_key": "space2",
            "canonical_plate_png": "bg_space2.png"
          },
          "20_2": {
            "space": "총무/보안 사무실",
            "plate_key": "space3",
            "plate_png": "bg_space3.png",
            "plate_kind": "marked_indoor",
            "shot_id": "S20_Shot2",
            "basis": "장면이 '마트 총무과 / 실내'이고, 샷에 보안 직원 뒤와 모니터를 주시하는 수리영이 있어 CCTV 모니터가 있는 총무/보안 사무실과 일치한다.",
            "plate_action": "reuse_base"
          }
        },
        "shot_assign_diagnostics": [
          {
            "reason": "plate_action_no_plate",
            "scene": 19,
            "shot": 6,
            "space": "마트 전면부와 처마 아래 외부",
            "basis": "장면 요약상 마트 밖에서 CCTV 위치 확인 후 전화하는 흐름이지만, 샷 자체는 수리영 상체와 허공 응시만 보여 공간 배경 참조가 거의 없다."
          },
          {
            "reason": "plate_action_no_plate",
            "scene": 20,
            "shot": 5,
            "space": "총무/보안 사무실",
            "basis": "장면상 총무/보안 사무실 안이지만, 샷 묘사는 수리영의 옆얼굴과 시선만 제시해 공간 배경이 사실상 드러나지 않는다."
          }
        ],
        "derived_plates": {
          "19_5": {
            "status": "ok",
            "png": "bg_derived_19_5.png",
            "canonical_plate_key": "space2",
            "space": "마트 전면부와 처마 아래 외부",
            "derive_instruction": "Move the camera under the entrance canopy toward the exterior wall and tilt upward so the upper wall area with the fixed CCTV camera dominates the frame. Keep the canopy edge and wall surface as the spatial reference."
          }
        }
      },
      "bg_police_station": {
        "status": "ok",
        "spaces": [
          "형사 공동 사무실",
          "경찰서 외부 출입·자전거 주차 앞마당"
        ],
        "validation": {
          "fails": [],
          "warnings": [
            "uncertain: 회의실 (S#21에서 팀장이 회의를 재촉하고 형사들이 몰려 나가지만, 회의 장소의 물리적 경계나 이 배경 장소 안에서 촬영되는 별도 공간이라는 증거는 없다. access path의 목적지로만 암시된다.)",
            "uncertain: 경찰서 내부 복도/공용부 (사무실과 외부를 연결하는 access path로는 필요하지만, 촬영되거나 별도 경계·기능을 가진 공간으로 묘사되지 않아 separate_space로 추가하지 않는다.)",
            "uncertain: 사무실 창의 정확한 수와 위치 (외벽에 면한 일반 공공 사무실로서 채광·환기용 창은 baseline으로 포함하지만, 원문에 수량·방향·크기 증거는 없다.)",
            "uncertain: 자전거 거치대 존재 여부 (주차된 자전거는 명시되지만 거치대가 직접 언급되지는 않는다. 따라서 고정 거치대는 가능한 구현으로만 두고, 실제 자전거는 제외한다.)"
          ],
          "independent_spaces": 2,
          "separate_space_evidence": 2
        },
        "frame_checks": {},
        "plates": {
          "형사 공동 사무실": {
            "status": "ok",
            "kind": "indoor_t2i",
            "png": "bg_space1.png",
            "key": "space1",
            "num": 1,
            "reference": "single_t2i (FP 미경유 — 단일 실내 공간)",
            "enclosure": "enclosed"
          },
          "경찰서 외부 출입·자전거 주차 앞마당": {
            "status": "ok",
            "kind": "outdoor_t2i",
            "png": "bg_space2.png",
            "key": "space2",
            "num": 2,
            "reference": "single_t2i (FP 미경유)",
            "enclosure": "open_air"
          }
        },
        "connectors": [],
        "descs": {
          "whole": "A practical 2020s South Korean small-city public police building with a modest paved front approach: wet asphalt or concrete, simple curb lines, parking stripes, a flat facade area for an official signboard without readable text, and a small bicycle-parking zone near the entrance. Inside, a shared detectives’ office is built as part of the original reinforced-concrete structure, finished with painted gypsum-board partitions, durable vinyl flooring, acoustic ceiling panels, and cool fluorescent or LED lighting. The open office holds clusters of government-style desks with desktop computers, office chairs, cable and network clutter, a shared copier or fax-scanner, metal file cabinets, a wall clock, and a plain coffee corner, all in muted gray-blue, dull green, beige, and worn plastic textures under a cold institutional tone.",
          "indoor": "A shared detective office inside a contemporary Korean public police building, built with reinforced-concrete structure, painted gypsum-board partitions, durable vinyl flooring, acoustic ceiling panels, and plain fluorescent or LED ceiling lights. The room is large enough for several detectives, with clusters of government-style desks, office chairs, desktop computers, visible power and network cabling, filing cabinets, a copier or fax-scanner unit, a wall clock, and a modest coffee corner with an electric kettle or small coffee machine. Use a cold, humid coastal-city palette of gray-blue, dull green, worn beige, and rust-brown accents, with practical institutional finishes, cluttered paperwork, and realistic fluorescent office lighting rather than any stylized or futuristic police design.",
          "outdoor": "A practical front forecourt of a contemporary small-city Korean police building, with wet asphalt or concrete paving, curb stones, parking lines, a clear public entrance, and a simple area shaped for bicycle racks without any bicycles placed yet. The main building exterior is plain reinforced concrete with durable public-institution finishes, flat panels where an official signboard could be mounted but no readable text or symbols, and windows hinting only at a fluorescent-lit administrative office mass inside. Use a cold, damp coastal color palette of blue-gray concrete, muted green trim, rust-brown metal edges, and rain-darkened black pavement under realistic street or entrance lighting."
        },
        "assets_dir": "/Users/manta/Documents/Projects/TheRoad-I1/projects/703e84ed-4ad1-46a5-893a-543be35adc7d/checkpoints/episodes/b4aac19e-e617-4e99-a171-eda48248251d/space_set_bg/assets/bg_police_station",
        "shot_plate_map": {
          "21_5": {
            "space": "형사 공동 사무실",
            "plate_key": "space1",
            "plate_png": "bg_space1.png",
            "plate_kind": "indoor_t2i",
            "shot_id": "S21_Shot5",
            "basis": "형사들이 빠져나간 빈 사무실과 혜수의 책상 앞에 앉은 수리영이 명시되어 사무실 기준 배경으로 충족된다.",
            "plate_action": "reuse_base"
          }
        },
        "shot_assign_diagnostics": [
          {
            "reason": "plate_action_no_plate",
            "scene": 16,
            "shot": 3,
            "space": "형사 공동 사무실",
            "basis": "경찰서 사무실 안에서 김형사에게 휴대전화 번호를 보여주는 장면이며, 샷은 손과 스마트폰 화면의 근접 구도라 공간 배경 참조는 부적합하다."
          },
          {
            "reason": "plate_action_no_plate",
            "scene": 16,
            "shot": 5,
            "space": "형사 공동 사무실",
            "basis": "사무실 안에서 민숙의 연락 두절을 걱정하는 혜수의 얼굴 클로즈업이므로 주 공간은 사무실이나 배경은 사실상 드러나지 않는다."
          },
          {
            "reason": "plate_action_no_plate",
            "scene": 21,
            "shot": 7,
            "space": "형사 공동 사무실",
            "basis": "혜수 책상 위 사진을 본 수리영의 얼굴 클로즈업으로, 사건은 사무실 안이지만 공간 배경은 거의 사용되지 않는다."
          },
          {
            "reason": "plate_action_no_plate",
            "scene": 21,
            "shot": 10,
            "space": "형사 공동 사무실",
            "basis": "김형사 모니터에 뜬 위치추적 결과 화면이지만 샷은 해상 지도와 좌표가 표시된 디지털 평면 이미지 자체라 사무실 배경 plate가 부적합하다."
          },
          {
            "reason": "plate_action_no_plate",
            "scene": 22,
            "shot": 2,
            "space": "경찰서 외부 출입·자전거 주차 앞마당",
            "basis": "경찰서 밖에서 주차된 자전거를 타고 달리는 장면의 수리영 얼굴 클로즈업이므로 외부 앞마당 맥락이나, 화면은 얼굴 중심이라 공간 배경 참조는 부적합하다."
          }
        ],
        "derived_plates": {}
      },
      "bg_small_fishing_boat": {
        "status": "ok",
        "spaces": [
          "노출 갑판",
          "조타실"
        ],
        "validation": {
          "fails": [],
          "warnings": [
            "uncertain: 조타실의 정확한 위치 (소형어선에서 조타실이 선미 쪽인지 중앙인지 명시되지 않았다. 갑판에서 즉시 달려 들어갈 수 있는 인접 구조라는 점만 확정 가능하다.)",
            "uncertain: 갑판 좌석의 존재 ('갑판에 홀로 앉아있다'는 표현이 있지만, 바닥에 앉은 것인지 고정 벤치/상자 위에 앉은 것인지 불명확하다. 보수 원칙상 고정 좌석을 addon으로 확정하지 않는다.)",
            "uncertain: 어업 장비의 구체 종류 (소형어선이지만 그물, 통발, 어상자 등 구체 장비가 장면에 명시되지 않았고, 이동 가능한 작업 물품일 가능성이 높아 base 구조로 확정하지 않는다.)",
            "uncertain: 조타실 내부 벽면의 표식이 원래부터 있었는지 여부 (수많은 원과 붉은 원은 사건·상징·기괴한 발견으로 묘사되므로 초기 세트장 영구 배경에서 제외한다. 다만 그 표식이 놓일 벽면은 필요하다.)"
          ],
          "independent_spaces": 2,
          "separate_space_evidence": 2
        },
        "frame_checks": {},
        "plates": {
          "노출 갑판": {
            "status": "ok",
            "kind": "outdoor_t2i",
            "png": "bg_space1.png",
            "key": "space1",
            "num": 1,
            "reference": "single_t2i (FP 미경유)",
            "enclosure": "open_air"
          },
          "조타실": {
            "status": "ok",
            "kind": "indoor_t2i",
            "png": "bg_space2.png",
            "key": "space2",
            "num": 2,
            "reference": "single_t2i (FP 미경유 — 단일 실내 공간)",
            "enclosure": "enclosed"
          }
        },
        "connectors": [],
        "descs": {
          "whole": "A compact modern Korean coastal fishing boat with a narrow exposed working deck directly connected to a small enclosed wheelhouse, built for function rather than comfort. The deck has wet, scuffed waterproof FRP or painted metal surfaces, low rails, anti-slip texture, small mooring cleats, and discreet drainage scuppers, all in muted blue-gray, dirty green, rust-brown, and rain-darkened black tones.\n\nThe wheelhouse is a cramped practical cabin made of FRP panels or thin metal framing, with wide forward windows, painted plywood or FRP interior walls, a fixed steering wheel, throttle and gear levers, and small basic navigation instruments on a simple console. Its finish should feel modest and worn, with fluorescent or dim natural working light, exposed fittings, and a plain continuous inner bulkhead surface without any symbols, marks, or event-related traces.",
          "indoor": "A cramped wheelhouse cabin for a contemporary Korean coastal fishing boat, built with plain FRP or thin metal framing and waterproof panels, with wide front windows, painted plywood or FRP interior walls, and a practical, low-budget finish. The compact console holds a small steering wheel, throttle and gear levers, a compass, and modest GPS or fish-finder instruments, all close enough that two people would feel crowded inside. Use cold, damp blue-gray and dull green tones, worn painted surfaces, exposed fittings, and realistic dim cabin lighting, with one plain continuous inner bulkhead left bare.",
          "outdoor": "A compact open working deck on a modern Korean coastal small fishing boat, built from worn FRP or painted metal reinforcement with a rough anti-slip waterproof surface, low gunwales, simple railings, drainage scuppers, and small sturdy mooring cleats along the edges. The deck is narrow and utilitarian, damp with muted blue-gray, dull green, rust-brown, and wet black tones, lit only by realistic low coastal light and practical boat fixtures. Immediately beside it, the exterior of the wheelhouse appears as a plain FRP or thin metal-framed cabin with broad front windows and modest painted panels, visibly functional rather than yacht-like or decorative."
        },
        "assets_dir": "/Users/manta/Documents/Projects/TheRoad-I1/projects/703e84ed-4ad1-46a5-893a-543be35adc7d/checkpoints/episodes/b4aac19e-e617-4e99-a171-eda48248251d/space_set_bg/assets/bg_small_fishing_boat",
        "shot_plate_map": {
          "28_6": {
            "space": "조타실",
            "plate_key": "space2",
            "plate_png": "bg_space2.png",
            "plate_kind": "indoor_t2i",
            "shot_id": "S28_Shot6",
            "basis": "인우가 조타실로 들이닥치고 수리영이 조타실로 따라 들어가 막는 행동으로, 주된 접촉이 조타실 진입부/내부에서 벌어진다.",
            "plate_action": "reuse_base",
            "secondary_spaces": [
              "노출 갑판"
            ]
          },
          "29_1": {
            "space": "조타실",
            "plate_key": "space2",
            "plate_png": "bg_space2.png",
            "plate_kind": "indoor_t2i",
            "shot_id": "S29_Shot1",
            "basis": "장면 제목과 묘사가 모두 조타실 안이며, 두 사람이 서로 붙잡고 멈춰 선 측면 구도.",
            "plate_action": "reuse_base"
          },
          "29_7": {
            "space": "조타실",
            "plate_key": "space2",
            "plate_png": "bg_derived_29_7.png",
            "plate_kind": "indoor_t2i",
            "shot_id": "S29_Shot7",
            "basis": "조타실 안쪽 벽면을 가득 채운 둥근 표식과 붉은 원을 보여주는 벽면 중심의 구도.",
            "plate_action": "derive_from_base",
            "derive_instruction": "Move the camera from the wheelhouse base view toward the exposed interior bulkhead. Frame the flat wall surface tightly so that it fills the shot.",
            "canonical_plate_key": "space2",
            "canonical_plate_png": "bg_space2.png"
          }
        },
        "shot_assign_diagnostics": [
          {
            "reason": "plate_action_no_plate",
            "scene": 28,
            "shot": 4,
            "space": "노출 갑판",
            "basis": "장면요약에서 인우가 조타실로 달려가기 전 갑판에 홀로 앉아 사진을 보는 흐름이며, 샷은 인우 얼굴 정면 클로즈업이라 공간 배경 참조는 거의 부적합."
          }
        ],
        "derived_plates": {
          "29_7": {
            "status": "ok",
            "png": "bg_derived_29_7.png",
            "canonical_plate_key": "space2",
            "space": "조타실",
            "derive_instruction": "Move the camera from the wheelhouse base view toward the exposed interior bulkhead. Frame the flat wall surface tightly so that it fills the shot."
          }
        }
      }
    },
    "prompt_version": "4.202606111309"
  },
  "step_id": "space_set_bg",
  "run_id": "64d904df-0090-4035-9b06-6893c9abd47b",
  "resolved_model": "gpt",
  "updated_at": "2026-06-18T13:11:32.278727+00:00",
  "project_config_snapshot": {}
}