{
  "status": "completed",
  "completed_count": 16,
  "applicable_count": 16,
  "failed_count": 0,
  "schema_version": 3,
  "blocked_count": 0,
  "validator_violation_count": 0,
  "contract_violation_count": 0,
  "data": {
    "scenes": [
      {
        "scene_index": 1,
        "analysis_summary": "두 샷에 공통으로 등장하는 해저의 쓰레기 더미와 탁하고 푸른빛이 도는 수중 환경을 고정 요소로 추출했습니다. 로봇 손가락과 크레인 집게는 두 샷에 걸쳐 동시에 노출되지 않으므로(7번 샷에서 손가락이 파묻혀 보이지 않음) 제외했습니다.",
        "fixed_elements": [
          {
            "element_id": "underwater_trash_mound",
            "element_type": "environment_state",
            "character_name": "",
            "description": "The seabed is covered with a dense, oppressive mound of submerged trash, explicitly featuring torn plastics, scattered cables, and thick layers of silt. The surrounding water is murky and severely polluted, illuminated by a low, filtered blue-green daylight that creates a cold, gloomy aquatic atmosphere.",
            "applies_to_shots": [
              2,
              7
            ],
            "element_scope": "full",
            "source_facts": [
              "바닥에 잠긴 온갖 쓰레기 더미",
              "torn plastic, cable, and silt",
              "Low, filtered blue-green daylight leaks through polluted water",
              "crushed debris occupies the middle"
            ],
            "visual_inferences": [
              "The debris forms a compressed and continuous mass on the seabed rather than isolated floating pieces.",
              "The silt partially covers much of the trash, giving it an aged, long-abandoned appearance."
            ],
            "creative_decisions": [
              "Emphasize the texture of the torn plastics and cables to strongly convey the severe pollution.",
              "Maintain a consistent cold blue-green color palette to reflect the gloomy underwater setting."
            ],
            "confidence": "high"
          }
        ],
        "status": "ok"
      },
      {
        "scene_index": 2,
        "analysis_summary": "두 샷은 쓰레기 수거선의 뱃머리 외부와 갑판 위를 각각 비추며 시점이 다르지만, 2069년 산업 연무가 낀 흐리고 회색빛의 대기/조명 상태를 공유합니다. 또한 두 샷 전반에 걸쳐 젖은 상태의 낡고 녹슨 고철과 파편화된 잔해들이 환경적 고정 요소로 등장합니다. 고철 로봇 인물은 샷 4에만 명시되어 있어 고정 요소에서 제외되었습니다.",
        "fixed_elements": [
          {
            "element_id": "industrial_haze_lighting",
            "element_type": "environment_state",
            "character_name": "",
            "description": "The scene is enveloped in an industrial haze under a flat, overcast sky. The atmospheric daylight is harsh and grayish, casting a muted, gloomy pallor over the entire maritime setting with subtle hints of greenish industrial spill.",
            "applies_to_shots": [
              1,
              4
            ],
            "element_scope": "full",
            "source_facts": [
              "Overcast coastal daylight is flattened by industrial haze (Shot 1)",
              "Harsh gray daylight from the open deck mixes with greenish industrial spill (Shot 4)"
            ],
            "visual_inferences": [
              "The sky is heavily clouded and obscured by smog, ensuring no direct harsh sunlight hits the setting, casting an even wash of light."
            ],
            "creative_decisions": [
              "Emphasize the polluted, near-future dystopian atmosphere by primarily using desaturated, cold gray tones mixed with subtle toxic ambient colors."
            ],
            "confidence": "high"
          },
          {
            "element_id": "scattered_scrap_debris",
            "element_type": "environment_state",
            "character_name": "",
            "description": "Various scattered pieces of industrial debris, rusted scrap metal, and shattered wreckage parts define the surrounding space. These wreckage elements feature muted rust tones and wet, grimy surfaces, representing accumulated maritime trash.",
            "applies_to_shots": [
              1,
              4
            ],
            "element_scope": "full",
            "source_facts": [
              "산산이 부서진 헬리콥터의 잔해, 반 토막 난 선박, 그리고 잡다한 쓰레기들 (Scene text)",
              "split ship hull fragment and smaller wreckage pieces... muted rust tones (Shot 1)",
              "wet junk piles (Shot 4)"
            ],
            "visual_inferences": [
              "The debris consists of broken mechanical and nautical parts, slick with water and heavily oxidized from prolonged sea exposure."
            ],
            "creative_decisions": [
              "Scatter jagged, rusted metallic shapes and unidentified junk items across both the water flow and the deck surface to visually unify the severe post-industrial maritime decay."
            ],
            "confidence": "high"
          }
        ],
        "status": "ok"
      },
      {
        "scene_index": 3,
        "analysis_summary": "단일 샷 — 교차 일관성 분석 불필요",
        "fixed_elements": [],
        "status": "skipped_single_shot"
      },
      {
        "scene_index": 4,
        "analysis_summary": "현우와 페드로가 각각 조수석과 운전석에서 포착된 샷들로, 두 샷 모두 오래된 자동차 내부라는 공통된 환경을 공유합니다. 대시보드의 어두운 그림자와 앞유리를 통해 들어오는 탁한 자연광이 일관된 차량 내부 환경 요소로 유지됩니다.",
        "fixed_elements": [
          {
            "element_id": "old_car_interior",
            "element_type": "environment_state",
            "character_name": "",
            "description": "The interior of an old vehicle serving as the primary setting. Muted, polluted daylight filters through the windshield, contrasting with the dim, low-key shadows of the dashboard and center console. The cabin atmosphere maintains a cool, green-gray undertone.",
            "applies_to_shots": [
              3,
              6
            ],
            "element_scope": "full",
            "source_facts": [
              "Inside the car from the flow's low dashboard-to-passenger position",
              "Muted daylight through the windshield mixes with dim dashboard shadow",
              "car cabin falling into low-key green-gray shadow",
              "Soft polluted daylight through the windshield"
            ],
            "visual_inferences": [
              "The vehicle interior looks somewhat worn and unpolished",
              "The lighting emphasizes a tense and slightly claustrophobic atmosphere inside the vehicle"
            ],
            "creative_decisions": [
              "Using the dashboard edge as a dark foreground shelf and the windshield glow as a muted background plane to frame the characters"
            ],
            "confidence": "high"
          }
        ],
        "status": "ok"
      },
      {
        "scene_index": 5,
        "analysis_summary": "샷 17은 저택 내부의 부서진 로봇에, 샷 28은 저택 외부에서 경찰에 포위된 현우에 집중하여 인물과 공간이 완전히 다릅니다. 하지만 보안 시스템 작동으로 발생한 비상 경보 조명(alarm lighting)이 실내외 환경에 공통적으로 적용되는 유일한 시각적 연결 요소로 추출되었습니다.",
        "fixed_elements": [
          {
            "element_id": "emergency_alarm_lighting",
            "element_type": "environment_state",
            "character_name": "",
            "description": "An active security alarm system casts a faint but distinct warning light across the premises. The ambient lighting carries a tense, unnatural hue that creates alarm-tinged shadows indoors and subtly washes over the outdoor driveway. This characteristic emergency lighting visually connects the indoor and exterior environments during the ongoing security breach.",
            "applies_to_shots": [
              17,
              28
            ],
            "element_scope": "full",
            "source_facts": [
              "동시에 울리는 사이렌 소리",
              "alarm-tinged shadow (Shot 17)",
              "faint alarm color (Shot 28)"
            ],
            "visual_inferences": [
              "The automated security system incorporates visible warning lights, likely flashing or tinted in a distinct color, which alter the natural daylight and interior lighting."
            ],
            "creative_decisions": [
              "Using the persistent alarm illumination as a unifying atmospheric element to bridge the disconnected interior and exterior moments."
            ],
            "confidence": "high"
          }
        ],
        "status": "ok"
      },
      {
        "scene_index": 6,
        "analysis_summary": "두 샷에 공통으로 등장하는 인물이나 특정 소품은 없으나, 인천 난민촌의 진흙탕 길과 해안가 스모그로 인해 흐려진 차갑고 평면적인 회색빛 조명 상태가 샷 전체에 걸쳐 일관된 환경 요소로 나타납니다.",
        "fixed_elements": [
          {
            "element_id": "refugee_camp_smog_environment",
            "element_type": "environment_state",
            "character_name": "",
            "description": "The environment features a dilapidated refugee settlement with unpaved, muddy dirt roads. The atmosphere is heavily filtered by thick coastal smog, casting a cold, flat, and gray daylight over the entire area. The muted, desaturated color palette of the brown mud and gray haze remains consistent, creating a bleak and gritty visual tone.",
            "applies_to_shots": [
              6,
              8
            ],
            "element_scope": "full",
            "source_facts": [
              "Flat gray daylight filtered through coastal smog",
              "muddy splash and market clutter vibrate behind her in the refugee-camp street",
              "Cold polluted daylight is flattened by coastal haze",
              "muddy settlement lane streaks into peripheral blur"
            ],
            "visual_inferences": [
              "The ground is persistently wet and brown, reflecting the bleakness of the 2069 Incheon refugee area.",
              "The lighting lacks stark, warm directional sunlight due to the heavy atmospheric pollution."
            ],
            "creative_decisions": [
              "Unifying the color grading across the shots with flat gray and muddy brown tones to emphasize the chaotic and impoverished nature of the settlement."
            ],
            "confidence": "high"
          }
        ],
        "status": "ok"
      },
      {
        "scene_index": 7,
        "analysis_summary": "샷 6과 10에 공통으로 등장하는 앰버의 기본 외형(마스크 착용, 허리의 공구 주머니, 흙먼지가 묻은 상태)과 검은 연기가 피어오르는 회색빛 쓰레기장 환경의 일관성을 추출했습니다.",
        "fixed_elements": [
          {
            "element_id": "amber_persistent_appearance",
            "element_type": "character_state",
            "character_name": "Amber",
            "description": "A 10-year-old girl of mixed Korean and White descent. Her face and rugged clothing are covered in a soft layer of grime from the scrap yard. She wears a protective face mask and carries a tool pouch attached to her waist.",
            "applies_to_shots": [
              6,
              10
            ],
            "element_scope": "full",
            "source_facts": [
              "Amber is a 10-year-old Korean-White mixed girl.",
              "She wears a mask.",
              "She has a tool pouch at her waist.",
              "Her face is softly grimy."
            ],
            "visual_inferences": [
              "Her clothing is practical, rugged, and suitably weathered for scavenging in a rough garbage dump."
            ],
            "creative_decisions": [
              "The grime is applied softly to keep her features distinguishable while anchoring her realistically to the dirty environment."
            ],
            "confidence": "high"
          },
          {
            "element_id": "smoky_scrap_yard_environment",
            "element_type": "environment_state",
            "character_name": "",
            "description": "A sprawling garbage dump filled with piles of crushed, jagged metal scrap and abandoned junk. Muted, cold gray daylight filters through thick black smoke that rises and lingers in the atmosphere, creating a persistently hazy and desolate environment.",
            "applies_to_shots": [
              6,
              10
            ],
            "element_scope": "full",
            "source_facts": [
              "A massive garbage dump with black smoke rising into the sky.",
              "Muted gray daylight filters through smoke.",
              "Smoky daylight backlights the scene."
            ],
            "visual_inferences": [
              "The surrounding air is noticeably dense and hazy due to the continuous burning of garbage, lowering the overall contrast of the background."
            ],
            "creative_decisions": [
              "Using a cold gray and blue-gray color palette for the environmental lighting to emphasize the bleak, industrial feel of the scrap yard."
            ],
            "confidence": "high"
          }
        ],
        "status": "ok"
      },
      {
        "scene_index": 8,
        "analysis_summary": "찰리가 위장하기 전인 샷 12와 17에서 그의 거친 고릴라 형태 기계 외형이 동일하게 묘사되며, 샷 12와 29에서는 짙은 연기와 안개가 깔린 쓰레기장의 시각적 환경이 공통으로 유지됩니다. 자세나 인물 배치는 샷마다 변하므로 인물의 기본 외형과 배경의 분위기 요소만 고정 요소로 추출하였습니다.",
        "fixed_elements": [
          {
            "element_id": "charlie_mechanical_form",
            "element_type": "character_state",
            "character_name": "Charlie",
            "description": "Charlie's base physical design is a massive, gorilla-shaped mechanical robot constructed from heavy, worn metal. His bare robotic chassis features rugged, bulky mechanical forearms and heavily weathered joints that show distinct signs of age and dirt.",
            "applies_to_shots": [
              12,
              17
            ],
            "element_scope": "full",
            "source_facts": [
              "고릴라 모양의 로봇...찰리다!",
              "worn metal edges",
              "massive mechanical forearms"
            ],
            "visual_inferences": [
              "The metal surface is heavily rusted and covered in dirt due to being buried in the junkyard heap for a long time."
            ],
            "creative_decisions": [
              "Emphasized the thick, prominent mechanical joints and wide gorilla-like proportions to highlight his imposing, raw robotic nature before he wears any disguise."
            ],
            "confidence": "high"
          },
          {
            "element_id": "hazy_junkyard_atmosphere",
            "element_type": "environment_state",
            "character_name": "",
            "description": "The surrounding junkyard is a desolate area filled with towering mounds of discarded metallic scrap and sliding trash heaps. The entire environment is deeply enveloped in a thick, grayish coastal haze mixed with faint rust-colored smoke, casting a gloomy and dirty atmospheric light over the ruins.",
            "applies_to_shots": [
              12,
              29
            ],
            "element_scope": "full",
            "source_facts": [
              "쓰레기장 공터",
              "trash mound",
              "dirty daylight leaks through smoke from above",
              "Flat coastal haze",
              "faint rust and smoke colors"
            ],
            "visual_inferences": [
              "The pervasive coastal haze and smoke blend together to obscure the distant boundaries of the junkyard, making the scrap heaps look endless and bleak."
            ],
            "creative_decisions": [
              "Used a flat, muted gray lighting condition to emphasize the grim reality of the refugee area and contrast it with the characters' moments of discovery."
            ],
            "confidence": "high"
          }
        ],
        "status": "ok"
      },
      {
        "scene_index": 9,
        "analysis_summary": "관리소장의 뚜렷한 신체적 특징(대머리), 배경에 고정된 군용 트럭, 진흙투성이의 젖은 바닥, 그리고 전체적으로 흐리고 어두운 회색빛 자연광이 여러 샷에 걸쳐 일관되게 유지됩니다.",
        "fixed_elements": [
          {
            "element_id": "manager_bald_head",
            "element_type": "character_state",
            "character_name": "Manager",
            "description": "The middle-aged Korean man features a completely bald head. This distinct facial and cranial trait remains constantly visible regardless of his changing postures.",
            "applies_to_shots": [
              9,
              18
            ],
            "element_scope": "close",
            "source_facts": [
              "대머리 한국계 중년 남성",
              "대머리 중년 남성"
            ],
            "visual_inferences": [
              "His head has smooth, bare skin with no hair"
            ],
            "creative_decisions": [
              "Highlighting his bald head as a key demographic and visual identifier across different angles"
            ],
            "confidence": "high"
          },
          {
            "element_id": "parked_military_truck",
            "element_type": "persistent_prop",
            "character_name": "",
            "description": "A dark military truck remains parked in the background of the scene. Its heavy, dark structure is consistently positioned behind the characters.",
            "applies_to_shots": [
              9,
              18
            ],
            "element_scope": "full",
            "source_facts": [
              "The truck behind him is reduced to a dark, out-of-focus slab",
              "the manager is blocked behind her line of action near the truck door"
            ],
            "visual_inferences": [
              "The truck is a robust, military-style vehicle with a dark exterior that casts significant shadows"
            ],
            "creative_decisions": [
              "Using the truck as a persistent background element to anchor the spatial relationship of the characters"
            ],
            "confidence": "high"
          },
          {
            "element_id": "muddy_ground",
            "element_type": "environment_state",
            "character_name": "",
            "description": "The ground of the site is covered in wet, dark mud with scattered puddles. The damp, uneven terrain persistently reflects the dull ambient light.",
            "applies_to_shots": [
              18,
              20
            ],
            "element_scope": "full",
            "source_facts": [
              "wet mud glints",
              "muddy ground",
              "lying face-down in mud"
            ],
            "visual_inferences": [
              "The mud is thick and wet, creating a messy, reflective, and grounded environment"
            ],
            "creative_decisions": [
              "Emphasizing the harsh, dirty conditions of the construction site to contrast with the characters' struggles"
            ],
            "confidence": "high"
          },
          {
            "element_id": "overcast_gray_daylight",
            "element_type": "environment_state",
            "character_name": "",
            "description": "The scene is illuminated by washed-out, dim gray daylight coming from an overcast sky. This dull, low-key lighting casts a cold and grim tone across the entire environment.",
            "applies_to_shots": [
              9,
              18,
              20
            ],
            "element_scope": "full",
            "source_facts": [
              "Washed-out gray daylight",
              "Overcast daylight",
              "Dim gray daylight reflects off the mud"
            ],
            "visual_inferences": [
              "The sky is heavily clouded, diffusing the natural light and preventing any harsh or warm sunlight"
            ],
            "creative_decisions": [
              "Maintaining a consistently bleak and oppressive lighting atmosphere to match the narrative tension"
            ],
            "confidence": "high"
          }
        ],
        "status": "ok"
      },
      {
        "scene_index": 10,
        "analysis_summary": "세 샷에 걸쳐 병색이 완연한 혼혈 난민 현우의 고정된 외양과 낡은 재판관의 탁자를 식별했습니다. 또한 로우 앵글로 전환되는 샷 11과 13에서 공통적으로 부각되는 지저분한 재판소 바닥의 질감을 국소적 고정 요소로 추출했습니다.",
        "fixed_elements": [
          {
            "element_id": "hyunwoo_appearance",
            "element_type": "character_state",
            "character_name": "Hyunwoo",
            "description": "A young half-Korean, half-American male refugee in his late teens or early twenties. He wears heavily worn, shabby clothing typical of a neglected refugee facility. His complexion is pale and exhausted, showing obvious signs of a severe fever and physical sickness.",
            "applies_to_shots": [
              1,
              11,
              13
            ],
            "element_scope": "full",
            "source_facts": [
              "Described as half-Korean and half-American who arrived from L.A.",
              "Suffering from a dog bite, high fever, and mental confusion.",
              "Dressed appropriately for a poor refugee in 2069 Incheon."
            ],
            "visual_inferences": [
              "His mixed heritage is subtly visible in his facial features.",
              "His clothing is visibly stained and torn due to long-term hardship."
            ],
            "creative_decisions": [
              "The fever is visually emphasized through a sweat-sheened face and heavy, dark circles under his eyes."
            ],
            "confidence": "high"
          },
          {
            "element_id": "judge_table",
            "element_type": "persistent_prop",
            "character_name": "",
            "description": "A rough, shabby wooden tribunal table used by the judge. It sits deep in the dark room, and its worn, unpolished legs remain visible as a background element during the struggle on the floor.",
            "applies_to_shots": [
              1,
              11,
              13
            ],
            "element_scope": "full",
            "source_facts": [
              "The judge's rough table sits deeper in the darkness in shot 1.",
              "The tribunal table legs are blurred in the rear right in shot 11.",
              "The tribunal table legs are in soft focus in shot 13."
            ],
            "visual_inferences": [
              "The table is made of cheap, degraded wood or metal, fitting the grim and underfunded nature of the refugee tribunal."
            ],
            "creative_decisions": [
              "Maintained in the background across shots to anchor the spatial relationship between the initial standing position and the floor struggle."
            ],
            "confidence": "high"
          },
          {
            "element_id": "tribunal_floor_surface",
            "element_type": "environment_state",
            "character_name": "",
            "description": "The floor surface of the tribunal room is filthy, heavily scuffed, and unpolished. It reflects a sickly green-gray fluorescent light, emphasizing the unhygienic and neglected state of the bureaucratic facility.",
            "applies_to_shots": [
              11,
              13
            ],
            "element_scope": "close",
            "source_facts": [
              "Shot 11 views the scene from a low floor-side position.",
              "Shot 13 explicitly describes a filthy surface with a sickly overhead fluorescent wash and gray-green fatigue.",
              "Hyunwoo's cheek is pressed directly into the floor in shot 13."
            ],
            "visual_inferences": [
              "The flooring is likely worn industrial concrete or old linoleum covered in layers of dust and grime."
            ],
            "creative_decisions": [
              "A textural emphasis on the gritty, dirty details of the floor is used to heighten the miserable reality of Hyunwoo's collapse."
            ],
            "confidence": "high"
          }
        ],
        "status": "ok"
      },
      {
        "scene_index": 11,
        "analysis_summary": "샷 4와 5에 공통으로 등장하는 미연의 무릎을 꿇고 눈을 감은 자세와 흑백의 강한 대비 및 섬광이 번쩍이는 골목길 환경 상태를 고정 요소로 추출했습니다.",
        "fixed_elements": [
          {
            "element_id": "miyeon_terrified_state",
            "element_type": "character_state",
            "character_name": "Miyeon",
            "description": "A Korean woman is kneeling on the ground in a cowering, protective posture, rendered in harsh black-and-white. Her eyes are squeezed tightly shut in extreme fear. She is positioned low to the ground, maintaining a frozen, terrified stance.",
            "applies_to_shots": [
              4,
              5
            ],
            "element_scope": "full",
            "source_facts": [
              "미연은 무릎을 꿇은 채 양쪽에 어린 현우와 앰버를 감싸 안고 눈을 질끈 감고 있다 (Shot 4).",
              "미연은 눈을 감은 채 무릎 꿇고 얼어붙어 있다 (Shot 5)."
            ],
            "visual_inferences": [
              "Her body language remains consistently low and defensive, emphasizing her vulnerability before the armed men."
            ],
            "creative_decisions": [
              "Her entire presence is rendered in stark black-and-white to seamlessly blend with the nightmare flashback aesthetic."
            ],
            "confidence": "high"
          },
          {
            "element_id": "monochrome_alley_environment",
            "element_type": "environment_state",
            "character_name": "",
            "description": "A dark urban alleyway rendered in a stark, high-contrast black-and-white visual style. The space is dominated by deep, crushed black shadows and illuminated by intermittent, harsh white flashes resembling gunfire. The background elements are reduced to stark silhouettes and flat vertical bands.",
            "applies_to_shots": [
              4,
              5
            ],
            "element_scope": "full",
            "source_facts": [
              "흑백. 프레임이 툭툭 끊기는 애니메이션 화법. 짙은 어두움. 섬광 (Scene text).",
              "Harsh monochrome contrast, intermittent muzzle-flash-like flicker (Shot 4).",
              "Black-and-white lighting is frozen into hard side silhouettes (Shot 5)."
            ],
            "visual_inferences": [
              "The alleyway lacks fine realistic textures, appearing almost abstract due to the extreme lighting and crushed blacks."
            ],
            "creative_decisions": [
              "The intermittent flashes create a stuttering, unstable atmosphere that enhances the traumatic memory effect."
            ],
            "confidence": "high"
          }
        ],
        "status": "ok"
      },
      {
        "scene_index": 12,
        "analysis_summary": "샷 2(풀샷)와 샷 7(인서트 샷) 모두 쓰레기가 널려 있는 야외 바닥을 보여주므로, 거친 흙바닥의 질감과 차갑고 어두운 야간 조명 상태를 공통 환경 요소로 추출했습니다.",
        "fixed_elements": [
          {
            "element_id": "ruined_exterior_ground",
            "element_type": "environment_state",
            "character_name": "",
            "description": "The exterior ground is an uneven surface composed of dirt, scattered debris, and shadows cast by surrounding trash mounds. The area is illuminated by sparse, cold blue-gray night lighting, giving the gritty ground a dark and muted appearance across both wide and close-up views.",
            "applies_to_shots": [
              2,
              7
            ],
            "element_scope": "full",
            "source_facts": [
              "황폐한 쓰레기 더미뿐이다",
              "ruined foreground of trash mounds",
              "Sparse sodium and cold blue-gray spill",
              "sliver of dirty ground",
              "dirty night shadow"
            ],
            "visual_inferences": [
              "The dirty ground visible under the wallet in the close-up shot shares the same gritty, debris-strewn texture and cold nocturnal lighting established in the wide shot."
            ],
            "creative_decisions": [
              "Maintaining a consistent cold color palette and rough ground texture to visually connect the desolate environment with the extreme insert shot."
            ],
            "confidence": "high"
          }
        ],
        "status": "ok"
      },
      {
        "scene_index": 13,
        "analysis_summary": "샷 4와 6은 모두 허름한 골목 식당의 테이블과 조명을 공유하고 있습니다. 위에서 떨어지는 병약한 노란색 실내 조명, 기름때 낀 테이블 표면, 그리고 갈색과 녹색 빛이 도는 지저분한 식당 배경이 두 샷에 걸쳐 일관되게 묘사되어야 합니다.",
        "fixed_elements": [
          {
            "element_id": "shabby_restaurant_environment",
            "element_type": "environment_state",
            "character_name": "",
            "description": "A dirty, oily restaurant tabletop illuminated from above by a weak, sickly yellow practical light. Hard, warm shadows are cast across the surface, while the surrounding background falls off into a dim, grimy brownish-green blur.",
            "applies_to_shots": [
              4,
              6
            ],
            "element_scope": "full",
            "source_facts": [
              "A weak yellow practical from above creates oily highlights on the tabletop and hard shadows (Shot 4)",
              "Warm but sickly practical light (Shot 6)",
              "the tabletop edge (Shot 6)",
              "the background sinks into brown-green restaurant grime (Shot 6)"
            ],
            "visual_inferences": [
              "The tabletop has a consistently greasy texture reflecting the overhead light.",
              "The ambient lighting has an oppressive, unhygienic quality matching the impoverished setting."
            ],
            "creative_decisions": [
              "Combining the oily tabletop reflections with the sickly yellow-greenish ambiance to emphasize the shabby and tense mood of the illegal transaction."
            ],
            "confidence": "high"
          }
        ],
        "status": "ok"
      },
      {
        "scene_index": 14,
        "analysis_summary": "통금 시간 발령으로 인해 전면 소등된 수용소의 짙은 어둠과 차가운 톤의 조명 상태, 그리고 샷 4와 6에 공통으로 등장하는 현우의 기본 인물 외형이 일관되게 유지됩니다.",
        "fixed_elements": [
          {
            "element_id": "curfew_blackout_lighting",
            "element_type": "environment_state",
            "character_name": "",
            "description": "The refugee camp environment is engulfed in deep darkness due to a strict curfew and power shutoff. Streetlights and most ambient lights are extinguished, leaving only very faint, cold, blue-gray light spills that provide minimal illumination in the surroundings.",
            "applies_to_shots": [
              4,
              6
            ],
            "element_scope": "full",
            "source_facts": [
              "가로등도 꺼지고 순식간에 컴컴해지는 거리.",
              "전부 소등하고 전기 사용도 금합니다.",
              "Curfew darkness crushes the edges of the gate.",
              "Most camp lights are dead, leaving only a faint blue-gray spill."
            ],
            "visual_inferences": [
              "The complete lack of electricity uniformly affects all areas of the camp, maintaining a consistent blackout state from the main entrance to the inner residential alleys."
            ],
            "creative_decisions": [
              "Using faint, cold blue-gray light spills to barely outline the character and key objects against the oppressive, dark background."
            ],
            "confidence": "high"
          },
          {
            "element_id": "hyunwoo_basic_appearance",
            "element_type": "character_state",
            "character_name": "Hyunwoo",
            "description": "A Korean male refugee navigating through the dark camp. He retains the same overall physical appearance and clothing throughout the sequence, maintaining a consistent look as he moves from the gate to his home.",
            "applies_to_shots": [
              4,
              6
            ],
            "element_scope": "full",
            "source_facts": [
              "헐레벌떡 뛰어오는 난민들, 그 틈에 현우도 끼여서 간신히 들어온다.",
              "현우, 컨테이너들 사이의 골목을 걸어와 자신의 집 앞에 도착한다."
            ],
            "visual_inferences": [
              "His clothing is practical and likely worn out, fitting his status as a refugee in the near-future setting of 2069 Korea."
            ],
            "creative_decisions": [
              "Ensuring his silhouette remains identifiable across different camera angles despite the severe low-light conditions."
            ],
            "confidence": "medium"
          }
        ],
        "status": "ok"
      },
      {
        "scene_index": 15,
        "analysis_summary": "현우가 등장하는 샷 3과 샷 13에서 공통으로 노출되는 얼굴과 목의 흙먼지 및 핏자국, 그리고 상의를 벗은 맨몸 상태를 국소적 고정 요소로 추출했습니다. 또한 두 샷의 배경에 공통으로 존재하는 녹슨 컨테이너 벽면과 촛불이 놓인 어수선한 식탁 환경을 전체 고정 요소로 정의했습니다.",
        "fixed_elements": [
          {
            "element_id": "hyunwoo_face_and_neck_marks",
            "element_type": "character_state",
            "character_name": "현우",
            "description": "Hyunwoo's face and bare neck are visibly marked with dirt and traces of blood. He is shirtless, leaving his neck and collarbone area exposed to the ambient light, highlighting his disheveled condition.",
            "applies_to_shots": [
              3,
              13
            ],
            "element_scope": "close",
            "source_facts": [
              "현우는 웃옷을 벗고 (Scene text)",
              "얼굴과 팔다리 곳곳에 흙먼지와 핏자국이 묻은 채 (Shot 3)",
              "목에 핏대를 세운 현우의 분노에 찬 얼굴 클로즈업 (Shot 13)"
            ],
            "visual_inferences": [
              "Since he removed his shirt, his neck and upper chest are bare, and the dirt and blood explicitly mentioned for his face naturally extend to his exposed neck."
            ],
            "creative_decisions": [
              "The grime and blood marks on his face and neck are kept consistent across framing sizes to emphasize the physical toll of his recent activities, even in tight close-ups."
            ],
            "confidence": "high"
          },
          {
            "element_id": "container_dining_room_environment",
            "element_type": "environment_state",
            "character_name": "",
            "description": "The cramped interior is enclosed by rusted metal walls. A cluttered dining table sits in the room, serving as the main physical fixture, while a flickering candle on it casts a warm amber glow that contrasts with deep, cold shadows.",
            "applies_to_shots": [
              3,
              13
            ],
            "element_scope": "full",
            "source_facts": [
              "식탁 위 촛불 아래에는 현우의 한 끼 식사가 차려져 있다 (Scene text)",
              "rusted walls squeezing both sides... dining table recedes dimly (Shot 3)",
              "container wall and table clutter... harsh, flickering candle underglow (Shot 13)"
            ],
            "visual_inferences": [
              "The rusted metal walls and the dining table with the candle are the primary structural and lighting anchors linking the wide perspective and the closer angle."
            ],
            "creative_decisions": [
              "The harsh, flickering candlelight is used to highlight the rough texture of the rusted walls and the messy table, enhancing the grim and tense atmosphere of their living space."
            ],
            "confidence": "high"
          }
        ],
        "status": "ok"
      },
      {
        "scene_index": 16,
        "analysis_summary": "단일 샷 — 교차 일관성 분석 불필요",
        "fixed_elements": [],
        "status": "skipped_single_shot"
      }
    ]
  },
  "step_id": "scene_consistency",
  "run_id": "e20ea088-4875-440f-bad3-56a7d09a87a2",
  "resolved_model": "gemini-pro",
  "updated_at": "2026-06-25T07:03:25.469767+00:00",
  "config_hash": "99914b932bd37a50",
  "project_config_snapshot": {}
}