{
  "status": "completed",
  "applicable_count": 8,
  "completed_count": 8,
  "failed_count": 0,
  "schema_version": 1,
  "config_hash": "14cff9239adbc6fc",
  "data": {
    "schema_version": 1,
    "groups": [
      {
        "group_id": "osl-l01",
        "location_id": "L01",
        "member_shots": [
          [
            1,
            3
          ],
          [
            1,
            4
          ],
          [
            3,
            3
          ]
        ],
        "layout": {
          "cameras": [
            {
              "look_at": [
                45,
                55
              ],
              "pos": [
                45,
                53.5
              ],
              "shot_index": 3
            },
            {
              "look_at": [
                45,
                58
              ],
              "pos": [
                45,
                40
              ],
              "shot_index": 4
            },
            {
              "look_at": [
                52,
                49
              ],
              "pos": [
                52,
                42.5
              ],
              "shot_index": 3
            }
          ],
          "figures": [
            {
              "entity_token": "C05",
              "figure_id": "fig_korean_man",
              "label": "한국인 남성",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    45,
                    55
                  ],
                  "shot_index": 3
                },
                {
                  "moving_toward": null,
                  "pos": [
                    45,
                    55
                  ],
                  "shot_index": 4
                }
              ]
            },
            {
              "entity_token": "C13",
              "figure_id": "fig_black_shape",
              "label": "검은 형상",
              "positions": [
                {
                  "moving_toward": [
                    45,
                    55
                  ],
                  "pos": [
                    35,
                    68
                  ],
                  "shot_index": 4
                }
              ]
            },
            {
              "entity_token": "C02",
              "figure_id": "fig_hyesu",
              "label": "혜수",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    52,
                    48
                  ],
                  "shot_index": 3
                }
              ]
            },
            {
              "entity_token": null,
              "figure_id": "fig_detective",
              "label": "형사",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    56,
                    45
                  ],
                  "shot_index": 3
                }
              ]
            }
          ],
          "landmarks": [
            {
              "id": "lm_forest",
              "kind": "area",
              "label": "숲속",
              "points": [
                [
                  5,
                  5
                ],
                [
                  95,
                  5
                ],
                [
                  95,
                  95
                ],
                [
                  5,
                  95
                ]
              ]
            },
            {
              "id": "lm_dense_brush",
              "kind": "area",
              "label": "우거진 수풀",
              "points": [
                [
                  8,
                  10
                ],
                [
                  32,
                  8
                ],
                [
                  28,
                  92
                ],
                [
                  6,
                  88
                ]
              ]
            },
            {
              "id": "lm_crime_scene",
              "kind": "area",
              "label": "현장",
              "points": [
                [
                  30,
                  32
                ],
                [
                  68,
                  32
                ],
                [
                  72,
                  72
                ],
                [
                  32,
                  78
                ]
              ]
            },
            {
              "id": "lm_police_line",
              "kind": "line",
              "label": "폴리스 라인",
              "points": [
                [
                  26,
                  29
                ],
                [
                  71,
                  28
                ],
                [
                  78,
                  73
                ],
                [
                  31,
                  82
                ],
                [
                  26,
                  29
                ]
              ]
            }
          ]
        },
        "spatial_summaries": {
          "1:3": "SHOT 3 SCENE GEOGRAPHY (computed from the site-layout coordinates, frame-relative from this shot's camera — source of truth for where things are, which way paths run, figure depth and relative size):\n- 숲속: at the far right side of the frame.\n- 우거진 수풀 (path): runs from the far left side of the frame to the far left side of the frame.\n- 현장: at the far right side of the frame.\n- 폴리스 라인 (path): runs from the far left side of the frame to the far right side of the frame.\nFIGURES:\n- 한국인 남성 (C05): at the near center of the frame — NEAREST figure to the camera.\n- 혜수 (C02): at the far right side of the frame; about 5.9x as far from the camera as the nearest figure, so they must appear roughly 0.17x the nearest figure's height (smaller, deeper in the frame).\n- 형사: at the far right side of the frame; about 9.3x as far from the camera as the nearest figure, so they must appear roughly 0.11x the nearest figure's height (smaller, deeper in the frame).\nDEPTH CONTRACT: 형사 is farther than 한국인 남성 and must read visibly smaller and deeper in the frame.",
          "1:4": "SHOT 4 SCENE GEOGRAPHY (computed from the site-layout coordinates, frame-relative from this shot's camera — source of truth for where things are, which way paths run, figure depth and relative size):\n- 숲속: at the near right side of the frame.\n- 우거진 수풀 (path): runs from the far left side of the frame to the far left side of the frame.\n- 현장: at the near right side of the frame.\n- 폴리스 라인 (path): runs from the mid-distance left side of the frame to the far right side of the frame.\nFIGURES:\n- 한국인 남성 (C05): at the near center of the frame — NEAREST figure to the camera.\n- 검은 형상 (C13): at the mid-distance left side of the frame; about 2.0x as far from the camera as the nearest figure, so they must appear roughly 0.50x the nearest figure's height (smaller, deeper in the frame); in motion: already partway along their path, heading toward the near center of the frame; NOT heading into the 우거진 수풀.\nDEPTH CONTRACT: 검은 형상 is farther than 한국인 남성 and must read visibly smaller and deeper in the frame.",
          "3:3": "SHOT 3 SCENE GEOGRAPHY (computed from the site-layout coordinates, frame-relative from this shot's camera — source of truth for where things are, which way paths run, figure depth and relative size):\n- 숲속: at the far right side of the frame.\n- 우거진 수풀 (path): runs from the far left side of the frame to the far left side of the frame.\n- 현장: at the far right side of the frame.\n- 폴리스 라인 (path): runs from the far left side of the frame to the far right side of the frame.\nFIGURES:\n- 한국인 남성 (C05): at the near center of the frame — NEAREST figure to the camera.\n- 혜수 (C02): at the far right side of the frame; about 5.9x as far from the camera as the nearest figure, so they must appear roughly 0.17x the nearest figure's height (smaller, deeper in the frame).\n- 형사: at the far right side of the frame; about 9.3x as far from the camera as the nearest figure, so they must appear roughly 0.11x the nearest figure's height (smaller, deeper in the frame).\nDEPTH CONTRACT: 형사 is farther than 한국인 남성 and must read visibly smaller and deeper in the frame."
        }
      },
      {
        "group_id": "osl-l02",
        "location_id": "L02",
        "member_shots": [
          [
            2,
            3
          ],
          [
            2,
            5
          ]
        ],
        "layout": {
          "cameras": [
            {
              "look_at": [
                44.2,
                67.4
              ],
              "pos": [
                46.5,
                66.3
              ],
              "shot_index": 3
            },
            {
              "look_at": [
                45,
                65
              ],
              "pos": [
                50,
                36
              ],
              "shot_index": 5
            }
          ],
          "figures": [
            {
              "entity_token": "C05",
              "figure_id": "figure_한국인_남성",
              "label": "한국인 남성",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    44.2,
                    67.4
                  ],
                  "shot_index": 3
                }
              ]
            },
            {
              "entity_token": "C07",
              "figure_id": "figure_한국인_여성",
              "label": "한국인 여성",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    44.8,
                    67.1
                  ],
                  "shot_index": 3
                },
                {
                  "moving_toward": null,
                  "pos": [
                    46,
                    55
                  ],
                  "shot_index": 5
                }
              ]
            }
          ],
          "landmarks": [
            {
              "id": "lm_alley_asphalt",
              "kind": "area",
              "label": "wet asphalt alley",
              "points": [
                [
                  32,
                  0
                ],
                [
                  68,
                  0
                ],
                [
                  66,
                  100
                ],
                [
                  34,
                  100
                ]
              ]
            },
            {
              "id": "lm_utility_pole",
              "kind": "point",
              "label": "utility pole",
              "points": [
                [
                  42.5,
                  68.2
                ]
              ]
            },
            {
              "id": "lm_dim_streetlight",
              "kind": "point",
              "label": "dim streetlight",
              "points": [
                [
                  55,
                  84
                ]
              ]
            }
          ]
        },
        "spatial_summaries": {
          "2:3": "SHOT 3 SCENE GEOGRAPHY (computed from the site-layout coordinates, frame-relative from this shot's camera — source of truth for where things are, which way paths run, figure depth and relative size):\n- wet asphalt alley (path): runs from the far right side of the frame to the far left side of the frame.\n- utility pole: at the mid-distance center of the frame.\n- dim streetlight: at the far right side of the frame.\nFIGURES:\n- 한국인 여성 (C07): at the near center of the frame — NEAREST figure to the camera.\n- 한국인 남성 (C05): at the mid-distance center of the frame; about 1.4x as far from the camera as the nearest figure, so they must appear roughly 0.74x the nearest figure's height (smaller, deeper in the frame).\nDEPTH CONTRACT: 한국인 남성 is farther than 한국인 여성 and must read visibly smaller and deeper in the frame.",
          "2:5": "SHOT 5 SCENE GEOGRAPHY (computed from the site-layout coordinates, frame-relative from this shot's camera — source of truth for where things are, which way paths run, figure depth and relative size):\n- wet asphalt alley (path): runs from the mid-distance left side of the frame to the far right side of the frame.\n- utility pole: at the mid-distance center of the frame.\n- dim streetlight: at the mid-distance right side of the frame.\nFIGURES:\n- 한국인 여성 (C07): at the near center of the frame — NEAREST figure to the camera."
        }
      },
      {
        "group_id": "osl-l03",
        "location_id": "L03",
        "member_shots": [
          [
            10,
            3
          ],
          [
            10,
            7
          ]
        ],
        "layout": {
          "cameras": [
            {
              "look_at": [
                42,
                36
              ],
              "pos": [
                42,
                49
              ],
              "shot_index": 3
            },
            {
              "look_at": [
                70,
                27
              ],
              "pos": [
                70,
                46
              ],
              "shot_index": 7
            }
          ],
          "figures": [
            {
              "entity_token": "C10",
              "figure_id": "figure_남자",
              "label": "남자",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    42,
                    37
                  ],
                  "shot_index": 3
                },
                {
                  "moving_toward": null,
                  "pos": [
                    70,
                    27
                  ],
                  "shot_index": 7
                }
              ]
            },
            {
              "entity_token": "C04",
              "figure_id": "figure_민숙",
              "label": "민숙",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    70,
                    28
                  ],
                  "shot_index": 7
                }
              ]
            }
          ],
          "landmarks": [
            {
              "id": "landmark_rooftop",
              "kind": "area",
              "label": "rooftop",
              "points": [
                [
                  5,
                  5
                ],
                [
                  95,
                  5
                ],
                [
                  95,
                  95
                ],
                [
                  5,
                  95
                ]
              ]
            },
            {
              "id": "landmark_rooftop_room",
              "kind": "area",
              "label": "rooftop room",
              "points": [
                [
                  28,
                  8
                ],
                [
                  86,
                  8
                ],
                [
                  86,
                  36
                ],
                [
                  28,
                  36
                ]
              ]
            },
            {
              "id": "landmark_iron_entrance_door",
              "kind": "line",
              "label": "iron entrance door",
              "points": [
                [
                  38,
                  36
                ],
                [
                  46,
                  36
                ]
              ]
            },
            {
              "id": "landmark_window",
              "kind": "line",
              "label": "window",
              "points": [
                [
                  64,
                  36
                ],
                [
                  76,
                  36
                ]
              ]
            },
            {
              "id": "landmark_water_tank",
              "kind": "area",
              "label": "water tank",
              "points": [
                [
                  10,
                  10
                ],
                [
                  24,
                  10
                ],
                [
                  24,
                  24
                ],
                [
                  10,
                  24
                ]
              ]
            },
            {
              "id": "landmark_clothesline",
              "kind": "line",
              "label": "clothesline",
              "points": [
                [
                  14,
                  50
                ],
                [
                  88,
                  50
                ]
              ]
            }
          ]
        },
        "spatial_summaries": {
          "10:3": "SHOT 3 SCENE GEOGRAPHY (computed from the site-layout coordinates, frame-relative from this shot's camera — source of truth for where things are, which way paths run, figure depth and relative size):\n- rooftop: at the near left side of the frame.\n- rooftop room: at the far left side of the frame.\n- iron entrance door (path): runs from the near right side of the frame to the near left side of the frame.\n- window (path): runs from the mid-distance left side of the frame to the far left side of the frame.\n- water tank: at the far right side of the frame.\n- clothesline (path): runs from the mid-distance right side of the frame to the far left side of the frame.\nFIGURES:\n- 남자 (C10): at the near center of the frame — NEAREST figure to the camera.",
          "10:7": "SHOT 7 SCENE GEOGRAPHY (computed from the site-layout coordinates, frame-relative from this shot's camera — source of truth for where things are, which way paths run, figure depth and relative size):\n- rooftop: at the near right side of the frame.\n- rooftop room: at the mid-distance right side of the frame.\n- iron entrance door (path): runs from the mid-distance right side of the frame to the mid-distance right side of the frame.\n- window (path): runs from the near right side of the frame to the near left side of the frame.\n- water tank: at the far right side of the frame.\n- clothesline (path): runs from the near left side of the frame to the far right side of the frame.\nFIGURES:\n- 민숙 (C04): at the near center of the frame — NEAREST figure to the camera.\n- 남자 (C10): at the near center of the frame; about 1.1x as far from the camera as the nearest figure, so they must appear roughly 0.95x the nearest figure's height (smaller, deeper in the frame).\nDEPTH CONTRACT: 남자 is farther than 민숙 and must read visibly smaller and deeper in the frame."
        }
      },
      {
        "group_id": "osl-l05",
        "location_id": "L05",
        "member_shots": [
          [
            11,
            4
          ],
          [
            13,
            2
          ],
          [
            13,
            4
          ]
        ],
        "layout": {
          "cameras": [
            {
              "look_at": [
                50,
                76.5
              ],
              "pos": [
                50,
                82.2
              ],
              "shot_index": 1104
            },
            {
              "look_at": [
                62,
                28
              ],
              "pos": [
                62,
                14
              ],
              "shot_index": 1302
            },
            {
              "look_at": [
                66.5,
                29.2
              ],
              "pos": [
                60.8,
                26
              ],
              "shot_index": 1304
            }
          ],
          "figures": [
            {
              "entity_token": "C01",
              "figure_id": "F01",
              "label": "수리영",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    50,
                    76.5
                  ],
                  "shot_index": 1104
                },
                {
                  "moving_toward": null,
                  "pos": [
                    62,
                    28
                  ],
                  "shot_index": 1302
                },
                {
                  "moving_toward": null,
                  "pos": [
                    62,
                    28
                  ],
                  "shot_index": 1304
                }
              ]
            },
            {
              "entity_token": "C02",
              "figure_id": "F02",
              "label": "혜수",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    67,
                    29
                  ],
                  "shot_index": 1304
                }
              ]
            }
          ],
          "landmarks": [
            {
              "id": "L01",
              "kind": "line",
              "label": "alley lane",
              "points": [
                [
                  5,
                  8
                ],
                [
                  25,
                  8
                ]
              ]
            },
            {
              "id": "L02",
              "kind": "area",
              "label": "multi-family villa yard",
              "points": [
                [
                  18,
                  10
                ],
                [
                  82,
                  10
                ],
                [
                  82,
                  38
                ],
                [
                  18,
                  38
                ]
              ]
            },
            {
              "id": "L03",
              "kind": "area",
              "label": "multi-family villa exterior",
              "points": [
                [
                  20,
                  35
                ],
                [
                  80,
                  35
                ],
                [
                  80,
                  72
                ],
                [
                  20,
                  72
                ]
              ]
            },
            {
              "id": "L04",
              "kind": "line",
              "label": "stairs connected to rooftop room",
              "points": [
                [
                  66,
                  28
                ],
                [
                  70,
                  48
                ],
                [
                  62,
                  66
                ],
                [
                  50,
                  76
                ]
              ]
            },
            {
              "id": "L05",
              "kind": "area",
              "label": "rooftop outside",
              "points": [
                [
                  25,
                  68
                ],
                [
                  75,
                  68
                ],
                [
                  75,
                  88
                ],
                [
                  25,
                  88
                ]
              ]
            },
            {
              "id": "L06",
              "kind": "area",
              "label": "rooftop room",
              "points": [
                [
                  36,
                  84
                ],
                [
                  64,
                  84
                ],
                [
                  64,
                  98
                ],
                [
                  36,
                  98
                ]
              ]
            },
            {
              "id": "L07",
              "kind": "line",
              "label": "half-open iron front door",
              "points": [
                [
                  46,
                  84
                ],
                [
                  54,
                  84
                ]
              ]
            }
          ]
        },
        "spatial_summaries": {}
      },
      {
        "group_id": "osl-l06",
        "location_id": "L06",
        "member_shots": [
          [
            6,
            1
          ],
          [
            9,
            1
          ],
          [
            24,
            1
          ]
        ],
        "layout": {
          "cameras": [
            {
              "look_at": [
                35,
                52
              ],
              "pos": [
                35,
                63
              ],
              "shot_index": 1
            },
            {
              "look_at": [
                62,
                48.6
              ],
              "pos": [
                62,
                59.5
              ],
              "shot_index": 2
            },
            {
              "look_at": [
                80,
                46.4
              ],
              "pos": [
                84,
                45.9
              ],
              "shot_index": 3
            }
          ],
          "figures": [
            {
              "entity_token": "C01",
              "figure_id": "F01",
              "label": "수리영",
              "positions": [
                {
                  "moving_toward": [
                    70,
                    47.8
                  ],
                  "pos": [
                    35,
                    52
                  ],
                  "shot_index": 1
                },
                {
                  "moving_toward": [
                    92,
                    45
                  ],
                  "pos": [
                    62,
                    48.6
                  ],
                  "shot_index": 2
                },
                {
                  "moving_toward": [
                    86,
                    45.6
                  ],
                  "pos": [
                    80,
                    46.4
                  ],
                  "shot_index": 3
                }
              ]
            }
          ],
          "landmarks": [
            {
              "id": "L01",
              "kind": "area",
              "label": "coastal road",
              "points": [
                [
                  0,
                  51
                ],
                [
                  100,
                  39
                ],
                [
                  100,
                  49
                ],
                [
                  0,
                  61
                ]
              ]
            },
            {
              "id": "L02",
              "kind": "line",
              "label": "shoreline",
              "points": [
                [
                  0,
                  34
                ],
                [
                  100,
                  22
                ]
              ]
            },
            {
              "id": "L03",
              "kind": "area",
              "label": "sea / coast",
              "points": [
                [
                  0,
                  0
                ],
                [
                  100,
                  0
                ],
                [
                  100,
                  22
                ],
                [
                  0,
                  34
                ]
              ]
            }
          ]
        },
        "spatial_summaries": {
          "6:1": "SHOT 1 SCENE GEOGRAPHY (computed from the site-layout coordinates, frame-relative from this shot's camera — source of truth for where things are, which way paths run, figure depth and relative size):\n- coastal road (path): runs from the far right side of the frame to the far left side of the frame.\n- shoreline (path): runs from the far right side of the frame to the far left side of the frame.\n- sea / coast (path): runs from the far right side of the frame to the far left side of the frame.\nFIGURES:\n- 수리영 (C01): at the near center of the frame — NEAREST figure to the camera; in motion: already partway along their path, heading toward the far left side of the frame; their path follows the coastal road; NOT heading into the sea / coast.",
          "9:1": "SHOT 1 SCENE GEOGRAPHY (computed from the site-layout coordinates, frame-relative from this shot's camera — source of truth for where things are, which way paths run, figure depth and relative size):\n- coastal road (path): runs from the far right side of the frame to the far left side of the frame.\n- shoreline (path): runs from the far right side of the frame to the far left side of the frame.\n- sea / coast (path): runs from the far right side of the frame to the far left side of the frame.\nFIGURES:\n- 수리영 (C01): at the near center of the frame — NEAREST figure to the camera; in motion: already partway along their path, heading toward the far left side of the frame; their path follows the coastal road; NOT heading into the sea / coast.",
          "24:1": "SHOT 1 SCENE GEOGRAPHY (computed from the site-layout coordinates, frame-relative from this shot's camera — source of truth for where things are, which way paths run, figure depth and relative size):\n- coastal road (path): runs from the far right side of the frame to the far left side of the frame.\n- shoreline (path): runs from the far right side of the frame to the far left side of the frame.\n- sea / coast (path): runs from the far right side of the frame to the far left side of the frame.\nFIGURES:\n- 수리영 (C01): at the near center of the frame — NEAREST figure to the camera; in motion: already partway along their path, heading toward the far left side of the frame; their path follows the coastal road; NOT heading into the sea / coast."
        }
      },
      {
        "group_id": "osl-l08",
        "location_id": "L08",
        "member_shots": [
          [
            8,
            3
          ],
          [
            8,
            6
          ],
          [
            19,
            5
          ]
        ],
        "layout": {
          "cameras": [
            {
              "look_at": [
                52,
                68
              ],
              "pos": [
                52,
                86
              ],
              "shot_index": 3
            },
            {
              "look_at": [
                55,
                30
              ],
              "pos": [
                59,
                24
              ],
              "shot_index": 6
            },
            {
              "look_at": [
                65,
                29
              ],
              "pos": [
                65,
                36
              ],
              "shot_index": 5
            }
          ],
          "figures": [
            {
              "entity_token": null,
              "figure_id": "F01",
              "label": "수리영",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    52,
                    68
                  ],
                  "shot_index": 3
                },
                {
                  "moving_toward": null,
                  "pos": [
                    53,
                    30
                  ],
                  "shot_index": 6
                },
                {
                  "moving_toward": null,
                  "pos": [
                    65,
                    29
                  ],
                  "shot_index": 5
                }
              ]
            }
          ],
          "landmarks": [
            {
              "id": "L01",
              "kind": "area",
              "label": "large mart",
              "points": [
                [
                  25,
                  35
                ],
                [
                  85,
                  35
                ],
                [
                  85,
                  90
                ],
                [
                  25,
                  90
                ]
              ]
            },
            {
              "id": "L02",
              "kind": "line",
              "label": "market storefront glass",
              "points": [
                [
                  35,
                  35
                ],
                [
                  75,
                  35
                ]
              ]
            },
            {
              "id": "L03",
              "kind": "area",
              "label": "outside street",
              "points": [
                [
                  0,
                  15
                ],
                [
                  100,
                  15
                ],
                [
                  100,
                  35
                ],
                [
                  0,
                  35
                ]
              ]
            },
            {
              "id": "L04",
              "kind": "line",
              "label": "high grocery shelves aisle",
              "points": [
                [
                  47,
                  55
                ],
                [
                  47,
                  88
                ],
                [
                  57,
                  88
                ],
                [
                  57,
                  55
                ]
              ]
            },
            {
              "id": "L05",
              "kind": "point",
              "label": "exterior CCTV camera housing",
              "points": [
                [
                  65,
                  36
                ]
              ]
            },
            {
              "id": "L06",
              "kind": "area",
              "label": "pavement below the CCTV",
              "points": [
                [
                  50,
                  25
                ],
                [
                  80,
                  25
                ],
                [
                  80,
                  35
                ],
                [
                  50,
                  35
                ]
              ]
            }
          ]
        },
        "spatial_summaries": {
          "8:3": "SHOT 3 SCENE GEOGRAPHY (computed from the site-layout coordinates, frame-relative from this shot's camera — source of truth for where things are, which way paths run, figure depth and relative size):\n- large mart: at the mid-distance center of the frame.\n- market storefront glass (path): runs from the far right side of the frame to the far left side of the frame.\n- outside street (path): runs from the far left side of the frame to the far right side of the frame.\n- high grocery shelves aisle (path): runs from the near left side of the frame to the mid-distance center of the frame.\n- exterior CCTV camera housing: at the far left side of the frame.\n- pavement below the CCTV (path): runs from the far left side of the frame to the far center of the frame.\nFIGURES:\n- 수리영: at the near center of the frame — NEAREST figure to the camera.",
          "8:6": "SHOT 6 SCENE GEOGRAPHY (computed from the site-layout coordinates, frame-relative from this shot's camera — source of truth for where things are, which way paths run, figure depth and relative size):\n- large mart: at the far right side of the frame.\n- market storefront glass (path): runs from the mid-distance right side of the frame to the far left side of the frame.\n- outside street (path): runs from the far right side of the frame to the far left side of the frame.\n- high grocery shelves aisle (path): runs from the far right side of the frame to the far right side of the frame.\n- exterior CCTV camera housing: at the mid-distance right side of the frame.\n- pavement below the CCTV (path): runs from the near left side of the frame to the far right side of the frame.\nFIGURES:\n- 수리영: at the near center of the frame — NEAREST figure to the camera.",
          "19:5": "SHOT 5 SCENE GEOGRAPHY (computed from the site-layout coordinates, frame-relative from this shot's camera — source of truth for where things are, which way paths run, figure depth and relative size):\n- large mart: at the far right side of the frame.\n- market storefront glass (path): runs from the mid-distance left side of the frame to the far right side of the frame.\n- outside street (path): runs from the far left side of the frame to the far right side of the frame.\n- high grocery shelves aisle (path): runs from the far right side of the frame to the far center of the frame.\n- exterior CCTV camera housing: at the near center of the frame.\n- pavement below the CCTV (path): runs from the mid-distance left side of the frame to the far right side of the frame.\nFIGURES:\n- 수리영: at the near center of the frame — NEAREST figure to the camera."
        }
      },
      {
        "group_id": "osl-l11",
        "location_id": "L11",
        "member_shots": [
          [
            15,
            1
          ],
          [
            15,
            5
          ]
        ],
        "layout": {
          "cameras": [
            {
              "look_at": [
                48,
                50
              ],
              "pos": [
                31,
                37
              ],
              "shot_index": 1
            },
            {
              "look_at": [
                58,
                65
              ],
              "pos": [
                43,
                41
              ],
              "shot_index": 5
            }
          ],
          "figures": [
            {
              "entity_token": "C01",
              "figure_id": "figure_수리영",
              "label": "수리영",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    36,
                    46
                  ],
                  "shot_index": 1
                },
                {
                  "moving_toward": [
                    95,
                    94
                  ],
                  "pos": [
                    82,
                    84
                  ],
                  "shot_index": 5
                }
              ]
            },
            {
              "entity_token": "C02",
              "figure_id": "figure_혜수",
              "label": "혜수",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    45,
                    55
                  ],
                  "shot_index": 5
                }
              ]
            }
          ],
          "landmarks": [
            {
              "id": "ocean",
              "kind": "area",
              "label": "dark night ocean",
              "points": [
                [
                  0,
                  0
                ],
                [
                  100,
                  0
                ],
                [
                  100,
                  28
                ],
                [
                  0,
                  32
                ]
              ]
            },
            {
              "id": "shoreline",
              "kind": "line",
              "label": "shoreline",
              "points": [
                [
                  0,
                  32
                ],
                [
                  100,
                  28
                ]
              ]
            },
            {
              "id": "coastal_road",
              "kind": "area",
              "label": "coastal road",
              "points": [
                [
                  34,
                  51
                ],
                [
                  42,
                  43
                ],
                [
                  98,
                  87
                ],
                [
                  91,
                  96
                ]
              ]
            },
            {
              "id": "bus_stop_shelter",
              "kind": "area",
              "label": "bus stop shelter",
              "points": [
                [
                  30,
                  38
                ],
                [
                  45,
                  39
                ],
                [
                  46,
                  51
                ],
                [
                  31,
                  51
                ]
              ]
            },
            {
              "id": "bus_stop_bench",
              "kind": "line",
              "label": "bus stop bench",
              "points": [
                [
                  33,
                  45
                ],
                [
                  44,
                  45
                ]
              ]
            }
          ]
        },
        "spatial_summaries": {
          "15:1": "SHOT 1 SCENE GEOGRAPHY (computed from the site-layout coordinates, frame-relative from this shot's camera — source of truth for where things are, which way paths run, figure depth and relative size):\n- dark night ocean (path): runs from the far left side of the frame to the far right side of the frame.\n- shoreline (path): runs from the far left side of the frame to the far right side of the frame.\n- coastal road (path): runs from the mid-distance left side of the frame to the far center of the frame.\n- bus stop shelter: at the near center of the frame.\n- bus stop bench (path): runs from the near left side of the frame to the mid-distance center of the frame.\nFIGURES:\n- 수리영 (C01): at the near left side of the frame — NEAREST figure to the camera.",
          "15:5": "SHOT 5 SCENE GEOGRAPHY (computed from the site-layout coordinates, frame-relative from this shot's camera — source of truth for where things are, which way paths run, figure depth and relative size):\n- dark night ocean (path): runs from the far left side of the frame to the far right side of the frame.\n- shoreline (path): runs from the far left side of the frame to the far right side of the frame.\n- coastal road (path): runs from the near left side of the frame to the far right side of the frame.\n- bus stop shelter: at the near left side of the frame.\n- bus stop bench (path): runs from the near left side of the frame to the near left side of the frame.\nFIGURES:\n- 혜수 (C02): at the near left side of the frame — NEAREST figure to the camera.\n- 수리영 (C01): at the far center of the frame; about 4.1x as far from the camera as the nearest figure, so they must appear roughly 0.24x the nearest figure's height (smaller, deeper in the frame); in motion: already partway along their path, heading toward the far right side of the frame; their path follows the coastal road; moving away from 혜수; NOT heading into the dark night ocean.\nDEPTH CONTRACT: 수리영 is farther than 혜수 and must read visibly smaller and deeper in the frame."
        }
      },
      {
        "group_id": "osl-l15",
        "location_id": "L15",
        "member_shots": [
          [
            26,
            1
          ],
          [
            26,
            5
          ]
        ],
        "layout": {
          "cameras": [
            {
              "look_at": [
                50,
                75
              ],
              "pos": [
                32,
                22
              ],
              "shot_index": 1
            },
            {
              "look_at": [
                72,
                45
              ],
              "pos": [
                70,
                39
              ],
              "shot_index": 5
            }
          ],
          "figures": [
            {
              "entity_token": "C01",
              "figure_id": "fig_suriyeong",
              "label": "수리영",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    24,
                    43
                  ],
                  "shot_index": 1
                }
              ]
            },
            {
              "entity_token": null,
              "figure_id": "fig_inwoo",
              "label": "인우",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    74,
                    44
                  ],
                  "shot_index": 5
                }
              ]
            }
          ],
          "landmarks": [
            {
              "id": "L1",
              "kind": "area",
              "label": "fog-covered sea",
              "points": [
                [
                  0,
                  50
                ],
                [
                  100,
                  50
                ],
                [
                  100,
                  100
                ],
                [
                  0,
                  100
                ]
              ]
            },
            {
              "id": "L2",
              "kind": "area",
              "label": "vacant pier / wooden dock edge",
              "points": [
                [
                  8,
                  38
                ],
                [
                  92,
                  38
                ],
                [
                  92,
                  50
                ],
                [
                  8,
                  50
                ]
              ]
            },
            {
              "id": "L3",
              "kind": "area",
              "label": "black wet rocks",
              "points": [
                [
                  13,
                  36
                ],
                [
                  30,
                  35
                ],
                [
                  35,
                  47
                ],
                [
                  18,
                  53
                ],
                [
                  9,
                  47
                ]
              ]
            }
          ]
        },
        "spatial_summaries": {
          "26:1": "SHOT 1 SCENE GEOGRAPHY (computed from the site-layout coordinates, frame-relative from this shot's camera — source of truth for where things are, which way paths run, figure depth and relative size):\n- fog-covered sea: at the mid-distance center of the frame.\n- vacant pier / wooden dock edge (path): runs from the mid-distance left side of the frame to the far right side of the frame.\n- black wet rocks: at the near left side of the frame.\nFIGURES:\n- 수리영 (C01): at the near left side of the frame — NEAREST figure to the camera.",
          "26:5": "SHOT 5 SCENE GEOGRAPHY (computed from the site-layout coordinates, frame-relative from this shot's camera — source of truth for where things are, which way paths run, figure depth and relative size):\n- fog-covered sea: at the far left side of the frame.\n- vacant pier / wooden dock edge (path): runs from the far right side of the frame to the far left side of the frame.\n- black wet rocks: at the far left side of the frame.\nFIGURES:\n- 인우: at the near right side of the frame — NEAREST figure to the camera."
        }
      }
    ],
    "prompt_overrides": {
      "1:4": {
        "location_id": "L01",
        "group_id": "osl-l01",
        "revised": {
          "0": "Photorealistic cinematic still. C05O07 in dark hiking clothes, an Asian adult man, crashes onto the muddy forest floor in the lower-center foreground. C10O11 in a black zip-up hoodie, an Asian adult man appearing as a dark-haired silhouette with face not visible, is already in the mid-distance left side of the frame in left profile, visibly smaller and deeper than C05O07, partway along a path heading toward the near center of the frame and not into the dense underbrush, forcefully driving C05O07 down into the dirt. C05O07 is in right profile, head recoiled back, looking up with a terrified wide-eyed expression, missing one shoe, a large bleeding tooth mark exposed on the thigh. The low side camera angles slightly upward from the ground. The shared forest floor is churned with damp dirt and wet fallen leaves, smeared with sharp red blood accents. Airborne leaves and dirt kick up toward the lens, frozen mid-air at the moment of collision. Muted golden dusk backlight filters weakly through thick fog, heavily swallowed by deep green-black shadows. Slanted, wet dark tree trunks lean across the dense underbrush in the background, framing the violent impact."
        },
        "provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "c6045e67a7119aa1",
            "revised_prompt_hash": "6e2498a692bae246"
          }
        },
        "edited_spans": {
          "0": [
            {
              "original": "leaps into the frame from the upper left in left profile",
              "revised": "is already in the mid-distance left side of the frame in left profile, visibly smaller and deeper than C05O07, partway along a path heading toward the near center of the frame and not into the dense underbrush"
            }
          ]
        },
        "no_edit_reason": {}
      },
      "3:3": {
        "location_id": "L01",
        "group_id": "osl-l01",
        "revised": {
          "0": "Photorealistic cinematic still. C02O03 in a dark detective blouson, a Korean middle-aged woman with dark neat hair, stands on the far right side of the frame, set much deeper in the scene and appearing roughly one-sixth the height of the forensic-vested man, framed by detectives on the far right who read even smaller and deeper. Facing the camera with shoulders locked forward, she maintains a sharp facial impression, her eyes fixed off-screen just past the lens, fully alive and observant. A Korean adult man in a police forensic vest acts as a cropped, out-of-focus barrier near the center of the frame, seen from an over-the-shoulder angle with his side and back plane facing the lens, leaning into the evidence and looking down. [: The immediate surroundings feature a highly defocused forensic scene, the daylight flattened by coastal haze and broadcast compression, with muted grays and hard police-line yellow tape cutting across, all overlaid with a faint, cool-toned digital broadcast texture.]"
        },
        "provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "d1058bb23e9fd54d",
            "revised_prompt_hash": "244aa74f2e859c96"
          }
        },
        "edited_spans": {
          "0": [
            {
              "original": "stands in the middle-center foreground, framed between detectives",
              "revised": "stands on the far right side of the frame, set much deeper in the scene and appearing roughly one-sixth the height of the forensic-vested man, framed by detectives on the far right who read even smaller and deeper"
            },
            {
              "original": "at the frame edge",
              "revised": "near the center of the frame"
            }
          ]
        },
        "no_edit_reason": {}
      },
      "2:3": {
        "location_id": "L02",
        "group_id": "osl-l02",
        "revised": {
          "0": "Photorealistic cinematic still. An extreme close-up at shoulder height, tightly framing the predatory contact. The wet asphalt alley runs from the far right side of the frame to the far left side, with the utility pole at the mid-distance center and the dim streetlight at the far right. C12O13, already at the mid-distance center of the frame, visibly smaller and deeper in the frame than C07, in a dark canvas jacket, a Korean adult man in right profile, jaw clamped forward, gaze looking down with faint red eyes, his teeth deeply sunk into the exposed neck. C07 in a trench coat, a Korean adult woman in left profile, her neck arched back, eyes completely closed, remaining still and unresponsive in a severely injured state. The focus sharply isolates the man's strained lower face and the woman's compressed skin at the bite mark, with a hard red accent on the wound. Behind them, [: a blurred vertical old utility pole and sickly yellow-green streetlight pools enveloped in damp blue-black alley shadow and fog] fill the frame edges in shallow depth of field. Low sodium lighting casts a dim waxy sheen on their skin."
        },
        "provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "5ab9ec8aeb95e7a2",
            "revised_prompt_hash": "32146e969b19c313"
          }
        },
        "edited_spans": {
          "0": [
            {
              "original": "An extreme close-up at shoulder height, tightly framing the predatory contact.",
              "revised": "An extreme close-up at shoulder height, tightly framing the predatory contact. The wet asphalt alley runs from the far right side of the frame to the far left side, with the utility pole at the mid-distance center and the dim streetlight at the far right."
            },
            {
              "original": "C12O13 in a dark canvas jacket, a Korean adult man in right profile",
              "revised": "C12O13, already at the mid-distance center of the frame, visibly smaller and deeper in the frame than C07, in a dark canvas jacket, a Korean adult man in right profile"
            }
          ]
        },
        "no_edit_reason": {}
      },
      "10:3": {
        "location_id": "L03",
        "group_id": "osl-l03",
        "revised": {
          "0": "Photorealistic cinematic still. From a very low observer position resting nearly on the cold silver-gray cement floor, a dense, elongated black shadow of a Korean adult male figure extends across the gritty surface toward the bottom of the frame. Near the upper center of the frame, the dark shoes and lower legs of the man stand halted at the threshold of the weathered iron door, facing away from the camera. The exterior environment is bathed in hard, cold blue-black moonlight, illuminating the rooftop deck near the edge of the deep shadow, highlighting the existing dried leaves resting on its surface."
        },
        "provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "0d0791e3e0fd0f68",
            "revised_prompt_hash": "0991def574a8054f"
          }
        },
        "edited_spans": {
          "0": [
            {
              "original": "Near the upper edge of the frame",
              "revised": "Near the upper center of the frame"
            }
          ]
        },
        "no_edit_reason": {}
      },
      "10:7": {
        "location_id": "L03",
        "group_id": "osl-l03",
        "revised": {
          "0": "Photorealistic cinematic still. A Korean adult man silhouette, visibly smaller and set slightly deeper at the near center, looms above, pressing over a Korean middle-aged woman crouched silhouette below in the lower-center background. The camera holds a locked eye-level voyeur position directly outside the window, squared to the closed, slightly smudged window glass. The figures appear as flat, dense shadow shapes projected onto a thin closed curtain behind the glass. The man silhouette, positioned facing away from the camera with his gaze fixed on the woman, forces his weight down, his facial features and clothing textures completely obscured by darkness. The woman silhouette, turned in right profile and looking down, cowers in a severely injured state beneath his dominant form. Weak interior amber backlight pushes the dark figures against the fabric. The exterior environment is bathed in cold blue-black moonlight, casting sharp silver-gray shadows across the weathered window frame."
        },
        "provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "25dbe6a1ec015c4b",
            "revised_prompt_hash": "3d3843b2c606dd07"
          }
        },
        "edited_spans": {
          "0": [
            {
              "original": "A huge Korean adult man silhouette above occupies the middle-center background",
              "revised": "A Korean adult man silhouette, visibly smaller and set slightly deeper at the near center, looms above"
            }
          ]
        },
        "no_edit_reason": {}
      },
      "6:1": {
        "location_id": "L06",
        "group_id": "osl-l06",
        "revised": {
          "0": "Photorealistic cinematic still. C01O01 in a casual jacket, a Korean young woman with an early 20s face, dark long hair, clear facial features, and natural complexion and hair, appears in the middle-center midground, already partway along the coastal road toward the far left side of the frame, not heading into the sea / coast. She is seen in right profile, gazing off-screen, seated on the saddle of the bicycle in mid-pedal with one knee bent driving the pedal downward, her dark long hair flowing back in the direction opposite to motion. Her hands firmly grip the handlebar, with the bicycle frame and both wheels fully visible below her against the dry center of the road. Daylight is diffused through thick, low-drifting sea fog, washing the misty tidal flats in the background in pale, muted blue-gray coastal tones. Soft gold rim light catches the edges of her hair and the metallic parts of the bicycle, while the damp edges of the coastal road slide behind her in a steady lateral blur."
        },
        "provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "ebd342dcc1a64007",
            "revised_prompt_hash": "221d0a0c6f5d992a"
          }
        },
        "edited_spans": {
          "0": [
            {
              "original": "appears in the middle-center midground, moving toward the right side of the coastal road",
              "revised": "appears in the middle-center midground, already partway along the coastal road toward the far left side of the frame, not heading into the sea / coast"
            }
          ]
        },
        "no_edit_reason": {}
      },
      "9:1": {
        "location_id": "L06",
        "group_id": "osl-l06",
        "revised": {
          "0": "Photorealistic cinematic still. C01O01 in a casual outfit, a Korean young woman in her early 20s, is positioned on a bicycle in the middle-center midground, already partway along the coastal road as it leads toward the far left side of the frame, not into the sea / coast. Captured from a low observer at ground level, the bicycle's frame and wheels cross the lower frame, her upper body bent over the handlebars in right profile. She is suspended in mid-pedal with one foot driving down, her dark long hair and wind-pulled clothing stretched backward toward the right edge, opposite her heading toward the far left side of the frame along the coastal road. Her eyes gaze into the distance. A hard gold-white streetlamp pool from above casts a bright backlight, carving her backlit body volume out of the thick deep blue-black fog, with rim light tracing her clear facial features and natural complexion. The damp asphalt of the coastal road lane stretches diagonally into the dark fog, swallowing the ambient color and leaving only a wet rim of light."
        },
        "provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "3dbbd8e0a3ac5391",
            "revised_prompt_hash": "86f27932b7154330"
          }
        },
        "edited_spans": {
          "0": [
            {
              "original": "is positioned on a bicycle in the middle-center midground, moving toward a darker stretch of coastal road.",
              "revised": "is positioned on a bicycle in the middle-center midground, already partway along the coastal road as it leads toward the far left side of the frame, not into the sea / coast."
            },
            {
              "original": "stretched backward toward the left edge in the direction opposite to motion.",
              "revised": "stretched backward toward the right edge, opposite her heading toward the far left side of the frame along the coastal road."
            }
          ]
        },
        "no_edit_reason": {}
      },
      "24:1": {
        "location_id": "L06",
        "group_id": "osl-l06",
        "revised": {
          "0": "Photorealistic cinematic still. C01 in a dark wet windbreaker, a Korean young woman, is already partway along the flooded coastal road near the center of the frame, heading toward the far left side of the frame along the road, not into the sea / coast. The observer stays very low and frontal, positioned roughly at handlebar height. C01 is seated on the saddle in mid-pedal, facing the camera, looking at the camera, hands clamped across the handlebars of the bicycle. The bicycle frame, down tube, and front wheel occupy the lower frame amidst violently splashing water. She appears as a backlit figure against a sudden white-gold lightning flash from behind, body volume preserved with cold rim light tracing her shoulders and arms, her dark long hair trailing back in the direction opposite to motion. Heavy rain and sea mist obscure the dark environment, creating a cold storm palette that sharpens the upward-bursting water spray into silver-white."
        },
        "provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "1e73f9a14a67283d",
            "revised_prompt_hash": "81313e6b2fcdaf4f"
          }
        },
        "edited_spans": {
          "0": [
            {
              "original": "moves toward the camera along the flooded coastal road in the middle-center midground",
              "revised": "is already partway along the flooded coastal road near the center of the frame, heading toward the far left side of the frame along the road, not into the sea / coast"
            }
          ]
        },
        "no_edit_reason": {}
      },
      "8:3": {
        "location_id": "L08",
        "group_id": "osl-l08",
        "revised": {
          "0": "Photorealistic cinematic still. C01O01 in casual cycling clothing, a Korean young woman with an early 20s face, dark long hair, and natural complexion, positioned tight in the center of the close frame. She appears in left profile, her head turned sharply, her eyes fixed off-screen. Her head and shoulders occupy the foreground. [L09: An eye-level supermarket aisle bounded by high grocery shelves that form hard vertical borders on the left and right frame edges. Rows of product package fronts face the aisle in partial blur, their labels unreadable but forming oppressive color blocks behind her. Cool overhead fluorescent light spill flattens the aisle space, polluted by a faint amber dusk filtering from the aisle end, leaving her face pale against muted coastal blues and sickly greens.]"
        },
        "provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "3d493d360aabf48d",
            "revised_prompt_hash": "1ec852ba88e61e6e"
          }
        },
        "edited_spans": {
          "0": [
            {
              "original": "positioned tight in the center-right of the close frame",
              "revised": "positioned tight in the center of the close frame"
            }
          ]
        },
        "no_edit_reason": {}
      },
      "8:6": {
        "location_id": "L08",
        "group_id": "osl-l08",
        "revised": {
          "0": "Photorealistic cinematic still. C01O01 in a casual cycling jacket, a young Korean female teenager with dark long hair, positioned near center at three-quarter angle from the left. She is gazing down with a furrowed brow, a palm-sized modern black rectangular smartphone, P06, pressed to her ear. Observer holds static at eye level framed closely on her head and shoulders, focusing on the tension between her eyes. [L08: dim reflective market storefront glass immediately behind her, faintly showing the dark shop interior beyond while reflecting blurred taxi headlamps and lit neon sign faces angled toward the street, passing vehicle sides sliding laterally in the soft background]. Blue dusk and damp reflections wrap the face and shoulders in cold shadow, cut by faint red and gold neon accents."
        },
        "provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "0e4900cb04267217",
            "revised_prompt_hash": "d2a5632cc8f64c23"
          }
        },
        "edited_spans": {
          "0": [
            {
              "original": "positioned just left of center at three-quarter angle from the left",
              "revised": "positioned near center at three-quarter angle from the left"
            }
          ]
        },
        "no_edit_reason": {}
      },
      "15:5": {
        "location_id": "L11",
        "group_id": "osl-l11",
        "revised": {
          "0": "Photorealistic cinematic still. C02O03 in a dark jacket, a Korean middle-aged woman, stands in the middle-left foreground, looking toward a Korean young woman in the far center of the frame, already partway along the coastal road toward the far right side, with the coastal road vanishing line extending into the middle-right background, the damp asphalt acting as a shared spatial anchor between them. Captured at a three-quarter angle from the right, C02O03's hands are cupped at her open mouth, her mature facial features warmed slightly by muted roadside sodium light. The Korean young woman is seen with her back to the camera, visibly smaller and deeper in the frame, running mid-stride along the coastal road toward the far right side, moving away from the middle-left woman and not heading into the dark night ocean, one foot just lifted off the ground, her hair flowing back in the direction opposite to motion. The coastal night environment is enveloped in deep blue-black darkness and thickening cold sea fog that swallows the distant figure. Wet, unlit bus stop shelter panels sit obliquely near the left frame edge, catching faint dim reflections."
        },
        "provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "264a546f80bfc186",
            "revised_prompt_hash": "25d9450eb613b4b7"
          }
        },
        "edited_spans": {
          "0": [
            {
              "original": "a Korean young woman down the coastal road",
              "revised": "a Korean young woman in the far center of the frame, already partway along the coastal road toward the far right side"
            },
            {
              "original": "running mid-stride away along the receding road",
              "revised": "visibly smaller and deeper in the frame, running mid-stride along the coastal road toward the far right side, moving away from the middle-left woman and not heading into the dark night ocean"
            }
          ]
        },
        "no_edit_reason": {}
      }
    },
    "diagnostics": {
      "outdoor_location_count": 10,
      "seed_group_count": 8,
      "groups_extracted": 8,
      "skipped": [
        {
          "shot": "S4sh1",
          "reason": "no_figure"
        },
        {
          "shot": "S11sh3",
          "reason": "no_figure"
        },
        {
          "shot": "S17sh1",
          "reason": "no_figure"
        },
        {
          "shot": "S28sh1",
          "reason": "zoom_continuity_member"
        },
        {
          "shot": "S28sh4",
          "reason": "zoom_continuity_member"
        },
        {
          "shot": "S30sh1",
          "reason": "no_figure"
        }
      ],
      "layout_shape_violations": [],
      "layout_side_conflicts": [],
      "spatial_summary_skipped": [
        {
          "shot": "L05:sh2",
          "reason": "camera_missing_in_layout"
        },
        {
          "shot": "L05:sh4",
          "reason": "camera_missing_in_layout"
        },
        {
          "shot": "S11sh4",
          "reason": "no_spatial_summary"
        },
        {
          "shot": "S13sh2",
          "reason": "no_spatial_summary"
        },
        {
          "shot": "S13sh4",
          "reason": "no_spatial_summary"
        }
      ],
      "rewrite_failed": [],
      "revised_prompt_audit_violations": [],
      "zoom_member_exclusion_source": "shot_dependency_t2i",
      "composition_guide_failed": [],
      "composition_guide_candidate_skipped": [
        {
          "group": "osl-single-l08-s19-sh5",
          "reason": "judge_no_need",
          "confidence": "low"
        }
      ],
      "composition_guide_count": 16,
      "seed_prefilter_meta": {
        "1:3": {
          "why_candidate": "single_shot_outdoor_figure_present",
          "location_source": "primary_location",
          "location_id": "L01",
          "figure_count": 1,
          "framing_scale": "close",
          "character_angle_count": 1,
          "frame_spatial_contract_present": true,
          "available_structural_signal_names": [
            "framing_scale",
            "character_angles",
            "frame_spatial_contract",
            "gaze_direction"
          ]
        },
        "1:4": {
          "why_candidate": "cross_shot_or_multi_figure_present",
          "location_source": "frame_visible",
          "location_id": "L01",
          "figure_count": 2,
          "framing_scale": "wide",
          "character_angle_count": 2,
          "frame_spatial_contract_present": true,
          "available_structural_signal_names": [
            "framing_scale",
            "character_angles",
            "frame_spatial_contract",
            "gaze_direction"
          ]
        },
        "2:3": {
          "why_candidate": "cross_shot_or_multi_figure_present",
          "location_source": "primary_location",
          "location_id": "L02",
          "figure_count": 2,
          "framing_scale": "close",
          "character_angle_count": 2,
          "frame_spatial_contract_present": false,
          "available_structural_signal_names": [
            "framing_scale",
            "character_angles",
            "gaze_direction"
          ]
        },
        "2:5": {
          "why_candidate": "single_shot_outdoor_figure_present",
          "location_source": "frame_visible",
          "location_id": "L02",
          "figure_count": 1,
          "framing_scale": "wide",
          "character_angle_count": 1,
          "frame_spatial_contract_present": false,
          "available_structural_signal_names": [
            "framing_scale",
            "character_angles",
            "gaze_direction"
          ]
        },
        "3:3": {
          "why_candidate": "cross_shot_or_multi_figure_present",
          "location_source": "primary_location",
          "location_id": "L01",
          "figure_count": 2,
          "framing_scale": "close",
          "character_angle_count": 2,
          "frame_spatial_contract_present": true,
          "available_structural_signal_names": [
            "framing_scale",
            "character_angles",
            "frame_spatial_contract",
            "gaze_direction"
          ]
        },
        "6:1": {
          "why_candidate": "single_shot_outdoor_figure_present",
          "location_source": "frame_visible",
          "location_id": "L06",
          "figure_count": 1,
          "framing_scale": "wide",
          "character_angle_count": 1,
          "frame_spatial_contract_present": true,
          "available_structural_signal_names": [
            "framing_scale",
            "character_angles",
            "frame_spatial_contract",
            "gaze_direction"
          ]
        },
        "8:3": {
          "why_candidate": "single_shot_outdoor_figure_present",
          "location_source": "primary_location",
          "location_id": "L08",
          "figure_count": 1,
          "framing_scale": "close",
          "character_angle_count": 1,
          "frame_spatial_contract_present": false,
          "available_structural_signal_names": [
            "framing_scale",
            "character_angles",
            "gaze_direction"
          ]
        },
        "8:6": {
          "why_candidate": "single_shot_outdoor_figure_present",
          "location_source": "frame_visible",
          "location_id": "L08",
          "figure_count": 1,
          "framing_scale": "close",
          "character_angle_count": 1,
          "frame_spatial_contract_present": false,
          "available_structural_signal_names": [
            "framing_scale",
            "character_angles",
            "gaze_direction"
          ]
        },
        "9:1": {
          "why_candidate": "single_shot_outdoor_figure_present",
          "location_source": "frame_visible",
          "location_id": "L06",
          "figure_count": 1,
          "framing_scale": "wide",
          "character_angle_count": 1,
          "frame_spatial_contract_present": true,
          "available_structural_signal_names": [
            "framing_scale",
            "character_angles",
            "frame_spatial_contract",
            "gaze_direction"
          ]
        },
        "10:3": {
          "why_candidate": "single_shot_outdoor_figure_present",
          "location_source": "frame_visible",
          "location_id": "L03",
          "figure_count": 1,
          "framing_scale": "wide",
          "character_angle_count": 1,
          "frame_spatial_contract_present": false,
          "available_structural_signal_names": [
            "framing_scale",
            "character_angles",
            "gaze_direction"
          ]
        },
        "10:7": {
          "why_candidate": "cross_shot_or_multi_figure_present",
          "location_source": "primary_location",
          "location_id": "L03",
          "figure_count": 2,
          "framing_scale": "medium",
          "character_angle_count": 2,
          "frame_spatial_contract_present": true,
          "available_structural_signal_names": [
            "framing_scale",
            "character_angles",
            "frame_spatial_contract",
            "gaze_direction"
          ]
        },
        "11:4": {
          "why_candidate": "single_shot_outdoor_figure_present",
          "location_source": "primary_location",
          "location_id": "L05",
          "figure_count": 1,
          "framing_scale": "close",
          "character_angle_count": 1,
          "frame_spatial_contract_present": true,
          "available_structural_signal_names": [
            "framing_scale",
            "character_angles",
            "frame_spatial_contract",
            "gaze_direction"
          ]
        },
        "13:2": {
          "why_candidate": "single_shot_outdoor_figure_present",
          "location_source": "frame_visible",
          "location_id": "L05",
          "figure_count": 1,
          "framing_scale": "wide",
          "character_angle_count": 1,
          "frame_spatial_contract_present": false,
          "available_structural_signal_names": [
            "framing_scale",
            "character_angles",
            "gaze_direction"
          ]
        },
        "13:4": {
          "why_candidate": "cross_shot_or_multi_figure_present",
          "location_source": "primary_location",
          "location_id": "L05",
          "figure_count": 2,
          "framing_scale": "close",
          "character_angle_count": 2,
          "frame_spatial_contract_present": false,
          "available_structural_signal_names": [
            "framing_scale",
            "character_angles",
            "gaze_direction"
          ]
        },
        "15:1": {
          "why_candidate": "single_shot_outdoor_figure_present",
          "location_source": "frame_visible",
          "location_id": "L11",
          "figure_count": 1,
          "framing_scale": "wide",
          "character_angle_count": 1,
          "frame_spatial_contract_present": false,
          "available_structural_signal_names": [
            "framing_scale",
            "character_angles",
            "gaze_direction"
          ]
        },
        "15:5": {
          "why_candidate": "cross_shot_or_multi_figure_present",
          "location_source": "primary_location",
          "location_id": "L11",
          "figure_count": 2,
          "framing_scale": "wide",
          "character_angle_count": 2,
          "frame_spatial_contract_present": true,
          "available_structural_signal_names": [
            "framing_scale",
            "character_angles",
            "frame_spatial_contract",
            "gaze_direction"
          ]
        },
        "19:5": {
          "why_candidate": "single_shot_outdoor_figure_present",
          "location_source": "frame_visible",
          "location_id": "L08",
          "figure_count": 1,
          "framing_scale": "medium",
          "character_angle_count": 1,
          "frame_spatial_contract_present": false,
          "available_structural_signal_names": [
            "framing_scale",
            "character_angles",
            "gaze_direction"
          ]
        },
        "24:1": {
          "why_candidate": "single_shot_outdoor_figure_present",
          "location_source": "frame_visible",
          "location_id": "L06",
          "figure_count": 1,
          "framing_scale": "medium",
          "character_angle_count": 1,
          "frame_spatial_contract_present": true,
          "available_structural_signal_names": [
            "framing_scale",
            "character_angles",
            "frame_spatial_contract",
            "gaze_direction"
          ]
        },
        "26:1": {
          "why_candidate": "single_shot_outdoor_figure_present",
          "location_source": "frame_visible",
          "location_id": "L15",
          "figure_count": 1,
          "framing_scale": "wide",
          "character_angle_count": 1,
          "frame_spatial_contract_present": false,
          "available_structural_signal_names": [
            "framing_scale",
            "character_angles",
            "gaze_direction"
          ]
        },
        "26:5": {
          "why_candidate": "single_shot_outdoor_figure_present",
          "location_source": "primary_location",
          "location_id": "L15",
          "figure_count": 1,
          "framing_scale": "medium",
          "character_angle_count": 1,
          "frame_spatial_contract_present": false,
          "available_structural_signal_names": [
            "framing_scale",
            "character_angles",
            "gaze_direction"
          ]
        }
      },
      "single_shot_seed_lane_enabled": true,
      "composition_guide_shared_model_enabled": true,
      "shared_model_judge_enabled": true,
      "shared_model_candidate_signals": [
        {
          "group_id": "osl-shared-l01-s1",
          "location_id": "L01",
          "scene_index": 1,
          "member_shots": [
            "S1sh3",
            "S1sh4"
          ],
          "cameras_non_identical": true,
          "landmark_count": 4,
          "per_shot_signals": {
            "1:3": {
              "entity_count_bucket": "multiple",
              "entity_count": 3,
              "depth_planes": 1,
              "has_motion": false
            },
            "1:4": {
              "entity_count_bucket": "multiple",
              "entity_count": 2,
              "depth_planes": 2,
              "has_motion": true
            }
          }
        },
        {
          "group_id": "osl-single-l01-s3-sh3",
          "location_id": "L01",
          "scene_index": 3,
          "member_shots": [
            "S3sh3"
          ],
          "cameras_non_identical": false,
          "landmark_count": 4,
          "per_shot_signals": {
            "3:3": {
              "entity_count_bucket": "multiple",
              "entity_count": 3,
              "depth_planes": 1,
              "has_motion": false
            }
          }
        },
        {
          "group_id": "osl-shared-l02-s2",
          "location_id": "L02",
          "scene_index": 2,
          "member_shots": [
            "S2sh3",
            "S2sh5"
          ],
          "cameras_non_identical": true,
          "landmark_count": 3,
          "per_shot_signals": {
            "2:3": {
              "entity_count_bucket": "multiple",
              "entity_count": 2,
              "depth_planes": 2,
              "has_motion": false
            },
            "2:5": {
              "entity_count_bucket": "single",
              "entity_count": 1,
              "depth_planes": 1,
              "has_motion": false
            }
          }
        },
        {
          "group_id": "osl-shared-l03-s10",
          "location_id": "L03",
          "scene_index": 10,
          "member_shots": [
            "S10sh3",
            "S10sh7"
          ],
          "cameras_non_identical": true,
          "landmark_count": 6,
          "per_shot_signals": {
            "10:3": {
              "entity_count_bucket": "single",
              "entity_count": 1,
              "depth_planes": 1,
              "has_motion": false
            },
            "10:7": {
              "entity_count_bucket": "multiple",
              "entity_count": 2,
              "depth_planes": 2,
              "has_motion": false
            }
          }
        },
        {
          "group_id": "osl-single-l06-s6-sh1",
          "location_id": "L06",
          "scene_index": 6,
          "member_shots": [
            "S6sh1"
          ],
          "cameras_non_identical": false,
          "landmark_count": 3,
          "per_shot_signals": {
            "6:1": {
              "entity_count_bucket": "single",
              "entity_count": 1,
              "depth_planes": 1,
              "has_motion": true
            }
          }
        },
        {
          "group_id": "osl-single-l06-s9-sh1",
          "location_id": "L06",
          "scene_index": 9,
          "member_shots": [
            "S9sh1"
          ],
          "cameras_non_identical": false,
          "landmark_count": 3,
          "per_shot_signals": {
            "9:1": {
              "entity_count_bucket": "single",
              "entity_count": 1,
              "depth_planes": 1,
              "has_motion": true
            }
          }
        },
        {
          "group_id": "osl-single-l06-s24-sh1",
          "location_id": "L06",
          "scene_index": 24,
          "member_shots": [
            "S24sh1"
          ],
          "cameras_non_identical": false,
          "landmark_count": 3,
          "per_shot_signals": {
            "24:1": {
              "entity_count_bucket": "single",
              "entity_count": 1,
              "depth_planes": 1,
              "has_motion": true
            }
          }
        },
        {
          "group_id": "osl-shared-l08-s8",
          "location_id": "L08",
          "scene_index": 8,
          "member_shots": [
            "S8sh3",
            "S8sh6"
          ],
          "cameras_non_identical": true,
          "landmark_count": 6,
          "per_shot_signals": {
            "8:3": {
              "entity_count_bucket": "single",
              "entity_count": 1,
              "depth_planes": 1,
              "has_motion": false
            },
            "8:6": {
              "entity_count_bucket": "single",
              "entity_count": 1,
              "depth_planes": 1,
              "has_motion": false
            }
          }
        },
        {
          "group_id": "osl-single-l08-s19-sh5",
          "location_id": "L08",
          "scene_index": 19,
          "member_shots": [
            "S19sh5"
          ],
          "cameras_non_identical": false,
          "landmark_count": 6,
          "per_shot_signals": {
            "19:5": {
              "entity_count_bucket": "single",
              "entity_count": 1,
              "depth_planes": 1,
              "has_motion": false
            }
          }
        },
        {
          "group_id": "osl-shared-l11-s15",
          "location_id": "L11",
          "scene_index": 15,
          "member_shots": [
            "S15sh1",
            "S15sh5"
          ],
          "cameras_non_identical": true,
          "landmark_count": 5,
          "per_shot_signals": {
            "15:1": {
              "entity_count_bucket": "single",
              "entity_count": 1,
              "depth_planes": 1,
              "has_motion": false
            },
            "15:5": {
              "entity_count_bucket": "multiple",
              "entity_count": 2,
              "depth_planes": 2,
              "has_motion": true
            }
          }
        },
        {
          "group_id": "osl-shared-l15-s26",
          "location_id": "L15",
          "scene_index": 26,
          "member_shots": [
            "S26sh1",
            "S26sh5"
          ],
          "cameras_non_identical": true,
          "landmark_count": 3,
          "per_shot_signals": {
            "26:1": {
              "entity_count_bucket": "single",
              "entity_count": 1,
              "depth_planes": 1,
              "has_motion": false
            },
            "26:5": {
              "entity_count_bucket": "single",
              "entity_count": 1,
              "depth_planes": 1,
              "has_motion": false
            }
          }
        }
      ],
      "shared_model_judge_decisions": [
        {
          "group_id": "osl-shared-l01-s1",
          "needs_shared_model_guide": true,
          "decision_type": "single_shot_complexity",
          "confidence": "high",
          "reasons": [
            "depth_layering",
            "occlusion_or_framing_risk"
          ],
          "evidence": [
            {
              "shot_key": "1:4",
              "source_field": "frame_spatial_contract",
              "quote": "black shape lunging downward"
            },
            {
              "shot_key": "1:4",
              "source_field": "frame_spatial_contract",
              "quote": "wounded man on forest floor"
            },
            {
              "shot_key": "1:4",
              "source_field": "camera_direction",
              "quote": "black shape slices in from the upper left and drives the wounded man down into the lower center"
            }
          ],
          "guide_scope": "single",
          "risk_notes": "Shot 1:4 requires precise placement of two figures across different depth planes (midground lunging to foreground) to capture the action without awkward occlusion. Shot 1:3 is an extreme close-up with no structural background, so cross-shot continuity is not required.",
          "admit": true,
          "deny_reason": null
        },
        {
          "group_id": "osl-single-l01-s3-sh3",
          "needs_shared_model_guide": true,
          "decision_type": "single_shot_complexity",
          "confidence": "high",
          "reasons": [
            "occlusion_or_framing_risk",
            "depth_layering"
          ],
          "evidence": [
            {
              "shot_key": "3:3",
              "source_field": "camera_direction",
              "quote": "shoulders and coat edges of detectives cut the foreground"
            },
            {
              "shot_key": "3:3",
              "source_field": "frame_spatial_contract",
              "quote": "Hyesu framed between detectives"
            }
          ],
          "guide_scope": "single",
          "risk_notes": "Without a guide, the renderer may struggle to correctly position the foreground detective shoulders to frame the central character without completely blocking her.",
          "admit": true,
          "deny_reason": null
        },
        {
          "group_id": "osl-shared-l02-s2",
          "needs_shared_model_guide": true,
          "decision_type": "cross_shot_continuity",
          "confidence": "high",
          "reasons": [
            "multi_angle_same_set",
            "shared_structure_continuity",
            "figure_placement_continuity"
          ],
          "evidence": [
            {
              "shot_key": "2:3",
              "source_field": "camera_direction",
              "quote": "beside the utility pole"
            },
            {
              "shot_key": "2:3",
              "source_field": "camera_direction",
              "quote": "extreme close-up less than a meter from the pair"
            },
            {
              "shot_key": "2:5",
              "source_field": "camera_direction",
              "quote": "settles at ankle height a few meters away, looking along the alley"
            },
            {
              "shot_key": "2:5",
              "source_field": "camera_view_brief",
              "quote": "utility pole: in the midground, near centre of frame."
            }
          ],
          "guide_scope": "group",
          "risk_notes": "The utility pole and the figures' relative positions need to remain consistent between the extreme close-up and the wider low-angle shot to maintain spatial continuity.",
          "admit": true,
          "deny_reason": null
        },
        {
          "group_id": "osl-shared-l03-s10",
          "needs_shared_model_guide": true,
          "decision_type": "both",
          "confidence": "high",
          "reasons": [
            "multi_angle_same_set",
            "shared_structure_continuity",
            "depth_layering"
          ],
          "evidence": [
            {
              "shot_key": "10:3",
              "source_field": "camera_direction",
              "quote": "very low neutral observer position nearly on the cement, the camera reaches the end of its dolly-in two meters from the iron door"
            },
            {
              "shot_key": "10:7",
              "source_field": "camera_direction",
              "quote": "locked in a voyeur position directly outside the window, eye level and squared to the curtain"
            },
            {
              "shot_key": "10:7",
              "source_field": "frame_spatial_contract",
              "quote": "남자 silhouette above"
            },
            {
              "shot_key": "10:7",
              "source_field": "frame_spatial_contract",
              "quote": "민숙 crouched silhouette below"
            }
          ],
          "guide_scope": "group",
          "risk_notes": "Without a guide, the spatial relationship between the iron door and the window might shift between the low-angle approach in shot 3 and the squared-off framing in shot 7. Additionally, shot 7 requires precise vertical layering of the two silhouettes behind the window.",
          "admit": true,
          "deny_reason": null
        },
        {
          "group_id": "osl-single-l06-s6-sh1",
          "needs_shared_model_guide": true,
          "decision_type": "single_shot_complexity",
          "confidence": "medium",
          "reasons": [
            "occlusion_or_framing_risk"
          ],
          "evidence": [
            {
              "shot_key": "6:1",
              "source_field": "camera_direction",
              "quote": "travels left to right through the middle of the frame"
            }
          ],
          "guide_scope": "single",
          "risk_notes": "The camera tracks a moving figure; a guide helps ensure the figure's placement and motion vector align correctly with the background structures.",
          "admit": true,
          "deny_reason": null
        },
        {
          "group_id": "osl-single-l06-s9-sh1",
          "needs_shared_model_guide": true,
          "decision_type": "single_shot_complexity",
          "confidence": "medium",
          "reasons": [
            "occlusion_or_framing_risk"
          ],
          "evidence": [
            {
              "shot_key": "9:1",
              "source_field": "camera_view_brief",
              "quote": "in motion, moving deeper into the scene"
            },
            {
              "shot_key": "9:1",
              "source_field": "frame_spatial_contract",
              "quote": "moves_toward"
            }
          ],
          "guide_scope": "single",
          "risk_notes": "The shot features a figure moving through the space, which risks incorrect framing or placement along the motion path without a layout guide.",
          "admit": true,
          "deny_reason": null
        },
        {
          "group_id": "osl-single-l06-s24-sh1",
          "needs_shared_model_guide": true,
          "decision_type": "single_shot_complexity",
          "confidence": "medium",
          "reasons": [
            "occlusion_or_framing_risk"
          ],
          "evidence": [
            {
              "shot_key": "24:1",
              "source_field": "camera_direction",
              "quote": "dollying backward on the same axis as Suriyeong drives through the rain"
            },
            {
              "shot_key": "24:1",
              "source_field": "camera_direction",
              "quote": "very low and frontal just ahead of the bicycle, roughly handlebar height"
            }
          ],
          "guide_scope": "single",
          "risk_notes": "The specific low camera angle dollying backward ahead of a moving figure requires a layout guide to ensure the framing and relative motion are captured correctly without breaking the spatial constraints.",
          "admit": true,
          "deny_reason": null
        },
        {
          "group_id": "osl-shared-l08-s8",
          "needs_shared_model_guide": true,
          "decision_type": "cross_shot_continuity",
          "confidence": "high",
          "reasons": [
            "multi_angle_same_set",
            "shared_structure_continuity"
          ],
          "evidence": [
            {
              "shot_key": "8:3",
              "source_field": "camera_view_brief",
              "quote": "high grocery shelves aisle: in the foreground"
            },
            {
              "shot_key": "8:3",
              "source_field": "camera_view_brief",
              "quote": "market storefront glass: in the background"
            },
            {
              "shot_key": "8:6",
              "source_field": "camera_direction",
              "quote": "Outside the market"
            },
            {
              "shot_key": "8:6",
              "source_field": "camera_view_brief",
              "quote": "market storefront glass: in the foreground"
            },
            {
              "shot_key": "8:6",
              "source_field": "camera_view_brief",
              "quote": "high grocery shelves aisle: in the background"
            }
          ],
          "guide_scope": "group",
          "risk_notes": "The camera switches from inside the mart looking out to outside the mart looking in. Without a shared guide, the storefront glass, CCTV placement, and shelf alignment relative to the street will likely mismatch between the two angles.",
          "admit": true,
          "deny_reason": null
        },
        {
          "group_id": "osl-single-l08-s19-sh5",
          "needs_shared_model_guide": false,
          "decision_type": "no_guide",
          "confidence": "low",
          "reasons": [
            "insufficient_evidence"
          ],
          "evidence": [],
          "guide_scope": "none",
          "risk_notes": "Single shot with one figure, one depth plane, and no motion does not present enough spatial complexity to warrant a layout guide.",
          "admit": false,
          "deny_reason": "judge_no_need"
        },
        {
          "group_id": "osl-shared-l11-s15",
          "needs_shared_model_guide": true,
          "decision_type": "both",
          "confidence": "high",
          "reasons": [
            "multi_angle_same_set",
            "shared_structure_continuity",
            "depth_layering"
          ],
          "evidence": [
            {
              "shot_key": "15:1",
              "source_field": "camera_direction",
              "quote": "From low bench height on the seaward side of the bus stop, the camera holds a quiet wide side-profile frame about three meters from 수리영."
            },
            {
              "shot_key": "15:5",
              "source_field": "camera_direction",
              "quote": "Eye-level and diagonally between the bus stop and road, the camera finishes its pan on 혜수 about five meters away"
            },
            {
              "shot_key": "15:5",
              "source_field": "frame_spatial_contract",
              "quote": "\"depth_plane\": \"foreground\", \"label\": \"혜수\", \"screen_zone\": \"middle_left\""
            },
            {
              "shot_key": "15:5",
              "source_field": "frame_spatial_contract",
              "quote": "\"depth_plane\": \"background\", \"label\": \"수리영\", \"screen_zone\": \"upper_right\""
            }
          ],
          "guide_scope": "group",
          "risk_notes": "Without a guide, the spatial relationship between the bus stop, the coastal road, and the ocean might shift between the two distinct camera angles. Additionally, the specific depth layering and placement of the two figures in shot 15:5 requires careful staging to ensure the background figure is correctly positioned relative to the foreground figure and the receding road.",
          "admit": true,
          "deny_reason": null
        },
        {
          "group_id": "osl-shared-l15-s26",
          "needs_shared_model_guide": true,
          "decision_type": "cross_shot_continuity",
          "confidence": "high",
          "reasons": [
            "multi_angle_same_set",
            "shared_structure_continuity"
          ],
          "evidence": [
            {
              "shot_key": "26:1",
              "source_field": "camera_direction",
              "quote": "very wide at low eye level on the empty harbor edge"
            },
            {
              "shot_key": "26:1",
              "source_field": "camera_direction",
              "quote": "vacant pier stretches laterally across the frame"
            },
            {
              "shot_key": "26:5",
              "source_field": "camera_direction",
              "quote": "close-observation mid point on the dock"
            },
            {
              "shot_key": "26:5",
              "source_field": "camera_direction",
              "quote": "subdued foggy dock and moored boat kept soft behind him"
            }
          ],
          "guide_scope": "group",
          "risk_notes": "Without a shared guide, the spatial relationship between the dock, the rocks, and the sea could shift significantly between the very wide establishing shot and the medium shot on the dock.",
          "admit": true,
          "deny_reason": null
        }
      ],
      "shared_model_attach_decisions": [
        {
          "group_id": "osl-shared-l01-s1",
          "scene_index": 1,
          "base_cache_key": "8e12430f22c3ce7a",
          "attached_shots": [
            "1:3",
            "1:4"
          ],
          "attached": true
        },
        {
          "group_id": "osl-single-l01-s3-sh3",
          "scene_index": 3,
          "base_cache_key": "ff9b431f0665105c",
          "attached_shots": [
            "3:3"
          ],
          "attached": true
        },
        {
          "group_id": "osl-shared-l02-s2",
          "scene_index": 2,
          "base_cache_key": "08ad13b342063b78",
          "attached_shots": [
            "2:3",
            "2:5"
          ],
          "attached": true
        },
        {
          "group_id": "osl-shared-l03-s10",
          "scene_index": 10,
          "base_cache_key": "13dd6fd7bc1c0fcc",
          "attached_shots": [
            "10:3",
            "10:7"
          ],
          "attached": true
        },
        {
          "group_id": "osl-single-l06-s6-sh1",
          "scene_index": 6,
          "base_cache_key": "99e07c937fd1a5f4",
          "attached_shots": [
            "6:1"
          ],
          "attached": true
        },
        {
          "group_id": "osl-single-l06-s9-sh1",
          "scene_index": 9,
          "base_cache_key": "5b3756bba1178153",
          "attached_shots": [
            "9:1"
          ],
          "attached": true
        },
        {
          "group_id": "osl-single-l06-s24-sh1",
          "scene_index": 24,
          "base_cache_key": "8d4d5ff8d9fea3d1",
          "attached_shots": [
            "24:1"
          ],
          "attached": true
        },
        {
          "group_id": "osl-shared-l08-s8",
          "scene_index": 8,
          "base_cache_key": "8c200f993e37e6e3",
          "attached_shots": [
            "8:3",
            "8:6"
          ],
          "attached": true
        },
        {
          "group_id": "osl-shared-l11-s15",
          "scene_index": 15,
          "base_cache_key": "24a5677f339ac2de",
          "attached_shots": [
            "15:1",
            "15:5"
          ],
          "attached": true
        },
        {
          "group_id": "osl-shared-l15-s26",
          "scene_index": 26,
          "base_cache_key": "a2bf7f81a86de649",
          "attached_shots": [
            "26:1",
            "26:5"
          ],
          "attached": true
        }
      ],
      "shared_model_single_shot_complexity_observation": [
        {
          "group_id": "osl-shared-l01-s1",
          "decision_type": "single_shot_complexity",
          "is_single_shot_candidate": false,
          "admit": true,
          "note": "single_shot_complexity lane 개방 — admit 시 production attach."
        },
        {
          "group_id": "osl-single-l01-s3-sh3",
          "decision_type": "single_shot_complexity",
          "is_single_shot_candidate": true,
          "admit": true,
          "note": "single_shot_complexity lane 개방 — admit 시 production attach."
        },
        {
          "group_id": "osl-shared-l03-s10",
          "decision_type": "both",
          "is_single_shot_candidate": false,
          "admit": true,
          "note": "single_shot_complexity lane 개방 — admit 시 production attach."
        },
        {
          "group_id": "osl-single-l06-s6-sh1",
          "decision_type": "single_shot_complexity",
          "is_single_shot_candidate": true,
          "admit": true,
          "note": "single_shot_complexity lane 개방 — admit 시 production attach."
        },
        {
          "group_id": "osl-single-l06-s9-sh1",
          "decision_type": "single_shot_complexity",
          "is_single_shot_candidate": true,
          "admit": true,
          "note": "single_shot_complexity lane 개방 — admit 시 production attach."
        },
        {
          "group_id": "osl-single-l06-s24-sh1",
          "decision_type": "single_shot_complexity",
          "is_single_shot_candidate": true,
          "admit": true,
          "note": "single_shot_complexity lane 개방 — admit 시 production attach."
        },
        {
          "group_id": "osl-shared-l11-s15",
          "decision_type": "both",
          "is_single_shot_candidate": false,
          "admit": true,
          "note": "single_shot_complexity lane 개방 — admit 시 production attach."
        }
      ],
      "shared_model_image_calls": {
        "predicted": {
          "base": 10,
          "blocking": 3,
          "camera_view_sketch": 10
        },
        "actual": {
          "base": 10,
          "blocking": 3,
          "camera_view_sketch": 10
        },
        "predicted_call_count": 23,
        "actual_call_count": 23,
        "continuity_anchor_generation_calls": 0
      },
      "shared_model_chain_lineage": {
        "annotated": [
          {
            "asset": "7a133b6f-c7db-47a8-ad0c-699848549c48",
            "role": "outdoor_shot_blocking",
            "input": "ca180bc3-a394-4606-b143-88e326fd894d"
          },
          {
            "asset": "1bc30ceb-7b7d-4ec1-8c1f-5828f1581049",
            "role": "outdoor_camera_sketch",
            "input": "7a133b6f-c7db-47a8-ad0c-699848549c48"
          },
          {
            "asset": "140b6dc6-5810-436d-9808-5d7c7a1e2e82",
            "role": "outdoor_shot_blocking",
            "input": "e6087b04-7206-4caf-aff7-88fa38df3a2b"
          },
          {
            "asset": "5180f6a3-d573-4f3c-b418-7128b577435b",
            "role": "outdoor_camera_sketch",
            "input": "140b6dc6-5810-436d-9808-5d7c7a1e2e82"
          },
          {
            "asset": "61cb4b25-e72d-4da6-a4d5-22b0d25d04ef",
            "role": "outdoor_shot_blocking",
            "input": "3cf41434-3e10-4950-a902-c1963b7a5e20"
          },
          {
            "asset": "69b52d51-4a1d-445f-a0b0-09481b086b05",
            "role": "outdoor_camera_sketch",
            "input": "61cb4b25-e72d-4da6-a4d5-22b0d25d04ef"
          },
          {
            "asset": "9d7e329d-9055-44c3-b4a7-44323657c17a",
            "role": "outdoor_shot_blocking",
            "input": "c77e9cd3-2995-4463-88e6-76dbc0dc5d2b"
          },
          {
            "asset": "ae0e8299-394a-41e9-bd18-933d1ce3e4e5",
            "role": "outdoor_camera_sketch",
            "input": "9d7e329d-9055-44c3-b4a7-44323657c17a"
          },
          {
            "asset": "f9a290e1-335d-4266-a644-8413bbed6e81",
            "role": "outdoor_camera_sketch",
            "input": "f567db00-b95a-4433-8580-ed9b4cc7dfaa"
          },
          {
            "asset": "b851714e-4c9a-42c9-8059-7647dbcd49e9",
            "role": "outdoor_camera_sketch",
            "input": "c0c945f2-255e-40cc-90d2-3a81e81116ed"
          },
          {
            "asset": "37aad16f-93e5-4f5a-bbe1-e3bbf738d8dc",
            "role": "outdoor_camera_sketch",
            "input": "b753c454-950f-4e6b-a962-b05a6bc28f8e"
          },
          {
            "asset": "266d0f73-d9f3-4398-823a-e871fd438bbb",
            "role": "outdoor_camera_sketch",
            "input": "30026025-8f5f-4aed-ac5c-0504d357b50e"
          },
          {
            "asset": "410e82ed-c9cd-4c05-8588-511f7c770518",
            "role": "outdoor_camera_sketch",
            "input": "955aef13-9235-47a0-8c3e-3b931de9ebad"
          },
          {
            "asset": "430246d4-4c65-4a39-9288-d95ce0040c9d",
            "role": "outdoor_camera_sketch",
            "input": "99d8ee1d-7066-4f82-b716-86aa8a880f33"
          },
          {
            "asset": "fc4a1d41-0df4-4857-8f18-a675c07e2508",
            "role": "outdoor_camera_sketch",
            "input": "56d999c8-dd91-41ad-be63-906ff6467037"
          }
        ],
        "unresolved": [],
        "guide_asset_resolved": [
          {
            "shot": "1:3",
            "asset": "5180f6a3-d573-4f3c-b418-7128b577435b"
          },
          {
            "shot": "3:3",
            "asset": "69b52d51-4a1d-445f-a0b0-09481b086b05"
          },
          {
            "shot": "2:3",
            "asset": "ae0e8299-394a-41e9-bd18-933d1ce3e4e5"
          },
          {
            "shot": "10:3",
            "asset": "f9a290e1-335d-4266-a644-8413bbed6e81"
          },
          {
            "shot": "6:1",
            "asset": "b851714e-4c9a-42c9-8059-7647dbcd49e9"
          },
          {
            "shot": "9:1",
            "asset": "37aad16f-93e5-4f5a-bbe1-e3bbf738d8dc"
          },
          {
            "shot": "24:1",
            "asset": "266d0f73-d9f3-4398-823a-e871fd438bbb"
          },
          {
            "shot": "8:3",
            "asset": "410e82ed-c9cd-4c05-8588-511f7c770518"
          },
          {
            "shot": "15:1",
            "asset": "430246d4-4c65-4a39-9288-d95ce0040c9d"
          },
          {
            "shot": "26:1",
            "asset": "fc4a1d41-0df4-4857-8f18-a675c07e2508"
          }
        ],
        "guide_asset_unresolved": []
      }
    },
    "composition_guides": {
      "1:3": {
        "mode": "sketch",
        "path": "composition_guides/S1sh3.png",
        "location_id": "L01",
        "group_id": "osl-shared-l01-s1",
        "admitted_order": 0,
        "guide_scope_type": "cross_shot_continuity",
        "is_single_shot_candidate": false,
        "model": "gpt-image-2",
        "judge_model": "gemini-3.1-pro-preview",
        "judge": {
          "confidence": "high",
          "decision_type": "single_shot_complexity",
          "evidence": [
            {
              "shot_key": "1:4",
              "source_field": "frame_spatial_contract",
              "quote": "black shape lunging downward"
            },
            {
              "shot_key": "1:4",
              "source_field": "frame_spatial_contract",
              "quote": "wounded man on forest floor"
            },
            {
              "shot_key": "1:4",
              "source_field": "camera_direction",
              "quote": "black shape slices in from the upper left and drives the wounded man down into the lower center"
            }
          ],
          "reasons": [
            "depth_layering",
            "occlusion_or_framing_risk"
          ]
        },
        "producer_kind": "shared_model_aerial_v2",
        "guide_generation_status": "ok",
        "base_cache_key": "8e12430f22c3ce7a",
        "base_hash": "792cd8810390b0d8",
        "base_prompt_hash": "b711850a8468baed",
        "blocking_stage": "used",
        "blocking_stage_reason": "structure_signal",
        "blocking_hash": "7e9d6e6f1263d040",
        "camera_brief_hash": "df8320af1bd059b6",
        "camera_view_sketch_hash": "41399c192d033c8f",
        "sketch_prompt_hash": "a999bfd95550db12",
        "helper_version": "shared_model_aerial_v2.202606291800",
        "forced_character_names": [
          "한국인 남성"
        ],
        "guide_asset_id": "5180f6a3-d573-4f3c-b418-7128b577435b"
      },
      "1:4": {
        "mode": "continuity_anchor",
        "anchor_source": [
          1,
          3
        ],
        "location_id": "L01",
        "group_id": "osl-shared-l01-s1",
        "admitted_order": 1,
        "guide_scope_type": "cross_shot_continuity",
        "is_single_shot_candidate": false,
        "judge_model": "gemini-3.1-pro-preview",
        "judge": {
          "confidence": "high",
          "decision_type": "single_shot_complexity",
          "evidence": [
            {
              "shot_key": "1:4",
              "source_field": "frame_spatial_contract",
              "quote": "black shape lunging downward"
            },
            {
              "shot_key": "1:4",
              "source_field": "frame_spatial_contract",
              "quote": "wounded man on forest floor"
            },
            {
              "shot_key": "1:4",
              "source_field": "camera_direction",
              "quote": "black shape slices in from the upper left and drives the wounded man down into the lower center"
            }
          ],
          "reasons": [
            "depth_layering",
            "occlusion_or_framing_risk"
          ]
        },
        "forced_character_names": [
          "한국인 남성"
        ]
      },
      "3:3": {
        "mode": "sketch",
        "path": "composition_guides/S3sh3.png",
        "location_id": "L01",
        "group_id": "osl-single-l01-s3-sh3",
        "admitted_order": 0,
        "guide_scope_type": "single_shot_complexity",
        "is_single_shot_candidate": true,
        "model": "gpt-image-2",
        "judge_model": "gemini-3.1-pro-preview",
        "judge": {
          "confidence": "high",
          "decision_type": "single_shot_complexity",
          "evidence": [
            {
              "shot_key": "3:3",
              "source_field": "camera_direction",
              "quote": "shoulders and coat edges of detectives cut the foreground"
            },
            {
              "shot_key": "3:3",
              "source_field": "frame_spatial_contract",
              "quote": "Hyesu framed between detectives"
            }
          ],
          "reasons": [
            "occlusion_or_framing_risk",
            "depth_layering"
          ]
        },
        "producer_kind": "shared_model_aerial_v2",
        "guide_generation_status": "ok",
        "base_cache_key": "ff9b431f0665105c",
        "base_hash": "ad4119ce4bd3801c",
        "base_prompt_hash": "b711850a8468baed",
        "blocking_stage": "used",
        "blocking_stage_reason": "structure_signal",
        "blocking_hash": "94c7874476ac11c7",
        "camera_brief_hash": "df8320af1bd059b6",
        "camera_view_sketch_hash": "2ab13d8f9474e86b",
        "sketch_prompt_hash": "a999bfd95550db12",
        "helper_version": "shared_model_aerial_v2.202606291800",
        "forced_character_names": [
          "형사",
          "혜수"
        ],
        "guide_asset_id": "69b52d51-4a1d-445f-a0b0-09481b086b05"
      },
      "2:3": {
        "mode": "sketch",
        "path": "composition_guides/S2sh3.png",
        "location_id": "L02",
        "group_id": "osl-shared-l02-s2",
        "admitted_order": 0,
        "guide_scope_type": "cross_shot_continuity",
        "is_single_shot_candidate": false,
        "model": "gpt-image-2",
        "judge_model": "gemini-3.1-pro-preview",
        "judge": {
          "confidence": "high",
          "decision_type": "cross_shot_continuity",
          "evidence": [
            {
              "shot_key": "2:3",
              "source_field": "camera_direction",
              "quote": "beside the utility pole"
            },
            {
              "shot_key": "2:3",
              "source_field": "camera_direction",
              "quote": "extreme close-up less than a meter from the pair"
            },
            {
              "shot_key": "2:5",
              "source_field": "camera_direction",
              "quote": "settles at ankle height a few meters away, looking along the alley"
            },
            {
              "shot_key": "2:5",
              "source_field": "camera_view_brief",
              "quote": "utility pole: in the midground, near centre of frame."
            }
          ],
          "reasons": [
            "multi_angle_same_set",
            "shared_structure_continuity",
            "figure_placement_continuity"
          ]
        },
        "producer_kind": "shared_model_aerial_v2",
        "guide_generation_status": "ok",
        "base_cache_key": "08ad13b342063b78",
        "base_hash": "e1a4169eba0f404a",
        "base_prompt_hash": "7a91091adbe08221",
        "blocking_stage": "used",
        "blocking_stage_reason": "structure_signal",
        "blocking_hash": "9dd29676a23374f4",
        "camera_brief_hash": "ae09a383f118bdeb",
        "camera_view_sketch_hash": "1c30cf777bcc86e9",
        "sketch_prompt_hash": "e06871175f562c00",
        "helper_version": "shared_model_aerial_v2.202606291800",
        "forced_character_names": [
          "한국인 남성",
          "한국인 여성"
        ],
        "guide_asset_id": "ae0e8299-394a-41e9-bd18-933d1ce3e4e5"
      },
      "2:5": {
        "mode": "continuity_anchor",
        "anchor_source": [
          2,
          3
        ],
        "location_id": "L02",
        "group_id": "osl-shared-l02-s2",
        "admitted_order": 1,
        "guide_scope_type": "cross_shot_continuity",
        "is_single_shot_candidate": false,
        "judge_model": "gemini-3.1-pro-preview",
        "judge": {
          "confidence": "high",
          "decision_type": "cross_shot_continuity",
          "evidence": [
            {
              "shot_key": "2:3",
              "source_field": "camera_direction",
              "quote": "beside the utility pole"
            },
            {
              "shot_key": "2:3",
              "source_field": "camera_direction",
              "quote": "extreme close-up less than a meter from the pair"
            },
            {
              "shot_key": "2:5",
              "source_field": "camera_direction",
              "quote": "settles at ankle height a few meters away, looking along the alley"
            },
            {
              "shot_key": "2:5",
              "source_field": "camera_view_brief",
              "quote": "utility pole: in the midground, near centre of frame."
            }
          ],
          "reasons": [
            "multi_angle_same_set",
            "shared_structure_continuity",
            "figure_placement_continuity"
          ]
        },
        "forced_character_names": [
          "한국인 여성"
        ]
      },
      "10:3": {
        "mode": "sketch",
        "path": "composition_guides/S10sh3.png",
        "location_id": "L03",
        "group_id": "osl-shared-l03-s10",
        "admitted_order": 0,
        "guide_scope_type": "cross_shot_continuity",
        "is_single_shot_candidate": false,
        "model": "gpt-image-2",
        "judge_model": "gemini-3.1-pro-preview",
        "judge": {
          "confidence": "high",
          "decision_type": "both",
          "evidence": [
            {
              "shot_key": "10:3",
              "source_field": "camera_direction",
              "quote": "very low neutral observer position nearly on the cement, the camera reaches the end of its dolly-in two meters from the iron door"
            },
            {
              "shot_key": "10:7",
              "source_field": "camera_direction",
              "quote": "locked in a voyeur position directly outside the window, eye level and squared to the curtain"
            },
            {
              "shot_key": "10:7",
              "source_field": "frame_spatial_contract",
              "quote": "남자 silhouette above"
            },
            {
              "shot_key": "10:7",
              "source_field": "frame_spatial_contract",
              "quote": "민숙 crouched silhouette below"
            }
          ],
          "reasons": [
            "multi_angle_same_set",
            "shared_structure_continuity",
            "depth_layering"
          ]
        },
        "producer_kind": "shared_model_aerial_v2",
        "guide_generation_status": "ok",
        "base_cache_key": "13dd6fd7bc1c0fcc",
        "base_hash": "5fa0cd1ce5fbc074",
        "base_prompt_hash": "dc7fc1ddb5223512",
        "blocking_stage": "skipped_simple",
        "blocking_stage_reason": "skipped_simple",
        "blocking_hash": null,
        "camera_brief_hash": "50d888a6737a0b09",
        "camera_view_sketch_hash": "dc8563f27461818d",
        "sketch_prompt_hash": "84a43f484cc14185",
        "helper_version": "shared_model_aerial_v2.202606291800",
        "forced_character_names": [
          "남자"
        ],
        "guide_asset_id": "f9a290e1-335d-4266-a644-8413bbed6e81"
      },
      "10:7": {
        "mode": "continuity_anchor",
        "anchor_source": [
          10,
          3
        ],
        "location_id": "L03",
        "group_id": "osl-shared-l03-s10",
        "admitted_order": 1,
        "guide_scope_type": "cross_shot_continuity",
        "is_single_shot_candidate": false,
        "judge_model": "gemini-3.1-pro-preview",
        "judge": {
          "confidence": "high",
          "decision_type": "both",
          "evidence": [
            {
              "shot_key": "10:3",
              "source_field": "camera_direction",
              "quote": "very low neutral observer position nearly on the cement, the camera reaches the end of its dolly-in two meters from the iron door"
            },
            {
              "shot_key": "10:7",
              "source_field": "camera_direction",
              "quote": "locked in a voyeur position directly outside the window, eye level and squared to the curtain"
            },
            {
              "shot_key": "10:7",
              "source_field": "frame_spatial_contract",
              "quote": "남자 silhouette above"
            },
            {
              "shot_key": "10:7",
              "source_field": "frame_spatial_contract",
              "quote": "민숙 crouched silhouette below"
            }
          ],
          "reasons": [
            "multi_angle_same_set",
            "shared_structure_continuity",
            "depth_layering"
          ]
        },
        "forced_character_names": [
          "남자"
        ]
      },
      "6:1": {
        "mode": "sketch",
        "path": "composition_guides/S6sh1.png",
        "location_id": "L06",
        "group_id": "osl-single-l06-s6-sh1",
        "admitted_order": 0,
        "guide_scope_type": "single_shot_complexity",
        "is_single_shot_candidate": true,
        "model": "gpt-image-2",
        "judge_model": "gemini-3.1-pro-preview",
        "judge": {
          "confidence": "medium",
          "decision_type": "single_shot_complexity",
          "evidence": [
            {
              "shot_key": "6:1",
              "source_field": "camera_direction",
              "quote": "travels left to right through the middle of the frame"
            }
          ],
          "reasons": [
            "occlusion_or_framing_risk"
          ]
        },
        "producer_kind": "shared_model_aerial_v2",
        "guide_generation_status": "ok",
        "base_cache_key": "99e07c937fd1a5f4",
        "base_hash": "831b1250b8b44594",
        "base_prompt_hash": "08dc6d806e5b7c29",
        "blocking_stage": "skipped_simple",
        "blocking_stage_reason": "skipped_simple",
        "blocking_hash": null,
        "camera_brief_hash": "b65ad8c26ba962ca",
        "camera_view_sketch_hash": "21f28b83b075e0f2",
        "sketch_prompt_hash": "e34720aedaa6c327",
        "helper_version": "shared_model_aerial_v2.202606291800",
        "forced_character_names": [
          "수리영"
        ],
        "guide_asset_id": "b851714e-4c9a-42c9-8059-7647dbcd49e9"
      },
      "9:1": {
        "mode": "sketch",
        "path": "composition_guides/S9sh1.png",
        "location_id": "L06",
        "group_id": "osl-single-l06-s9-sh1",
        "admitted_order": 0,
        "guide_scope_type": "single_shot_complexity",
        "is_single_shot_candidate": true,
        "model": "gpt-image-2",
        "judge_model": "gemini-3.1-pro-preview",
        "judge": {
          "confidence": "medium",
          "decision_type": "single_shot_complexity",
          "evidence": [
            {
              "shot_key": "9:1",
              "source_field": "camera_view_brief",
              "quote": "in motion, moving deeper into the scene"
            },
            {
              "shot_key": "9:1",
              "source_field": "frame_spatial_contract",
              "quote": "moves_toward"
            }
          ],
          "reasons": [
            "occlusion_or_framing_risk"
          ]
        },
        "producer_kind": "shared_model_aerial_v2",
        "guide_generation_status": "ok",
        "base_cache_key": "5b3756bba1178153",
        "base_hash": "dfe4c56ea16986a7",
        "base_prompt_hash": "08dc6d806e5b7c29",
        "blocking_stage": "skipped_simple",
        "blocking_stage_reason": "skipped_simple",
        "blocking_hash": null,
        "camera_brief_hash": "b65ad8c26ba962ca",
        "camera_view_sketch_hash": "3ffc5e22b246315b",
        "sketch_prompt_hash": "e34720aedaa6c327",
        "helper_version": "shared_model_aerial_v2.202606291800",
        "forced_character_names": [
          "수리영"
        ],
        "guide_asset_id": "37aad16f-93e5-4f5a-bbe1-e3bbf738d8dc"
      },
      "24:1": {
        "mode": "sketch",
        "path": "composition_guides/S24sh1.png",
        "location_id": "L06",
        "group_id": "osl-single-l06-s24-sh1",
        "admitted_order": 0,
        "guide_scope_type": "single_shot_complexity",
        "is_single_shot_candidate": true,
        "model": "gpt-image-2",
        "judge_model": "gemini-3.1-pro-preview",
        "judge": {
          "confidence": "medium",
          "decision_type": "single_shot_complexity",
          "evidence": [
            {
              "shot_key": "24:1",
              "source_field": "camera_direction",
              "quote": "dollying backward on the same axis as Suriyeong drives through the rain"
            },
            {
              "shot_key": "24:1",
              "source_field": "camera_direction",
              "quote": "very low and frontal just ahead of the bicycle, roughly handlebar height"
            }
          ],
          "reasons": [
            "occlusion_or_framing_risk"
          ]
        },
        "producer_kind": "shared_model_aerial_v2",
        "guide_generation_status": "ok",
        "base_cache_key": "8d4d5ff8d9fea3d1",
        "base_hash": "39ecef4c8b67b7cd",
        "base_prompt_hash": "08dc6d806e5b7c29",
        "blocking_stage": "skipped_simple",
        "blocking_stage_reason": "skipped_simple",
        "blocking_hash": null,
        "camera_brief_hash": "b65ad8c26ba962ca",
        "camera_view_sketch_hash": "7af1e21e4642c0b4",
        "sketch_prompt_hash": "e34720aedaa6c327",
        "helper_version": "shared_model_aerial_v2.202606291800",
        "forced_character_names": [
          "수리영"
        ],
        "guide_asset_id": "266d0f73-d9f3-4398-823a-e871fd438bbb"
      },
      "8:3": {
        "mode": "sketch",
        "path": "composition_guides/S8sh3.png",
        "location_id": "L08",
        "group_id": "osl-shared-l08-s8",
        "admitted_order": 0,
        "guide_scope_type": "cross_shot_continuity",
        "is_single_shot_candidate": false,
        "model": "gpt-image-2",
        "judge_model": "gemini-3.1-pro-preview",
        "judge": {
          "confidence": "high",
          "decision_type": "cross_shot_continuity",
          "evidence": [
            {
              "shot_key": "8:3",
              "source_field": "camera_view_brief",
              "quote": "high grocery shelves aisle: in the foreground"
            },
            {
              "shot_key": "8:3",
              "source_field": "camera_view_brief",
              "quote": "market storefront glass: in the background"
            },
            {
              "shot_key": "8:6",
              "source_field": "camera_direction",
              "quote": "Outside the market"
            },
            {
              "shot_key": "8:6",
              "source_field": "camera_view_brief",
              "quote": "market storefront glass: in the foreground"
            },
            {
              "shot_key": "8:6",
              "source_field": "camera_view_brief",
              "quote": "high grocery shelves aisle: in the background"
            }
          ],
          "reasons": [
            "multi_angle_same_set",
            "shared_structure_continuity"
          ]
        },
        "producer_kind": "shared_model_aerial_v2",
        "guide_generation_status": "ok",
        "base_cache_key": "8c200f993e37e6e3",
        "base_hash": "1a506f0be8a7eadb",
        "base_prompt_hash": "945afbbfbdcc2930",
        "blocking_stage": "skipped_simple",
        "blocking_stage_reason": "skipped_simple",
        "blocking_hash": null,
        "camera_brief_hash": "aa88cc0432937df1",
        "camera_view_sketch_hash": "354406bd7f1f2f7a",
        "sketch_prompt_hash": "c843e7c4c9dea361",
        "helper_version": "shared_model_aerial_v2.202606291800",
        "forced_character_names": [
          "수리영"
        ],
        "guide_asset_id": "410e82ed-c9cd-4c05-8588-511f7c770518"
      },
      "8:6": {
        "mode": "continuity_anchor",
        "anchor_source": [
          8,
          3
        ],
        "location_id": "L08",
        "group_id": "osl-shared-l08-s8",
        "admitted_order": 1,
        "guide_scope_type": "cross_shot_continuity",
        "is_single_shot_candidate": false,
        "judge_model": "gemini-3.1-pro-preview",
        "judge": {
          "confidence": "high",
          "decision_type": "cross_shot_continuity",
          "evidence": [
            {
              "shot_key": "8:3",
              "source_field": "camera_view_brief",
              "quote": "high grocery shelves aisle: in the foreground"
            },
            {
              "shot_key": "8:3",
              "source_field": "camera_view_brief",
              "quote": "market storefront glass: in the background"
            },
            {
              "shot_key": "8:6",
              "source_field": "camera_direction",
              "quote": "Outside the market"
            },
            {
              "shot_key": "8:6",
              "source_field": "camera_view_brief",
              "quote": "market storefront glass: in the foreground"
            },
            {
              "shot_key": "8:6",
              "source_field": "camera_view_brief",
              "quote": "high grocery shelves aisle: in the background"
            }
          ],
          "reasons": [
            "multi_angle_same_set",
            "shared_structure_continuity"
          ]
        },
        "forced_character_names": [
          "수리영"
        ]
      },
      "15:1": {
        "mode": "sketch",
        "path": "composition_guides/S15sh1.png",
        "location_id": "L11",
        "group_id": "osl-shared-l11-s15",
        "admitted_order": 0,
        "guide_scope_type": "cross_shot_continuity",
        "is_single_shot_candidate": false,
        "model": "gpt-image-2",
        "judge_model": "gemini-3.1-pro-preview",
        "judge": {
          "confidence": "high",
          "decision_type": "both",
          "evidence": [
            {
              "shot_key": "15:1",
              "source_field": "camera_direction",
              "quote": "From low bench height on the seaward side of the bus stop, the camera holds a quiet wide side-profile frame about three meters from 수리영."
            },
            {
              "shot_key": "15:5",
              "source_field": "camera_direction",
              "quote": "Eye-level and diagonally between the bus stop and road, the camera finishes its pan on 혜수 about five meters away"
            },
            {
              "shot_key": "15:5",
              "source_field": "frame_spatial_contract",
              "quote": "\"depth_plane\": \"foreground\", \"label\": \"혜수\", \"screen_zone\": \"middle_left\""
            },
            {
              "shot_key": "15:5",
              "source_field": "frame_spatial_contract",
              "quote": "\"depth_plane\": \"background\", \"label\": \"수리영\", \"screen_zone\": \"upper_right\""
            }
          ],
          "reasons": [
            "multi_angle_same_set",
            "shared_structure_continuity",
            "depth_layering"
          ]
        },
        "producer_kind": "shared_model_aerial_v2",
        "guide_generation_status": "ok",
        "base_cache_key": "24a5677f339ac2de",
        "base_hash": "a4afa23590378765",
        "base_prompt_hash": "585e59510f73de88",
        "blocking_stage": "skipped_simple",
        "blocking_stage_reason": "skipped_simple",
        "blocking_hash": null,
        "camera_brief_hash": "2d04b8d295b5c7a1",
        "camera_view_sketch_hash": "8c2dc1bebe61f060",
        "sketch_prompt_hash": "b52a0a1b58368c65",
        "helper_version": "shared_model_aerial_v2.202606291800",
        "forced_character_names": [
          "수리영"
        ],
        "guide_asset_id": "430246d4-4c65-4a39-9288-d95ce0040c9d"
      },
      "15:5": {
        "mode": "continuity_anchor",
        "anchor_source": [
          15,
          1
        ],
        "location_id": "L11",
        "group_id": "osl-shared-l11-s15",
        "admitted_order": 1,
        "guide_scope_type": "cross_shot_continuity",
        "is_single_shot_candidate": false,
        "judge_model": "gemini-3.1-pro-preview",
        "judge": {
          "confidence": "high",
          "decision_type": "both",
          "evidence": [
            {
              "shot_key": "15:1",
              "source_field": "camera_direction",
              "quote": "From low bench height on the seaward side of the bus stop, the camera holds a quiet wide side-profile frame about three meters from 수리영."
            },
            {
              "shot_key": "15:5",
              "source_field": "camera_direction",
              "quote": "Eye-level and diagonally between the bus stop and road, the camera finishes its pan on 혜수 about five meters away"
            },
            {
              "shot_key": "15:5",
              "source_field": "frame_spatial_contract",
              "quote": "\"depth_plane\": \"foreground\", \"label\": \"혜수\", \"screen_zone\": \"middle_left\""
            },
            {
              "shot_key": "15:5",
              "source_field": "frame_spatial_contract",
              "quote": "\"depth_plane\": \"background\", \"label\": \"수리영\", \"screen_zone\": \"upper_right\""
            }
          ],
          "reasons": [
            "multi_angle_same_set",
            "shared_structure_continuity",
            "depth_layering"
          ]
        },
        "forced_character_names": [
          "수리영"
        ]
      },
      "26:1": {
        "mode": "sketch",
        "path": "composition_guides/S26sh1.png",
        "location_id": "L15",
        "group_id": "osl-shared-l15-s26",
        "admitted_order": 0,
        "guide_scope_type": "cross_shot_continuity",
        "is_single_shot_candidate": false,
        "model": "gpt-image-2",
        "judge_model": "gemini-3.1-pro-preview",
        "judge": {
          "confidence": "high",
          "decision_type": "cross_shot_continuity",
          "evidence": [
            {
              "shot_key": "26:1",
              "source_field": "camera_direction",
              "quote": "very wide at low eye level on the empty harbor edge"
            },
            {
              "shot_key": "26:1",
              "source_field": "camera_direction",
              "quote": "vacant pier stretches laterally across the frame"
            },
            {
              "shot_key": "26:5",
              "source_field": "camera_direction",
              "quote": "close-observation mid point on the dock"
            },
            {
              "shot_key": "26:5",
              "source_field": "camera_direction",
              "quote": "subdued foggy dock and moored boat kept soft behind him"
            }
          ],
          "reasons": [
            "multi_angle_same_set",
            "shared_structure_continuity"
          ]
        },
        "producer_kind": "shared_model_aerial_v2",
        "guide_generation_status": "ok",
        "base_cache_key": "a2bf7f81a86de649",
        "base_hash": "0952bfb28e2582f5",
        "base_prompt_hash": "f599b1a413d00f08",
        "blocking_stage": "skipped_simple",
        "blocking_stage_reason": "skipped_simple",
        "blocking_hash": null,
        "camera_brief_hash": "23aa7f6429674e6a",
        "camera_view_sketch_hash": "bb28308a7e94d214",
        "sketch_prompt_hash": "ba33a368b2224574",
        "helper_version": "shared_model_aerial_v2.202606291800",
        "forced_character_names": [
          "수리영"
        ],
        "guide_asset_id": "fc4a1d41-0df4-4857-8f18-a675c07e2508"
      },
      "26:5": {
        "mode": "continuity_anchor",
        "anchor_source": [
          26,
          1
        ],
        "location_id": "L15",
        "group_id": "osl-shared-l15-s26",
        "admitted_order": 1,
        "guide_scope_type": "cross_shot_continuity",
        "is_single_shot_candidate": false,
        "judge_model": "gemini-3.1-pro-preview",
        "judge": {
          "confidence": "high",
          "decision_type": "cross_shot_continuity",
          "evidence": [
            {
              "shot_key": "26:1",
              "source_field": "camera_direction",
              "quote": "very wide at low eye level on the empty harbor edge"
            },
            {
              "shot_key": "26:1",
              "source_field": "camera_direction",
              "quote": "vacant pier stretches laterally across the frame"
            },
            {
              "shot_key": "26:5",
              "source_field": "camera_direction",
              "quote": "close-observation mid point on the dock"
            },
            {
              "shot_key": "26:5",
              "source_field": "camera_direction",
              "quote": "subdued foggy dock and moored boat kept soft behind him"
            }
          ],
          "reasons": [
            "multi_angle_same_set",
            "shared_structure_continuity"
          ]
        },
        "forced_character_names": []
      }
    },
    "review_html": "review_html/index.html"
  },
  "step_id": "outdoor_site_layout",
  "run_id": "6d93d7a0-469b-4b3f-b5c6-3a805f1f4eb0",
  "resolved_model": "gpt",
  "updated_at": "2026-07-01T07:06:40.117035+00:00",
  "project_config_snapshot": {}
}