{
  "status": "completed",
  "applicable_count": 8,
  "completed_count": 8,
  "failed_count": 0,
  "schema_version": 1,
  "config_hash": "fd42f624b8048fa0",
  "data": {
    "schema_version": 1,
    "groups": [
      {
        "group_id": "osl-l01",
        "location_id": "L01",
        "member_shots": [
          [
            1,
            1
          ],
          [
            1,
            4
          ],
          [
            3,
            3
          ]
        ],
        "layout": {
          "cameras": [
            {
              "look_at": [
                50,
                62
              ],
              "pos": [
                50,
                38
              ],
              "shot_index": 1
            },
            {
              "look_at": [
                50,
                50
              ],
              "pos": [
                25,
                50
              ],
              "shot_index": 4
            },
            {
              "look_at": [
                50,
                50
              ],
              "pos": [
                50,
                22
              ],
              "shot_index": 3
            }
          ],
          "figures": [
            {
              "entity_token": "C09",
              "figure_id": "victim_man",
              "label": "금월산 피해 남자",
              "positions": [
                {
                  "moving_toward": [
                    50,
                    30
                  ],
                  "pos": [
                    50,
                    62
                  ],
                  "shot_index": 1
                },
                {
                  "moving_toward": [
                    50,
                    30
                  ],
                  "pos": [
                    50,
                    50
                  ],
                  "shot_index": 4
                }
              ]
            },
            {
              "entity_token": "C07",
              "figure_id": "unknown_attacker",
              "label": "정체불명의 습격자 (활성 상태)",
              "positions": [
                {
                  "moving_toward": [
                    50,
                    50
                  ],
                  "pos": [
                    49,
                    50
                  ],
                  "shot_index": 4
                }
              ]
            },
            {
              "entity_token": "C02",
              "figure_id": "hyesu",
              "label": "혜수",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    50,
                    48
                  ],
                  "shot_index": 3
                }
              ]
            },
            {
              "entity_token": null,
              "figure_id": "korean_detective_1",
              "label": "한국인 형사들",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    43,
                    51
                  ],
                  "shot_index": 3
                }
              ]
            },
            {
              "entity_token": null,
              "figure_id": "korean_detective_2",
              "label": "한국인 형사들",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    57,
                    51
                  ],
                  "shot_index": 3
                }
              ]
            }
          ],
          "landmarks": [
            {
              "faces_toward": null,
              "id": "dense_undergrowth",
              "kind": "area",
              "label": "dense undergrowth",
              "points": [
                [
                  8,
                  8
                ],
                [
                  92,
                  8
                ],
                [
                  92,
                  92
                ],
                [
                  8,
                  92
                ]
              ]
            }
          ]
        },
        "spatial_summaries": {
          "1: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- dense undergrowth: at the near center of the frame.\nFIGURES:\n- 금월산 피해 남자 (C09): at the near center of the frame — NEAREST figure to the camera; in motion: already partway along their path, heading toward the near center of 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- dense undergrowth: at the near center of the frame.\nFIGURES:\n- 정체불명의 습격자 (활성 상태) (C07): at the near center of the frame — NEAREST figure to the camera; in motion: already partway along their path, heading toward the near center of the frame.\n- 금월산 피해 남자 (C09): at the near center of the frame; about 1.0x as far from the camera as the nearest figure, so they must appear roughly 0.96x the nearest figure's height (smaller, deeper in the frame); in motion: already partway along their path, heading toward the mid-distance right side of the frame; NOT heading into the dense undergrowth.\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- dense undergrowth: at the near center of the frame.\nFIGURES:\n- 혜수 (C02): at the near center of the frame — NEAREST figure to the camera.\n- 한국인 형사들: at the near left side of the frame; about 1.1x as far from the camera as the nearest figure, so they must appear roughly 0.87x the nearest figure's height (smaller, deeper in the frame).\n- 한국인 형사들: at the near right side of the frame; about 1.1x as far from the camera as the nearest figure, so they must appear roughly 0.87x 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,
            1
          ],
          [
            2,
            4
          ]
        ],
        "layout": {
          "cameras": [
            {
              "look_at": [
                52,
                70
              ],
              "pos": [
                50,
                8
              ],
              "shot_index": 1
            },
            {
              "look_at": [
                51,
                68
              ],
              "pos": [
                36,
                30
              ],
              "shot_index": 4
            }
          ],
          "figures": [
            {
              "entity_token": "C07",
              "figure_id": "attacker",
              "label": "정체불명의 습격자 (활성 상태)",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    50,
                    70
                  ],
                  "shot_index": 1
                }
              ]
            },
            {
              "entity_token": "C11",
              "figure_id": "hyojang_victim",
              "label": "효장동 피해 여자",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    52,
                    70
                  ],
                  "shot_index": 1
                },
                {
                  "moving_toward": null,
                  "pos": [
                    51,
                    68
                  ],
                  "shot_index": 4
                }
              ]
            }
          ],
          "landmarks": [
            {
              "faces_toward": null,
              "id": "alley",
              "kind": "area",
              "label": "도시 뒷골목",
              "points": [
                [
                  30,
                  0
                ],
                [
                  70,
                  0
                ],
                [
                  68,
                  100
                ],
                [
                  32,
                  100
                ]
              ]
            },
            {
              "faces_toward": null,
              "id": "utility_pole",
              "kind": "point",
              "label": "콘크리트 전봇대",
              "points": [
                [
                  53,
                  72
                ]
              ]
            },
            {
              "faces_toward": null,
              "id": "streetlamp",
              "kind": "point",
              "label": "가로등",
              "points": [
                [
                  61,
                  70
                ]
              ]
            }
          ]
        },
        "spatial_summaries": {
          "2: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- 도시 뒷골목: at the near center of the frame.\n- 콘크리트 전봇대: at the near center of the frame.\n- 가로등: at the near center of the frame.\nFIGURES:\n- 정체불명의 습격자 (활성 상태) (C07): at the near center of the frame — NEAREST figure to the camera.\n- 효장동 피해 여자 (C11): at the near center of the frame; about 1.0x as far from the camera as the nearest figure, so they must appear roughly 1.00x 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: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- 콘크리트 전봇대: at the near center of the frame.\n- 가로등: at the near center of the frame.\nFIGURES:\n- 효장동 피해 여자 (C11): at the near center of the frame — NEAREST figure to the camera."
        }
      },
      {
        "group_id": "osl-l03",
        "location_id": "L03",
        "member_shots": [
          [
            4,
            1
          ],
          [
            10,
            3
          ],
          [
            10,
            6
          ]
        ],
        "layout": {
          "cameras": [
            {
              "look_at": [
                50,
                58
              ],
              "pos": [
                50,
                5
              ],
              "shot_index": 1
            },
            {
              "look_at": [
                50,
                64
              ],
              "pos": [
                50,
                43
              ],
              "shot_index": 3
            },
            {
              "look_at": [
                64,
                72
              ],
              "pos": [
                85,
                72
              ],
              "shot_index": 6
            }
          ],
          "figures": [
            {
              "entity_token": "C07",
              "figure_id": "attacker",
              "label": "정체불명의 습격자 (활성 상태)",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    50,
                    54
                  ],
                  "shot_index": 3
                },
                {
                  "moving_toward": [
                    63,
                    71
                  ],
                  "pos": [
                    66,
                    73
                  ],
                  "shot_index": 6
                }
              ]
            },
            {
              "entity_token": "C04",
              "figure_id": "kang_minsook",
              "label": "강민숙",
              "positions": [
                {
                  "moving_toward": [
                    60,
                    69
                  ],
                  "pos": [
                    63,
                    71
                  ],
                  "shot_index": 6
                }
              ]
            }
          ],
          "landmarks": [
            {
              "faces_toward": null,
              "id": "rooftop",
              "kind": "area",
              "label": "옥탑방 옥상",
              "points": [
                [
                  10,
                  10
                ],
                [
                  90,
                  10
                ],
                [
                  90,
                  90
                ],
                [
                  10,
                  90
                ]
              ]
            },
            {
              "faces_toward": null,
              "id": "platform",
              "kind": "area",
              "label": "옥상 평상",
              "points": [
                [
                  32,
                  25
                ],
                [
                  68,
                  25
                ],
                [
                  68,
                  40
                ],
                [
                  32,
                  40
                ]
              ]
            },
            {
              "faces_toward": [
                50,
                45
              ],
              "id": "rooftop_room",
              "kind": "area",
              "label": "작은 옥탑방과 지붕",
              "points": [
                [
                  35,
                  62
                ],
                [
                  68,
                  62
                ],
                [
                  68,
                  87
                ],
                [
                  35,
                  87
                ]
              ]
            },
            {
              "faces_toward": [
                50,
                45
              ],
              "id": "entrance_door",
              "kind": "line",
              "label": "옥탑방 현관 철문",
              "points": [
                [
                  46,
                  62
                ],
                [
                  54,
                  62
                ]
              ]
            },
            {
              "faces_toward": null,
              "id": "window",
              "kind": "line",
              "label": "옥탑방 창문",
              "points": [
                [
                  68,
                  68
                ],
                [
                  68,
                  77
                ]
              ]
            },
            {
              "faces_toward": null,
              "id": "water_tank",
              "kind": "area",
              "label": "물탱크",
              "points": [
                [
                  76,
                  29
                ],
                [
                  86,
                  29
                ],
                [
                  86,
                  41
                ],
                [
                  76,
                  41
                ]
              ]
            }
          ]
        },
        "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- 옥탑방 옥상: at the near center of the frame.\n- 옥상 평상: at the near center of the frame.\n- 작은 옥탑방과 지붕: at the far center of the frame.\n- 옥탑방 현관 철문 (path): runs from the mid-distance left side of the frame to the mid-distance right side of the frame.\n- 옥탑방 창문 (path): runs from the far right side of the frame to the far right side of the frame.\n- 물탱크: at the far right side of the frame.\nFIGURES:\n- 정체불명의 습격자 (활성 상태) (C07): at the near center of the frame — NEAREST figure to the camera.",
          "10: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- 옥탑방 옥상: at the mid-distance left side of the frame.\n- 옥상 평상: at the far left side of the frame.\n- 작은 옥탑방과 지붕: at the mid-distance center of the frame.\n- 옥탑방 현관 철문 (path): runs from the mid-distance left side of the frame to the mid-distance left side of the frame.\n- 옥탑방 창문 (path): runs from the near left side of the frame to the near right side of the frame.\n- 물탱크: at the mid-distance left side of the frame.\nFIGURES:\n- 정체불명의 습격자 (활성 상태) (C07): at the near center of the frame — NEAREST figure to the camera; in motion: already partway along their path, heading toward the near center of the frame; NOT heading into the 물탱크.\n- 강민숙 (C04): at the near center of the frame; about 1.2x as far from the camera as the nearest figure, so they must appear roughly 0.86x the nearest figure's height (smaller, deeper in the frame); in motion: already partway along their path, heading toward the mid-distance center of the frame; NOT heading into the 물탱크.\nDEPTH CONTRACT: 강민숙 is farther than 정체불명의 습격자 (활성 상태) and must read visibly smaller and deeper in the frame."
        }
      },
      {
        "group_id": "osl-l05",
        "location_id": "L05",
        "member_shots": [
          [
            6,
            1
          ],
          [
            9,
            1
          ],
          [
            24,
            3
          ]
        ],
        "layout": {
          "cameras": [
            {
              "look_at": [
                50,
                70
              ],
              "pos": [
                50,
                57
              ],
              "shot_index": 1
            },
            {
              "look_at": [
                50,
                45
              ],
              "pos": [
                43,
                37
              ],
              "shot_index": 1
            },
            {
              "look_at": [
                50,
                25
              ],
              "pos": [
                58,
                25
              ],
              "shot_index": 3
            }
          ],
          "figures": [
            {
              "entity_token": "C01",
              "figure_id": "suriyoung",
              "label": "수리영",
              "positions": [
                {
                  "moving_toward": [
                    50,
                    5
                  ],
                  "pos": [
                    50,
                    70
                  ],
                  "shot_index": 1
                },
                {
                  "moving_toward": [
                    50,
                    5
                  ],
                  "pos": [
                    50,
                    45
                  ],
                  "shot_index": 1
                },
                {
                  "moving_toward": [
                    50,
                    5
                  ],
                  "pos": [
                    50,
                    25
                  ],
                  "shot_index": 3
                }
              ]
            }
          ],
          "landmarks": [
            {
              "faces_toward": null,
              "id": "coastal_road",
              "kind": "area",
              "label": "해안가 도로",
              "points": [
                [
                  40,
                  5
                ],
                [
                  60,
                  5
                ],
                [
                  60,
                  95
                ],
                [
                  40,
                  95
                ]
              ]
            },
            {
              "faces_toward": null,
              "id": "coastline",
              "kind": "line",
              "label": "해안선",
              "points": [
                [
                  66,
                  5
                ],
                [
                  66,
                  95
                ]
              ]
            },
            {
              "faces_toward": null,
              "id": "sea",
              "kind": "area",
              "label": "바다",
              "points": [
                [
                  66,
                  5
                ],
                [
                  100,
                  5
                ],
                [
                  100,
                  95
                ],
                [
                  66,
                  95
                ]
              ]
            }
          ]
        },
        "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- 해안가 도로 (path): runs from the far right side of the frame to the far center of the frame.\n- 해안선 (path): runs from the far right side of the frame to the far right side of the frame.\n- 바다 (path): runs from the far right side of the frame to the far right 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 center of the frame; their path follows the 해안가 도로.",
          "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- 해안가 도로 (path): runs from the far right side of the frame to the far center of the frame.\n- 해안선 (path): runs from the far right side of the frame to the far right side of the frame.\n- 바다 (path): runs from the far right side of the frame to the far right 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 center of the frame; their path follows the 해안가 도로.",
          "24: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- 해안가 도로 (path): runs from the far left side of the frame to 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.\n- 바다 (path): runs from the far left side of the frame to the far right 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 해안가 도로; NOT heading into the 바다."
        }
      },
      {
        "group_id": "osl-l08",
        "location_id": "L08",
        "member_shots": [
          [
            8,
            1
          ],
          [
            8,
            5
          ],
          [
            8,
            7
          ]
        ],
        "layout": {
          "cameras": [
            {
              "look_at": [
                36,
                31
              ],
              "pos": [
                36,
                43
              ],
              "shot_index": 1
            },
            {
              "look_at": [
                75,
                75
              ],
              "pos": [
                68,
                72
              ],
              "shot_index": 5
            },
            {
              "look_at": [
                73,
                59
              ],
              "pos": [
                73,
                49
              ],
              "shot_index": 7
            }
          ],
          "figures": [
            {
              "entity_token": "C01",
              "figure_id": "suriyoung",
              "label": "수리영",
              "positions": [
                {
                  "moving_toward": [
                    72,
                    59
                  ],
                  "pos": [
                    35,
                    32
                  ],
                  "shot_index": 1
                },
                {
                  "moving_toward": null,
                  "pos": [
                    75,
                    75
                  ],
                  "shot_index": 5
                },
                {
                  "moving_toward": null,
                  "pos": [
                    72,
                    59
                  ],
                  "shot_index": 7
                }
              ]
            }
          ],
          "landmarks": [
            {
              "faces_toward": null,
              "id": "road_01",
              "kind": "area",
              "label": "road between street stalls",
              "points": [
                [
                  5,
                  16
                ],
                [
                  12,
                  7
                ],
                [
                  79,
                  52
                ],
                [
                  70,
                  64
                ]
              ]
            },
            {
              "faces_toward": [
                72,
                55
              ],
              "id": "supermarket_01",
              "kind": "area",
              "label": "supermarket",
              "points": [
                [
                  62,
                  63
                ],
                [
                  95,
                  63
                ],
                [
                  95,
                  95
                ],
                [
                  62,
                  95
                ]
              ]
            },
            {
              "faces_toward": [
                72,
                55
              ],
              "id": "entrance_01",
              "kind": "point",
              "label": "supermarket entrance",
              "points": [
                [
                  72,
                  63
                ]
              ]
            }
          ]
        },
        "spatial_summaries": {
          "8: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- road between street stalls (path): runs from the far right side of the frame to the far left side of the frame.\n- supermarket: at the far left side of the frame.\n- supermarket entrance: at 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 road between street stalls.",
          "8: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- road between street stalls (path): runs from the far right side of the frame to the far right side of the frame.\n- supermarket: at the mid-distance center of the frame.\n- supermarket entrance: at the mid-distance right side of the frame.\nFIGURES:\n- 수리영 (C01): at the near center of the frame — NEAREST figure to the camera.",
          "8: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- road between street stalls (path): runs from the near right side of the frame to the far left side of the frame.\n- supermarket: at the far center of the frame.\n- supermarket entrance: at the mid-distance center of the frame.\nFIGURES:\n- 수리영 (C01): at the near center of the frame — NEAREST figure to the camera."
        }
      },
      {
        "group_id": "osl-l11",
        "location_id": "L11",
        "member_shots": [
          [
            13,
            3
          ],
          [
            17,
            1
          ]
        ],
        "layout": {
          "cameras": [
            {
              "look_at": [
                50,
                40
              ],
              "pos": [
                50,
                10
              ],
              "shot_index": 3
            },
            {
              "look_at": [
                42,
                76
              ],
              "pos": [
                25,
                60
              ],
              "shot_index": 1
            }
          ],
          "figures": [
            {
              "entity_token": null,
              "figure_id": "figure_suriyeong",
              "label": "수리영",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    50,
                    30
                  ],
                  "shot_index": 3
                }
              ]
            },
            {
              "entity_token": null,
              "figure_id": "figure_black_cat",
              "label": "검은 고양이",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    10,
                    70
                  ],
                  "shot_index": 1
                }
              ]
            }
          ],
          "landmarks": [
            {
              "faces_toward": null,
              "id": "landmark_rooftop_room",
              "kind": "area",
              "label": "the rooftop room",
              "points": [
                [
                  55,
                  70
                ],
                [
                  85,
                  70
                ],
                [
                  85,
                  95
                ],
                [
                  55,
                  95
                ]
              ]
            },
            {
              "faces_toward": null,
              "id": "landmark_stairway",
              "kind": "line",
              "label": "the stairway",
              "points": [
                [
                  50,
                  35
                ],
                [
                  50,
                  70
                ]
              ]
            },
            {
              "faces_toward": null,
              "id": "landmark_wall",
              "kind": "line",
              "label": "the wall",
              "points": [
                [
                  10,
                  55
                ],
                [
                  10,
                  90
                ]
              ]
            }
          ]
        },
        "spatial_summaries": {
          "13: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- the rooftop room: at the far right side of the frame.\n- the stairway (path): runs from the mid-distance center of the frame to the far center of the frame.\n- the wall (path): runs from the far left side of the frame to the far left side of the frame.\nFIGURES:\n- 수리영: at the near center of the frame — NEAREST figure to the camera.",
          "17: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- the rooftop room: at the far right side of the frame.\n- the stairway (path): runs from the mid-distance right side of the frame to the mid-distance right side of the frame.\n- the wall (path): runs from the near left side of the frame to the mid-distance left side of the frame.\nFIGURES:\n- 검은 고양이: at the near left side of the frame — NEAREST figure to the camera."
        }
      },
      {
        "group_id": "osl-l12",
        "location_id": "L12",
        "member_shots": [
          [
            11,
            4
          ],
          [
            11,
            5
          ]
        ],
        "layout": {
          "cameras": [
            {
              "look_at": [
                52,
                58
              ],
              "pos": [
                53,
                53
              ],
              "shot_index": 4
            },
            {
              "look_at": [
                52,
                30
              ],
              "pos": [
                52,
                58
              ],
              "shot_index": 5
            }
          ],
          "figures": [
            {
              "entity_token": "C01",
              "figure_id": "suriyoung",
              "label": "수리영",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    52,
                    58
                  ],
                  "shot_index": 4
                },
                {
                  "moving_toward": null,
                  "pos": [
                    52,
                    58
                  ],
                  "shot_index": 5
                }
              ]
            }
          ],
          "landmarks": [
            {
              "faces_toward": null,
              "id": "rooftop_floor",
              "kind": "area",
              "label": "rooftop floor",
              "points": [
                [
                  18,
                  30
                ],
                [
                  86,
                  30
                ],
                [
                  86,
                  90
                ],
                [
                  18,
                  90
                ]
              ]
            },
            {
              "faces_toward": [
                52,
                58
              ],
              "id": "rooftop_room",
              "kind": "area",
              "label": "rooftop room",
              "points": [
                [
                  35,
                  10
                ],
                [
                  70,
                  10
                ],
                [
                  70,
                  30
                ],
                [
                  35,
                  30
                ]
              ]
            },
            {
              "faces_toward": [
                52,
                58
              ],
              "id": "entrance_door",
              "kind": "line",
              "label": "half-open entrance metal door",
              "points": [
                [
                  48,
                  30
                ],
                [
                  52,
                  34
                ]
              ]
            },
            {
              "faces_toward": null,
              "id": "stairs",
              "kind": "line",
              "label": "stairs connected to the rooftop room",
              "points": [
                [
                  20,
                  88
                ],
                [
                  20,
                  62
                ],
                [
                  32,
                  44
                ]
              ]
            }
          ]
        },
        "spatial_summaries": {
          "11: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- rooftop floor: at the mid-distance center of the frame.\n- rooftop room: at the far left side of the frame.\n- half-open entrance metal door (path): runs from the far left side of the frame to the far left side of the frame.\n- stairs connected to the rooftop room (path): runs from the far left 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.",
          "11: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- rooftop floor: at the mid-distance center of the frame.\n- rooftop room: at the far center of the frame.\n- half-open entrance metal door (path): runs from the far center of the frame to the far center of the frame.\n- stairs connected to the rooftop room (path): runs from the far right side of the frame to the far right side of the frame.\nFIGURES:\n- 수리영 (C01): at the near center of the frame — NEAREST figure to the camera."
        }
      },
      {
        "group_id": "osl-l13",
        "location_id": "L13",
        "member_shots": [
          [
            15,
            2
          ],
          [
            15,
            5
          ]
        ],
        "layout": {
          "cameras": [
            {
              "look_at": [
                44,
                49
              ],
              "pos": [
                45,
                42
              ],
              "shot_index": 2
            },
            {
              "look_at": [
                60,
                56
              ],
              "pos": [
                39,
                40
              ],
              "shot_index": 5
            }
          ],
          "figures": [
            {
              "entity_token": "C02",
              "figure_id": "F1",
              "label": "혜수",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    40,
                    47
                  ],
                  "shot_index": 2
                },
                {
                  "moving_toward": null,
                  "pos": [
                    42,
                    49
                  ],
                  "shot_index": 5
                }
              ]
            },
            {
              "entity_token": "C01",
              "figure_id": "F2",
              "label": "수리영",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    45,
                    50
                  ],
                  "shot_index": 2
                },
                {
                  "moving_toward": [
                    92,
                    68
                  ],
                  "pos": [
                    72,
                    62
                  ],
                  "shot_index": 5
                }
              ]
            }
          ],
          "landmarks": [
            {
              "faces_toward": null,
              "id": "L1",
              "kind": "point",
              "label": "the bus stop",
              "points": [
                [
                  44,
                  52
                ]
              ]
            },
            {
              "faces_toward": null,
              "id": "L2",
              "kind": "line",
              "label": "the coastline",
              "points": [
                [
                  0,
                  82
                ],
                [
                  100,
                  82
                ]
              ]
            },
            {
              "faces_toward": null,
              "id": "L3",
              "kind": "area",
              "label": "the sea",
              "points": [
                [
                  0,
                  82
                ],
                [
                  100,
                  82
                ],
                [
                  100,
                  100
                ],
                [
                  0,
                  100
                ]
              ]
            }
          ]
        },
        "spatial_summaries": {
          "15:2": "SHOT 2 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- the bus stop: at the mid-distance center of the frame.\n- the coastline (path): runs from the far left side of the frame to the far right side of the frame.\n- the sea (path): runs from the far left side of the frame to the far right side of the frame.\nFIGURES:\n- 혜수 (C02): at the near left side of the frame — NEAREST figure to the camera.\n- 수리영 (C01): 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.88x 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.",
          "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- the bus stop: at the mid-distance left side of the frame.\n- the coastline (path): runs from the far left side of the frame to the far center of the frame.\n- the sea (path): runs from the far left side of the frame to the far center 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.2x 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 center of the frame; moving away from 혜수; NOT heading into the sea.\nDEPTH CONTRACT: 수리영 is farther than 혜수 and must read visibly smaller and deeper in the frame."
        }
      }
    ],
    "prompt_overrides": {
      "1:4": {
        "location_id": "L01",
        "group_id": "osl-l01",
        "revised": {
          "0": "Photorealistic cinematic still. C07O10 in a dark outfit, an Asian man, is captured in the upper-center midground, moving toward 금월산 피해 남자 below, while C09O12 in outdoor hiking wear, an Asian man, is already partway along his path in the deeper lower-center midground, visibly smaller than C07O10, heading toward the mid-distance right side of the frame and not into the dense undergrowth. Viewed from a low observer at waist height looking sharply upward, both figures share the same tight spatial column among the dense overgrown bushes. C07O10 appears as an airborne dark figure in right profile, knees drawn forward at the leap's apex, the face fully swallowed in shadow with no discernible facial features, body volume preserved against the fading light, with only selective saturated red eyes fixed on C09O12. Compressed into the lower frame, C09O12 is frozen in a frantic, stumbling mid-stride pose at three-quarter angle from the left, pushing through the thick foliage beneath the attacker's heavy shadow, his severely injured face showing wide eyes and an open mouth looking off-screen. His lower body reveals one foot missing a shoe and a large bleeding bite mark on his thigh. The gloomy forest environment is dominated by a fading sunset, casting muted earth tones and desaturated shadows across the surrounding thick bushes extending upward from the ground."
        },
        "provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "150a1fbe3dd0a69c",
            "revised_prompt_hash": "31e57279508c0f35"
          }
        },
        "edited_spans": {
          "0": [
            {
              "original": "C09O12 in outdoor hiking wear, an Asian man, is positioned in the lower-center midground.",
              "revised": "C09O12 in outdoor hiking wear, an Asian man, is already partway along his path in the deeper lower-center midground, visibly smaller than C07O10, heading toward the mid-distance right side of the frame and not into the dense undergrowth."
            }
          ]
        },
        "no_edit_reason": {}
      },
      "3:3": {
        "location_id": "L01",
        "group_id": "osl-l01",
        "revised": {
          "0": "Photorealistic cinematic still. A Korean middle-aged woman in a detective coat stands in the middle-center midground, pointing her extended index finger toward the off-screen investigation direction. Viewed from chest to eye height within a local-news broadcast image, her upper body anchors the composition at a three-quarter angle from the right. Her mouth is slightly open, and her gaze is directed off-screen. Several Korean male detectives in functional jackets surround her at the near left and near right edges of the frame, visibly smaller than her and slightly deeper in the frame, viewed from over the shoulder with their backs partially toward the camera, their eyes fixed on the commanding woman. In the background, uniformed police process the active scene near a wooded edge, separated by a yellow police line crossing the boundary, its printed warning side partially visible. Muted earth tones, restrained brightness, and a cool, tense broadcast contrast shape the daytime ambient light."
        },
        "provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "a96c941d9c70d509",
            "revised_prompt_hash": "b771d3af47d0653b"
          }
        },
        "edited_spans": {
          "0": [
            {
              "original": "surround her at the lateral edges of the frame",
              "revised": "surround her at the near left and near right edges of the frame, visibly smaller than her and slightly deeper in the frame"
            }
          ]
        },
        "no_edit_reason": {}
      },
      "2:1": {
        "location_id": "L02",
        "group_id": "osl-l02",
        "revised": {
          "0": "Photorealistic cinematic still. C07O10 in a dark silhouette outfit, an Asian adult male showing his face mostly swallowed in shadow with a male jaw contour, stands in the middle-center background, seen at three-quarter angle from the left, using his weight to pin C11O14 in night street casual wear, an Asian adult female, positioned visibly smaller and deeper in the middle-center background at three-quarter angle from the right, against a concrete utility pole in the middle-center background. C11O14 has her back braced against the shared vertical anchor, her eyes fixed on C07O10, while C07O10 exerts decisive force, his glowing red eyes fixed on C11O14 as a restrained accent. An observer views them from one end of a dark, narrow concrete back alley at adult eye height, capturing their full bodies grouped slightly off center. The alley depth is fully visible, its ground paved with rough asphalt reflecting minimal light. A single faint streetlamp illuminates the scene, producing low-brightness, tense contrast with deep, desaturated shadows dominating the surroundings."
        },
        "provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "0a47041e7365edcb",
            "revised_prompt_hash": "20fef5f149a030a4"
          }
        },
        "edited_spans": {
          "0": [
            {
              "original": "stands in the middle-left background",
              "revised": "stands in the middle-center background"
            },
            {
              "original": "positioned in the middle-center background at three-quarter angle from the right",
              "revised": "positioned visibly smaller and deeper in the middle-center background at three-quarter angle from the right"
            }
          ]
        },
        "no_edit_reason": {}
      },
      "10:6": {
        "location_id": "L03",
        "group_id": "osl-l03",
        "revised": {
          "0": "Photorealistic cinematic still. Viewed from an outside observer at upper-body height facing the glass squarely, the C07 reflected silhouette in dark clothing, an Asian adult man, dominates the middle-center foreground, exerting force over the C04 reflected silhouette in casual wear, a Korean middle-aged woman, constrained at the near center, already partway along the shared window pane toward the mid-distance center, visibly smaller and deeper than C07, and not heading into the water tank. C07, showing variant traits of a face obscured in darkness with indiscernible head shape, is frozen mid-lunge over her shoulder at a three-quarter angle from the left, his eyes fixed on C04. C04, with a mature face, is caught in right profile, twisting beneath the attacker, visibly wounded with a pained expression, her eyes fixed on C07. Faint interior light reduces both figures to rough, low-brightness shapes; their body volumes are preserved by subtle depth and severe contrast. C04's jaw contour and natural dark hair catch a faint rim light, while C07 remains a dense, pitch-dark featureless mass. The window frame firmly anchors the violent collision against the heavily muted, pitch-dark rooftop exterior."
        },
        "provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "7a2fdca8de5e10fc",
            "revised_prompt_hash": "f33254be6f1ed3a3"
          }
        },
        "edited_spans": {
          "0": [
            {
              "original": "constrained in the middle-center midground on the shared window pane",
              "revised": "constrained at the near center, already partway along the shared window pane toward the mid-distance center, visibly smaller and deeper than C07, and not heading into the water tank"
            }
          ]
        },
        "no_edit_reason": {}
      },
      "24:3": {
        "location_id": "L05",
        "group_id": "osl-l05",
        "revised": {
          "0": "Photorealistic cinematic still. C01O03 in a soaked casual jacket, a 21-year-old Korean young woman, in right profile, torso pitched forward. Framed in a tight close-up at face height, her eye and set jaw occupy the center of the frame, looking off-screen into the distance. Her dark tied hair is completely soaked by heavy rain, with wet strands swept back in the direction opposite to her forward travel. Raindrops stream down her wet cheek and neck. A partial side section of the bicycle handlebars is visible at the lower frame edge, aligning with her forward motion. Behind her, [: a narrow blurred strip of dark coastline under heavy rain sweeps past]. Storm-darkened daylight and intermittent cold lightning create hard, brief accents on her wet skin against a muted, rain-heavy palette."
        },
        "provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "6934516a6980904d",
            "revised_prompt_hash": "8b3de941b119cbc0"
          }
        },
        "edited_spans": {
          "0": [
            {
              "original": "her eye and set jaw occupy the forward half of the frame",
              "revised": "her eye and set jaw occupy the center of the frame"
            }
          ]
        },
        "no_edit_reason": {}
      },
      "8:1": {
        "location_id": "L08",
        "group_id": "osl-l08",
        "revised": {
          "0": "Photorealistic cinematic still. Observed from rider height ahead and slightly left, C01O01 in casual everyday outerwear, a young Korean woman in her 20s with an oval face and dark tied-back hair, is positioned near the center. She is seen at three-quarter angle from the left, seated on the saddle of a bicycle in mid-pedal, one knee bent in the down stroke, gazing into the distance ahead. Her dark tied-back hair flows slightly backward in the direction opposite to motion, and the bicycle frame and front wheel are clearly visible below her. The desaturated cool shadows of the outdoor dusk street stretch behind her. Restrained warm accents glow from the pre-existing signs in the deeper background frame. She rides past the existing street stalls along the receding roadway, with pre-existing taxis visible in the background lane. Dusk illumination provides a cool ambient fill, punctuated by the warm glow from the existing signs and streetlights, creating moderate contrast."
        },
        "provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "df0a0569df3a55bd",
            "revised_prompt_hash": "94c986e2f8edc426"
          }
        },
        "edited_spans": {
          "0": [
            {
              "original": "is positioned near the middle-right.",
              "revised": "is positioned near the center."
            }
          ]
        },
        "no_edit_reason": {}
      },
      "8:7": {
        "location_id": "L08",
        "group_id": "osl-l08",
        "revised": {
          "0": "Photorealistic cinematic still. At chest height outside the market, a static camera angles slightly downward, framing the subject from the waist up. C01O01 in casual outerwear, a young Korean woman, occupies the center frame at a three-quarter angle from the right. Her hands cup P07 smartphone near her waist in the lower center. Her head tilts downward, her serious gaze fixed on the device. The P07 smartphone active display face tilts upward toward her and remains oblique to the camera, showing the unanswered-call interface. Behind her, the open door of the market stands as a background threshold. The surrounding outdoor street environment rests in desaturated cool shadows of dusk, punctuated by subdued warm neon accents from a distant signboard and a streetlight."
        },
        "provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "9177102261f096d3",
            "revised_prompt_hash": "6918870af4797edf"
          }
        },
        "edited_spans": {
          "0": [
            {
              "original": "occupies the center-left frame at a three-quarter angle from the right",
              "revised": "occupies the center frame at a three-quarter angle from the right"
            }
          ]
        },
        "no_edit_reason": {}
      },
      "11:4": {
        "location_id": "L12",
        "group_id": "osl-l12",
        "revised": {
          "0": "Photorealistic cinematic still. C01O01 in a casual jacket, an East Asian young woman, appears in the middle-center foreground. Framed in a tight facial close-up from an eye-level observer viewpoint, her face is positioned at center at three-quarter angle from the right. She is alive, recoiling with her chin drawn back and one shoulder turning away from the camera. Her gaze is looking off-screen, with her wrinkled nose and compressed brow dominating the isolated frame. The scene is enveloped in a low-key nighttime ambience with restrained low brightness, casting dark, somber shadows across her features. [: A minimal shadowed outdoor edge directly behind her shoulder] is rendered soft and out of focus, keeping the emphasis strictly on her repulsed reaction."
        },
        "provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "9fba45102c6f2dc3",
            "revised_prompt_hash": "70f82e547c010cbb"
          }
        },
        "edited_spans": {
          "0": [
            {
              "original": "her face is positioned slightly right of center at three-quarter angle from the right",
              "revised": "her face is positioned at center at three-quarter angle from the right"
            }
          ]
        },
        "no_edit_reason": {}
      },
      "15:2": {
        "location_id": "L13",
        "group_id": "osl-l13",
        "revised": {
          "0": "Photorealistic cinematic still. C02 in a detective coat, a middle-aged Asian woman, offering the canned drink in the middle-left foreground, reaching for the space above the lap of C01 in casual clothes, a young Asian woman, seated visibly smaller and deeper in the frame on the bench in the lower-center midground. Captured at lap height beside the bench, the close framing focuses entirely on C02's extended hand firmly gripping the canned drink, its side facing the camera at a slight angle. The can is suspended just above C01's still knees, placed below the upper forty percent of the image. C01's legs sit motionless in right profile, while C02's arm and torso lean in from the left, both characters' heads and faces remaining completely outside the upper frame edge, though their shoulder postures imply looking off-screen and gazing down respectively. The bench's wooden seat edge runs horizontally across the lower background beneath C01's knees, serving as a scale reference. [: The immediate background consists of dark nighttime surroundings fading into deep shadows at the frame edges, softly illuminated by subdued, natural ambient night light that keeps the close interaction tonally restrained.]"
        },
        "provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "6b33f243e2394439",
            "revised_prompt_hash": "cc538e4575b857db"
          }
        },
        "edited_spans": {
          "0": [
            {
              "original": "C01 in casual clothes, a young Asian woman, seated on the bench in the lower-center midground",
              "revised": "C01 in casual clothes, a young Asian woman, seated visibly smaller and deeper in the frame on the bench in the lower-center midground"
            }
          ]
        },
        "no_edit_reason": {}
      },
      "15:5": {
        "location_id": "L13",
        "group_id": "osl-l13",
        "revised": {
          "0": "Photorealistic cinematic still. C02O04 in a field jacket, an Asian middle-aged woman, stands in the middle-left foreground looking toward departing C01O01, while C01O01 in a casual jacket, an Asian young woman, is seen visibly smaller than C02O04 and deeper in the far-center background, already partway along the departure path and heading toward the far center of the frame, moving away from C02O04 and not into the sea, both sharing the same coastal bus stop area. Shot from an eerie observer's POV at chest height near C02O04, capturing her at a three-quarter angle from the right, torso and arms in frame, with one hand cupped at her mouth, eyes fixed on C01O01. Across the shared space, C01O01 appears with her back to camera, running along the departure path away from C02O04 mid-stride, one foot lifted off the ground and hair flowing opposite to motion, gazing into the distance. An unoccupied bench recedes behind C02O04 toward the left side of the frame, and the distant sea is visible. The coastal bus stop area is immersed in nighttime darkness, softly illuminated by subdued, natural ambient night light, maintaining a dim, restrained atmosphere without harsh artificial glares, as background elements fade into deep shadows."
        },
        "provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "0741cbf88d13e1e6",
            "revised_prompt_hash": "2b80af1c35be9e77"
          }
        },
        "edited_spans": {
          "0": [
            {
              "original": "is seen in the middle-right background moving toward the right edge of the departure path",
              "revised": "is seen visibly smaller than C02O04 and deeper in the far-center background, already partway along the departure path and heading toward the far center of the frame, moving away from C02O04 and not into the sea"
            },
            {
              "original": "running away mid-stride",
              "revised": "running along the departure path away from C02O04 mid-stride"
            }
          ]
        },
        "no_edit_reason": {}
      }
    },
    "diagnostics": {
      "outdoor_location_count": 15,
      "seed_group_count": 10,
      "groups_extracted": 8,
      "skipped": [
        {
          "shot": "S7sh2",
          "reason": "zoom_continuity_member"
        },
        {
          "shot": "S7sh6",
          "reason": "zoom_continuity_member"
        },
        {
          "shot": "S13sh4",
          "reason": "zoom_continuity_member"
        },
        {
          "shot": "S13sh6",
          "reason": "zoom_continuity_member"
        },
        {
          "shot": "S26sh8",
          "reason": "zoom_continuity_member"
        },
        {
          "shot": "S26sh12",
          "reason": "zoom_continuity_member"
        },
        {
          "shot": "S28sh5",
          "reason": "zoom_continuity_member"
        },
        {
          "shot": "S28sh6",
          "reason": "zoom_continuity_member"
        },
        {
          "seed": "location:L18",
          "reason": "cap"
        },
        {
          "seed": "location:L19",
          "reason": "cap"
        }
      ],
      "layout_shape_violations": [],
      "layout_side_conflicts": [],
      "spatial_summary_skipped": [
        {
          "shot": "S4sh1",
          "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-shared-l03-s10",
          "shot": "S10sh6",
          "reason": "optical_composition_risk"
        },
        {
          "group": "osl-single-l11-s17-sh1",
          "shot": "S17sh1",
          "reason": "pose_brief_unusable_fail_closed"
        },
        {
          "group": "osl-shared-l12-s11",
          "shot": "S11sh4",
          "reason": "pose_brief_unusable_fail_closed"
        }
      ],
      "composition_guide_count": 15,
      "seed_prefilter_meta": {
        "1:1": {
          "why_candidate": "single_shot_outdoor_figure_present",
          "location_source": "frame_visible",
          "location_id": "L01",
          "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"
          ]
        },
        "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:1": {
          "why_candidate": "cross_shot_or_multi_figure_present",
          "location_source": "frame_visible",
          "location_id": "L02",
          "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:4": {
          "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": "medium",
          "character_angle_count": 2,
          "frame_spatial_contract_present": true,
          "available_structural_signal_names": [
            "framing_scale",
            "character_angles",
            "frame_spatial_contract",
            "gaze_direction"
          ]
        },
        "4:1": {
          "why_candidate": "single_shot_outdoor_no_figure",
          "location_source": "frame_visible",
          "location_id": "L03",
          "figure_count": 0,
          "framing_scale": "wide",
          "character_angle_count": 0,
          "frame_spatial_contract_present": true,
          "available_structural_signal_names": [
            "framing_scale",
            "frame_spatial_contract"
          ]
        },
        "6:1": {
          "why_candidate": "single_shot_outdoor_figure_present",
          "location_source": "frame_visible",
          "location_id": "L05",
          "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"
          ]
        },
        "8:1": {
          "why_candidate": "single_shot_outdoor_figure_present",
          "location_source": "primary_location",
          "location_id": "L08",
          "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"
          ]
        },
        "8:5": {
          "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": true,
          "available_structural_signal_names": [
            "framing_scale",
            "character_angles",
            "frame_spatial_contract",
            "gaze_direction"
          ]
        },
        "8:7": {
          "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"
          ]
        },
        "9:1": {
          "why_candidate": "single_shot_outdoor_figure_present",
          "location_source": "frame_visible",
          "location_id": "L05",
          "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"
          ]
        },
        "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": true,
          "available_structural_signal_names": [
            "framing_scale",
            "character_angles",
            "frame_spatial_contract",
            "gaze_direction"
          ]
        },
        "10:6": {
          "why_candidate": "cross_shot_or_multi_figure_present",
          "location_source": "frame_visible",
          "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": "L12",
          "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"
          ]
        },
        "11:5": {
          "why_candidate": "single_shot_outdoor_no_figure",
          "location_source": "primary_location",
          "location_id": "L12",
          "figure_count": 0,
          "framing_scale": "wide",
          "character_angle_count": 0,
          "frame_spatial_contract_present": true,
          "available_structural_signal_names": [
            "framing_scale",
            "frame_spatial_contract"
          ]
        },
        "13:3": {
          "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:2": {
          "why_candidate": "cross_shot_or_multi_figure_present",
          "location_source": "primary_location",
          "location_id": "L13",
          "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"
          ]
        },
        "15:5": {
          "why_candidate": "cross_shot_or_multi_figure_present",
          "location_source": "primary_location",
          "location_id": "L13",
          "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"
          ]
        },
        "17: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": true,
          "available_structural_signal_names": [
            "framing_scale",
            "character_angles",
            "frame_spatial_contract",
            "gaze_direction"
          ]
        },
        "24:3": {
          "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": false,
          "available_structural_signal_names": [
            "framing_scale",
            "character_angles",
            "gaze_direction"
          ]
        },
        "26:3": {
          "why_candidate": "single_shot_outdoor_no_figure",
          "location_source": "frame_visible",
          "location_id": "L18",
          "figure_count": 0,
          "framing_scale": "close",
          "character_angle_count": 0,
          "frame_spatial_contract_present": false,
          "available_structural_signal_names": [
            "framing_scale"
          ]
        },
        "30:3": {
          "why_candidate": "single_shot_outdoor_no_figure",
          "location_source": "frame_visible",
          "location_id": "L19",
          "figure_count": 0,
          "framing_scale": "wide",
          "character_angle_count": 0,
          "frame_spatial_contract_present": true,
          "available_structural_signal_names": [
            "framing_scale",
            "frame_spatial_contract"
          ]
        }
      },
      "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": [
            "S1sh1",
            "S1sh4"
          ],
          "cameras_non_identical": true,
          "landmark_count": 1,
          "per_shot_signals": {
            "1:1": {
              "entity_count_bucket": "single",
              "entity_count": 1,
              "depth_planes": 1,
              "has_motion": true
            },
            "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": 1,
          "per_shot_signals": {
            "3:3": {
              "entity_count_bucket": "multiple",
              "entity_count": 3,
              "depth_planes": 2,
              "has_motion": false
            }
          }
        },
        {
          "group_id": "osl-shared-l02-s2",
          "location_id": "L02",
          "scene_index": 2,
          "member_shots": [
            "S2sh1",
            "S2sh4"
          ],
          "cameras_non_identical": true,
          "landmark_count": 3,
          "per_shot_signals": {
            "2:1": {
              "entity_count_bucket": "multiple",
              "entity_count": 2,
              "depth_planes": 2,
              "has_motion": false
            },
            "2:4": {
              "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",
            "S10sh6"
          ],
          "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:6": {
              "entity_count_bucket": "multiple",
              "entity_count": 2,
              "depth_planes": 2,
              "has_motion": true
            }
          }
        },
        {
          "group_id": "osl-single-l05-s6-sh1",
          "location_id": "L05",
          "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-l05-s9-sh1",
          "location_id": "L05",
          "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-l05-s24-sh3",
          "location_id": "L05",
          "scene_index": 24,
          "member_shots": [
            "S24sh3"
          ],
          "cameras_non_identical": false,
          "landmark_count": 3,
          "per_shot_signals": {
            "24:3": {
              "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": [
            "S8sh1",
            "S8sh5",
            "S8sh7"
          ],
          "cameras_non_identical": true,
          "landmark_count": 3,
          "per_shot_signals": {
            "8:1": {
              "entity_count_bucket": "single",
              "entity_count": 1,
              "depth_planes": 1,
              "has_motion": true
            },
            "8:5": {
              "entity_count_bucket": "single",
              "entity_count": 1,
              "depth_planes": 1,
              "has_motion": false
            },
            "8:7": {
              "entity_count_bucket": "single",
              "entity_count": 1,
              "depth_planes": 1,
              "has_motion": false
            }
          }
        },
        {
          "group_id": "osl-single-l11-s13-sh3",
          "location_id": "L11",
          "scene_index": 13,
          "member_shots": [
            "S13sh3"
          ],
          "cameras_non_identical": false,
          "landmark_count": 3,
          "per_shot_signals": {
            "13:3": {
              "entity_count_bucket": "single",
              "entity_count": 1,
              "depth_planes": 1,
              "has_motion": false
            }
          }
        },
        {
          "group_id": "osl-single-l11-s17-sh1",
          "location_id": "L11",
          "scene_index": 17,
          "member_shots": [
            "S17sh1"
          ],
          "cameras_non_identical": false,
          "landmark_count": 3,
          "per_shot_signals": {
            "17:1": {
              "entity_count_bucket": "single",
              "entity_count": 1,
              "depth_planes": 0,
              "has_motion": false
            }
          }
        },
        {
          "group_id": "osl-shared-l12-s11",
          "location_id": "L12",
          "scene_index": 11,
          "member_shots": [
            "S11sh4",
            "S11sh5"
          ],
          "cameras_non_identical": true,
          "landmark_count": 4,
          "per_shot_signals": {
            "11:4": {
              "entity_count_bucket": "single",
              "entity_count": 1,
              "depth_planes": 1,
              "has_motion": false
            },
            "11:5": {
              "entity_count_bucket": "single",
              "entity_count": 1,
              "depth_planes": 0,
              "has_motion": false
            }
          }
        },
        {
          "group_id": "osl-shared-l13-s15",
          "location_id": "L13",
          "scene_index": 15,
          "member_shots": [
            "S15sh2",
            "S15sh5"
          ],
          "cameras_non_identical": true,
          "landmark_count": 3,
          "per_shot_signals": {
            "15:2": {
              "entity_count_bucket": "multiple",
              "entity_count": 2,
              "depth_planes": 2,
              "has_motion": false
            },
            "15:5": {
              "entity_count_bucket": "multiple",
              "entity_count": 2,
              "depth_planes": 2,
              "has_motion": true
            }
          }
        }
      ],
      "shared_model_judge_decisions": [
        {
          "group_id": "osl-shared-l01-s1",
          "needs_shared_model_guide": true,
          "decision_type": "both",
          "confidence": "high",
          "reasons": [
            "multi_angle_same_set",
            "figure_placement_continuity",
            "camera_or_framing_risk",
            "depth_layering"
          ],
          "evidence": [
            {
              "shot_key": "1:1",
              "source_field": "camera_direction",
              "quote": "Track backward at the fleeing man's chest height in a slightly tightened frontal three-quarter upper-body frame"
            },
            {
              "shot_key": "1:4",
              "source_field": "camera_direction",
              "quote": "place the camera at the man's side near waist height and tilt sharply upward, holding both bodies in a wide frame at the leap's apex"
            }
          ],
          "guide_scope": "group",
          "risk_notes": "The group requires cross-shot continuity to maintain the spatial relationship between the fleeing man and the environment across different camera angles. Additionally, shot 1:4 presents a high single-shot complexity risk due to its extreme low-angle framing ('tilt sharply upward') and the need to correctly position an airborne figure relative to a grounded one, which an unguided render is likely to misinterpret or flatten.",
          "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": [
            "depth_layering",
            "occlusion_or_framing_risk"
          ],
          "evidence": [
            {
              "shot_key": "3:3",
              "source_field": "camera_direction",
              "quote": "centered on 혜수 among the detective group"
            },
            {
              "shot_key": "3:3",
              "source_field": "camera_direction",
              "quote": "surrounding detectives remain at the lateral edges"
            }
          ],
          "guide_scope": "single",
          "risk_notes": "Multiple figures arranged across foreground and background depth planes require a layout guide to ensure correct lateral placement and depth.",
          "admit": true,
          "deny_reason": null
        },
        {
          "group_id": "osl-shared-l02-s2",
          "needs_shared_model_guide": true,
          "decision_type": "both",
          "confidence": "high",
          "reasons": [
            "multi_angle_same_set",
            "shared_structure_continuity",
            "figure_placement_continuity",
            "camera_or_framing_risk"
          ],
          "evidence": [
            {
              "shot_key": "2:1",
              "source_field": "camera_direction",
              "quote": "From one end of the alley at adult eye height, hold a static long-distance wide frame with the utility pole and the two intertwined figures"
            },
            {
              "shot_key": "2:4",
              "source_field": "camera_direction",
              "quote": "Retreat at near-ground height until the woman's entire body fits diagonally across the wide frame, keeping the lens almost level with the asphalt."
            }
          ],
          "guide_scope": "group",
          "risk_notes": "The shots share the same alley location and structures (utility pole, street lamp) but are filmed from different heights (adult eye height vs near-ground level). A shared guide is needed to maintain structural and spatial continuity. Shot 2:4 also features an extreme low angle that requires careful placement.",
          "admit": true,
          "deny_reason": null
        },
        {
          "group_id": "osl-shared-l03-s10",
          "needs_shared_model_guide": true,
          "decision_type": "single_shot_complexity",
          "confidence": "high",
          "reasons": [
            "camera_or_framing_risk",
            "occlusion_or_framing_risk"
          ],
          "evidence": [
            {
              "shot_key": "10:3",
              "source_field": "camera_direction",
              "quote": "centered before the closed entrance door. His silhouette occupies the middle third while the door’s front plane remains fully legible beyond him; the lowered rear-axis perspective"
            },
            {
              "shot_key": "10:6",
              "source_field": "camera_direction",
              "quote": "holds the reflected silhouettes at the center of the pane"
            }
          ],
          "guide_scope": "single",
          "risk_notes": "Shot 10:6 frames the subjects entirely as reflections in a window pane, which poses a high optical risk for mannequin sketches; it is excluded from the guide. The remaining shot, 10:3, requires precise alignment of the character's back against the door from a lowered rear-axis perspective, warranting a single-shot guide to ensure the spatial relationship and framing are rendered correctly.",
          "admit": true,
          "deny_reason": null
        },
        {
          "group_id": "osl-single-l05-s6-sh1",
          "needs_shared_model_guide": true,
          "decision_type": "single_shot_complexity",
          "confidence": "high",
          "reasons": [
            "camera_or_framing_risk",
            "occlusion_or_framing_risk"
          ],
          "evidence": [
            {
              "shot_key": "6:1",
              "source_field": "camera_direction",
              "quote": "Move directly ahead of the bicycle at 수리영's chest height while matching her speed, holding a head-on medium upper-body frame. Her hands and the handlebar sit across the lower third"
            }
          ],
          "guide_scope": "single",
          "risk_notes": "Head-on tracking shot requires specific framing of the bicycle handlebars and the character's upper body.",
          "admit": true,
          "deny_reason": null
        },
        {
          "group_id": "osl-single-l05-s9-sh1",
          "needs_shared_model_guide": true,
          "decision_type": "single_shot_complexity",
          "confidence": "high",
          "reasons": [
            "camera_or_framing_risk"
          ],
          "evidence": [
            {
              "shot_key": "9:1",
              "source_field": "camera_direction",
              "quote": "At waist height off 수리영’s front-left side, the camera tracks parallel with the bicycle in a close mid-action composition. Her pitched torso occupies the upper center while the forceful descending leg and pedal remain visible in the lower-right"
            }
          ],
          "guide_scope": "single",
          "risk_notes": "The specific waist-height tracking camera and precise framing requirements for the torso and leg create a high placement risk that warrants a layout guide.",
          "admit": true,
          "deny_reason": null
        },
        {
          "group_id": "osl-single-l05-s24-sh3",
          "needs_shared_model_guide": true,
          "decision_type": "single_shot_complexity",
          "confidence": "high",
          "reasons": [
            "camera_or_framing_risk"
          ],
          "evidence": [
            {
              "shot_key": "24:3",
              "source_field": "camera_direction",
              "quote": "locking her rain-soaked profile into a tight close-up. Her eye and set jaw occupy the forward half of the frame"
            }
          ],
          "guide_scope": "single",
          "risk_notes": "The specific framing directive requiring the profile to occupy the forward half of the frame in a tight close-up presents a framing risk that benefits from a layout guide.",
          "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",
            "figure_placement_continuity"
          ],
          "evidence": [
            {
              "shot_key": "8:1",
              "source_field": "camera_direction",
              "quote": "From rider height ahead and slightly left of the bicycle, the camera tracks backward at matching speed"
            },
            {
              "shot_key": "8:5",
              "source_field": "camera_direction",
              "quote": "The dolly-in reaches 수리영’s eye level from the employees’ side of her eyeline"
            },
            {
              "shot_key": "8:7",
              "source_field": "camera_direction",
              "quote": "Outside the entrance, a static camera at chest height angles slightly downward from in front of 수리영"
            }
          ],
          "guide_scope": "group",
          "risk_notes": "The group features multiple distinct camera angles and positions (tracking backward, dolly-in, static angled downward) within the same outdoor location (street stalls and supermarket entrance). A shared model guide is necessary to ensure the structures and the character's placement remain consistent across these varying perspectives.",
          "admit": true,
          "deny_reason": null
        },
        {
          "group_id": "osl-single-l11-s13-sh3",
          "needs_shared_model_guide": true,
          "decision_type": "single_shot_complexity",
          "confidence": "high",
          "reasons": [
            "camera_or_framing_risk"
          ],
          "evidence": [
            {
              "shot_key": "13:3",
              "source_field": "camera_direction",
              "quote": "At chest height at the bottom of the stairway, hold a static full-body composition with 수리영 placed centrally and the stair run retained behind her."
            }
          ],
          "guide_scope": "single",
          "risk_notes": "The camera direction specifies a strong structural relationship where the figure must be placed at the bottom of the stairway with the stair run visible behind her, creating a placement risk that warrants a single-shot guide.",
          "admit": true,
          "deny_reason": null
        },
        {
          "group_id": "osl-single-l11-s17-sh1",
          "needs_shared_model_guide": true,
          "decision_type": "single_shot_complexity",
          "confidence": "high",
          "reasons": [
            "depth_layering",
            "camera_or_framing_risk"
          ],
          "evidence": [
            {
              "shot_key": "17:1",
              "source_field": "camera_direction",
              "quote": "camera holds at the 검은 고양이's height near the wall in a slight side angle, with the crouched animal placed left of center and the lit window aligned beyond its turned head"
            }
          ],
          "guide_scope": "single",
          "risk_notes": "The shot requires a specific low camera height and precise alignment between the midground subject and the background structure (lit window), which an unguided render may fail to layer correctly.",
          "admit": true,
          "deny_reason": null
        },
        {
          "group_id": "osl-shared-l12-s11",
          "needs_shared_model_guide": true,
          "decision_type": "both",
          "confidence": "high",
          "reasons": [
            "multi_angle_same_set",
            "shared_structure_continuity",
            "camera_or_framing_risk"
          ],
          "evidence": [
            {
              "shot_key": "11:4",
              "source_field": "camera_direction",
              "quote": "camera prepares to arc past it toward the entrance."
            },
            {
              "shot_key": "11:5",
              "source_field": "camera_direction",
              "quote": "doorway occupies the central background with the opened leaf angled into the right half"
            }
          ],
          "guide_scope": "group",
          "risk_notes": "The shots form a POV pair on the rooftop. A shared guide is needed to maintain the design and spatial relationship of the rooftop room and entrance door across the reverse angles, and to ensure the specific head-on framing of the doorway in shot 5 is accurate.",
          "admit": true,
          "deny_reason": null
        },
        {
          "group_id": "osl-shared-l13-s15",
          "needs_shared_model_guide": true,
          "decision_type": "both",
          "confidence": "high",
          "reasons": [
            "multi_angle_same_set",
            "figure_placement_continuity",
            "depth_layering",
            "camera_or_framing_risk"
          ],
          "evidence": [
            {
              "shot_key": "15:2",
              "source_field": "camera_direction",
              "quote": "At lap height beside the bench, finish the dolly in on 혜수's hand holding the canned drink just above 수리영's knees."
            },
            {
              "shot_key": "15:5",
              "source_field": "camera_direction",
              "quote": "혜수 occupies the left-center foreground with one hand cupped at her mouth, while 수리영's back remains smaller in the right background and continues away along the same sightline."
            }
          ],
          "guide_scope": "group",
          "risk_notes": "The group requires consistent placement of the characters and the bench across different camera heights and angles. Shot 15:2 presents a framing risk with its specific lap-height crop, while shot 15:5 introduces depth layering as one character moves away into the background.",
          "admit": true,
          "deny_reason": null
        }
      ],
      "shared_model_attach_decisions": [
        {
          "group_id": "osl-shared-l01-s1",
          "scene_index": 1,
          "base_cache_key": "0d8d719e6296277e",
          "attached_shots": [
            "1:1",
            "1:4"
          ],
          "attached": true
        },
        {
          "group_id": "osl-single-l01-s3-sh3",
          "scene_index": 3,
          "base_cache_key": "47b8c8b9c44476c4",
          "attached_shots": [
            "3:3"
          ],
          "attached": true
        },
        {
          "group_id": "osl-shared-l02-s2",
          "scene_index": 2,
          "base_cache_key": "f8b67fdbbd7d3db4",
          "attached_shots": [
            "2:1",
            "2:4"
          ],
          "attached": true
        },
        {
          "group_id": "osl-shared-l03-s10",
          "scene_index": 10,
          "base_cache_key": "f0e50ef7ff929db2",
          "attached_shots": [
            "10:3"
          ],
          "attached": true
        },
        {
          "group_id": "osl-single-l05-s6-sh1",
          "scene_index": 6,
          "base_cache_key": "d255d4152ca47b79",
          "attached_shots": [
            "6:1"
          ],
          "attached": true
        },
        {
          "group_id": "osl-single-l05-s9-sh1",
          "scene_index": 9,
          "base_cache_key": "2e345c295f4dded1",
          "attached_shots": [
            "9:1"
          ],
          "attached": true
        },
        {
          "group_id": "osl-single-l05-s24-sh3",
          "scene_index": 24,
          "base_cache_key": "5d0249679bdc716b",
          "attached_shots": [
            "24:3"
          ],
          "attached": true
        },
        {
          "group_id": "osl-shared-l08-s8",
          "scene_index": 8,
          "base_cache_key": "efa3fc6a73d270cd",
          "attached_shots": [
            "8:1",
            "8:5",
            "8:7"
          ],
          "attached": true
        },
        {
          "group_id": "osl-single-l11-s13-sh3",
          "scene_index": 13,
          "base_cache_key": "fbd9ccd3e673c9e2",
          "attached_shots": [
            "13:3"
          ],
          "attached": true
        },
        {
          "group_id": "osl-single-l11-s17-sh1",
          "scene_index": 17,
          "base_cache_key": "467f90c7fc313c0f",
          "attached_shots": [],
          "attached": false,
          "fail_stage": "pose_brief"
        },
        {
          "group_id": "osl-shared-l12-s11",
          "scene_index": 11,
          "base_cache_key": "db0a0fc96c27251c",
          "attached_shots": [],
          "attached": false,
          "fail_stage": "pose_brief"
        },
        {
          "group_id": "osl-shared-l13-s15",
          "scene_index": 15,
          "base_cache_key": "7e68262d3892d5d1",
          "attached_shots": [
            "15:2",
            "15:5"
          ],
          "attached": true
        }
      ],
      "shared_model_single_shot_complexity_observation": [
        {
          "group_id": "osl-shared-l01-s1",
          "decision_type": "both",
          "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-l02-s2",
          "decision_type": "both",
          "is_single_shot_candidate": false,
          "admit": true,
          "note": "single_shot_complexity lane 개방 — admit 시 production attach."
        },
        {
          "group_id": "osl-shared-l03-s10",
          "decision_type": "single_shot_complexity",
          "is_single_shot_candidate": false,
          "admit": true,
          "note": "single_shot_complexity lane 개방 — admit 시 production attach."
        },
        {
          "group_id": "osl-single-l05-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-l05-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-l05-s24-sh3",
          "decision_type": "single_shot_complexity",
          "is_single_shot_candidate": true,
          "admit": true,
          "note": "single_shot_complexity lane 개방 — admit 시 production attach."
        },
        {
          "group_id": "osl-single-l11-s13-sh3",
          "decision_type": "single_shot_complexity",
          "is_single_shot_candidate": true,
          "admit": true,
          "note": "single_shot_complexity lane 개방 — admit 시 production attach."
        },
        {
          "group_id": "osl-single-l11-s17-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-l12-s11",
          "decision_type": "both",
          "is_single_shot_candidate": false,
          "admit": true,
          "note": "single_shot_complexity lane 개방 — admit 시 production attach."
        },
        {
          "group_id": "osl-shared-l13-s15",
          "decision_type": "both",
          "is_single_shot_candidate": false,
          "admit": true,
          "note": "single_shot_complexity lane 개방 — admit 시 production attach."
        }
      ],
      "shared_model_pose_fail_closed": [
        {
          "shot": "S17sh1",
          "group_id": "osl-single-l11-s17-sh1",
          "figure_count": 0,
          "had_body": true
        },
        {
          "shot": "S11sh4",
          "group_id": "osl-shared-l12-s11",
          "figure_count": 1,
          "had_body": true
        }
      ],
      "shared_model_optical_risk_excluded": [
        {
          "shot": "S10sh6",
          "group_id": "osl-shared-l03-s10"
        }
      ],
      "shared_model_building_fp_link": {
        "L03": {
          "fp_id": "fp_l04_rooftop_room_interior",
          "indoor_loc_sid": "L04",
          "group_id": "bg_rooftop_villa"
        },
        "L11": {
          "fp_id": "fp_l04_rooftop_room_interior",
          "indoor_loc_sid": "L04",
          "group_id": "bg_rooftop_villa"
        },
        "L12": {
          "fp_id": "fp_l04_rooftop_room_interior",
          "indoor_loc_sid": "L04",
          "group_id": "bg_rooftop_villa"
        },
        "L08": {
          "fp_id": "fp_l15_security_office",
          "indoor_loc_sid": "L15",
          "group_id": "bg_large_market"
        },
        "L16": {
          "fp_id": "fp_l14_detective_office",
          "indoor_loc_sid": "L14",
          "group_id": "bg_police_station"
        },
        "L20": {
          "fp_id": "fp_l21_wheelhouse",
          "indoor_loc_sid": "L21",
          "group_id": "bg_small_fishing_boat"
        }
      },
      "shared_model_image_calls": {
        "predicted": {
          "base": 10,
          "blocking": 10,
          "camera_view_sketch": 10
        },
        "actual": {
          "base": 10,
          "blocking": 10,
          "camera_view_sketch": 10
        },
        "predicted_call_count": 30,
        "actual_call_count": 30,
        "continuity_anchor_generation_calls": 0
      },
      "shared_model_chain_lineage": {
        "annotated": [
          {
            "asset": "77bb82be-14b9-4022-9b3a-952793dff340",
            "role": "outdoor_shot_blocking",
            "input": "53fddf8f-c48c-4f25-94d4-82becc3d428f"
          },
          {
            "asset": "5eec7594-27ed-4bdb-95a3-5ae388693faf",
            "role": "outdoor_camera_sketch",
            "input": "77bb82be-14b9-4022-9b3a-952793dff340"
          },
          {
            "asset": "a541beca-0a25-4563-a309-ec8dfeee3b1c",
            "role": "outdoor_shot_blocking",
            "input": "a26d8a03-4937-4153-a8b1-3be8359caf0f"
          },
          {
            "asset": "5290ffe9-c5c9-43ae-bd44-9ab0abf84095",
            "role": "outdoor_camera_sketch",
            "input": "a541beca-0a25-4563-a309-ec8dfeee3b1c"
          },
          {
            "asset": "128f5330-b6c8-4b74-91f2-16618d0442e0",
            "role": "outdoor_shot_blocking",
            "input": "59b51171-eca7-4c34-aa82-e580b22d57e4"
          },
          {
            "asset": "a636f09e-1b4e-4227-9e1e-9a722e270c14",
            "role": "outdoor_camera_sketch",
            "input": "128f5330-b6c8-4b74-91f2-16618d0442e0"
          },
          {
            "asset": "d75ecaa0-6ba9-4f98-b808-8f988a01c981",
            "role": "outdoor_shot_blocking",
            "input": "2a596a18-1dcb-48ad-af8b-5eb53c60a177"
          },
          {
            "asset": "6ec6420b-ef85-4d17-b9cc-85a505f396c0",
            "role": "outdoor_camera_sketch",
            "input": "d75ecaa0-6ba9-4f98-b808-8f988a01c981"
          },
          {
            "asset": "5bc47f9b-e5f3-4058-8054-bb64ef701c30",
            "role": "outdoor_shot_blocking",
            "input": "1ac4ac74-0043-4ced-9ef5-ead988501b9e"
          },
          {
            "asset": "8005b593-f91e-4993-9873-e29ed65e49e3",
            "role": "outdoor_camera_sketch",
            "input": "5bc47f9b-e5f3-4058-8054-bb64ef701c30"
          },
          {
            "asset": "a59c5317-8fa5-4810-a3a4-3689b059a8ae",
            "role": "outdoor_shot_blocking",
            "input": "b537f2e6-9ace-4ed0-8035-dcf68e20e01f"
          },
          {
            "asset": "f61c63c5-427c-45f0-ad82-ac3413bbb2e4",
            "role": "outdoor_camera_sketch",
            "input": "a59c5317-8fa5-4810-a3a4-3689b059a8ae"
          },
          {
            "asset": "eeb6abd4-e432-4302-be62-030c5119e988",
            "role": "outdoor_shot_blocking",
            "input": "1a635390-b61d-452b-8a4b-3bb28bcddbb3"
          },
          {
            "asset": "4d2d5f0a-8520-43ba-b20f-b07cf0c57ead",
            "role": "outdoor_camera_sketch",
            "input": "eeb6abd4-e432-4302-be62-030c5119e988"
          },
          {
            "asset": "a0240021-6c82-4b95-9709-f78dd5ea0ab4",
            "role": "outdoor_shot_blocking",
            "input": "1902df9b-659c-4966-9adf-12f770fbb154"
          },
          {
            "asset": "d9e80a41-09ab-4187-ab71-18f5e45e26ed",
            "role": "outdoor_camera_sketch",
            "input": "a0240021-6c82-4b95-9709-f78dd5ea0ab4"
          },
          {
            "asset": "2fd045bb-71f7-4fdb-8822-7c924ce39d38",
            "role": "outdoor_shot_blocking",
            "input": "511affdf-5cd3-4afe-aed2-30daea0bebf8"
          },
          {
            "asset": "f76f6c9e-d17e-4c99-8dd3-2ef0fa4a35ed",
            "role": "outdoor_camera_sketch",
            "input": "2fd045bb-71f7-4fdb-8822-7c924ce39d38"
          },
          {
            "asset": "bb9cdbec-bb7f-4476-bdd0-c6f9587410e6",
            "role": "outdoor_shot_blocking",
            "input": "2957f180-c59e-489d-a55a-04348a63be93"
          },
          {
            "asset": "34022808-7c71-445a-a3ed-f7f08dc3954b",
            "role": "outdoor_camera_sketch",
            "input": "bb9cdbec-bb7f-4476-bdd0-c6f9587410e6"
          }
        ],
        "unresolved": [],
        "guide_asset_resolved": [
          {
            "shot": "1:1",
            "asset": "5eec7594-27ed-4bdb-95a3-5ae388693faf"
          },
          {
            "shot": "3:3",
            "asset": "5290ffe9-c5c9-43ae-bd44-9ab0abf84095"
          },
          {
            "shot": "2:1",
            "asset": "a636f09e-1b4e-4227-9e1e-9a722e270c14"
          },
          {
            "shot": "10:3",
            "asset": "6ec6420b-ef85-4d17-b9cc-85a505f396c0"
          },
          {
            "shot": "6:1",
            "asset": "8005b593-f91e-4993-9873-e29ed65e49e3"
          },
          {
            "shot": "9:1",
            "asset": "f61c63c5-427c-45f0-ad82-ac3413bbb2e4"
          },
          {
            "shot": "24:3",
            "asset": "4d2d5f0a-8520-43ba-b20f-b07cf0c57ead"
          },
          {
            "shot": "8:1",
            "asset": "d9e80a41-09ab-4187-ab71-18f5e45e26ed"
          },
          {
            "shot": "13:3",
            "asset": "f76f6c9e-d17e-4c99-8dd3-2ef0fa4a35ed"
          },
          {
            "shot": "15:2",
            "asset": "34022808-7c71-445a-a3ed-f7f08dc3954b"
          }
        ],
        "guide_asset_unresolved": []
      }
    },
    "composition_guides": {
      "1:1": {
        "mode": "sketch",
        "path": "composition_guides/S1sh1.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": "both",
          "evidence": [
            {
              "shot_key": "1:1",
              "source_field": "camera_direction",
              "quote": "Track backward at the fleeing man's chest height in a slightly tightened frontal three-quarter upper-body frame"
            },
            {
              "shot_key": "1:4",
              "source_field": "camera_direction",
              "quote": "place the camera at the man's side near waist height and tilt sharply upward, holding both bodies in a wide frame at the leap's apex"
            }
          ],
          "reasons": [
            "multi_angle_same_set",
            "figure_placement_continuity",
            "camera_or_framing_risk",
            "depth_layering"
          ]
        },
        "producer_kind": "shared_model_aerial_v2",
        "guide_generation_status": "ok",
        "base_cache_key": "0d8d719e6296277e",
        "base_hash": "7d669d488bfe1633",
        "base_prompt_hash": "e61514516591a3d5",
        "building_fp_id": "",
        "blocking_stage": "used",
        "blocking_stage_reason": "mandatory_3stage",
        "blocking_hash": "f4078d89f3cf1c5b",
        "pose_brief_present": true,
        "pose_brief_figures": 1,
        "pose_brief_hash": "5758632f751a19ca",
        "camera_brief_hash": "f6f7b10030ab1b3f",
        "camera_view_sketch_hash": "40e96f1933b39c51",
        "sketch_prompt_hash": "2a33956b6c3cba45",
        "helper_version": "shared_model_aerial_v4.202607031200",
        "forced_character_names": [
          "금월산 피해 남자"
        ],
        "guide_asset_id": "5eec7594-27ed-4bdb-95a3-5ae388693faf"
      },
      "1:4": {
        "mode": "continuity_anchor",
        "anchor_source": [
          1,
          1
        ],
        "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": "both",
          "evidence": [
            {
              "shot_key": "1:1",
              "source_field": "camera_direction",
              "quote": "Track backward at the fleeing man's chest height in a slightly tightened frontal three-quarter upper-body frame"
            },
            {
              "shot_key": "1:4",
              "source_field": "camera_direction",
              "quote": "place the camera at the man's side near waist height and tilt sharply upward, holding both bodies in a wide frame at the leap's apex"
            }
          ],
          "reasons": [
            "multi_angle_same_set",
            "figure_placement_continuity",
            "camera_or_framing_risk",
            "depth_layering"
          ]
        },
        "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": "centered on 혜수 among the detective group"
            },
            {
              "shot_key": "3:3",
              "source_field": "camera_direction",
              "quote": "surrounding detectives remain at the lateral edges"
            }
          ],
          "reasons": [
            "depth_layering",
            "occlusion_or_framing_risk"
          ]
        },
        "producer_kind": "shared_model_aerial_v2",
        "guide_generation_status": "ok",
        "base_cache_key": "47b8c8b9c44476c4",
        "base_hash": "6898278462a45096",
        "base_prompt_hash": "e61514516591a3d5",
        "building_fp_id": "",
        "blocking_stage": "used",
        "blocking_stage_reason": "mandatory_3stage",
        "blocking_hash": "7e24ee0d9f059039",
        "pose_brief_present": true,
        "pose_brief_figures": 4,
        "pose_brief_hash": "99702710c3e4cd2f",
        "camera_brief_hash": "654c70ba958470f0",
        "camera_view_sketch_hash": "4a2177f35ea17f10",
        "sketch_prompt_hash": "9ce239a18238fea1",
        "helper_version": "shared_model_aerial_v4.202607031200",
        "forced_character_names": [
          "한국인 형사들",
          "혜수"
        ],
        "guide_asset_id": "5290ffe9-c5c9-43ae-bd44-9ab0abf84095"
      },
      "2:1": {
        "mode": "sketch",
        "path": "composition_guides/S2sh1.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": "both",
          "evidence": [
            {
              "shot_key": "2:1",
              "source_field": "camera_direction",
              "quote": "From one end of the alley at adult eye height, hold a static long-distance wide frame with the utility pole and the two intertwined figures"
            },
            {
              "shot_key": "2:4",
              "source_field": "camera_direction",
              "quote": "Retreat at near-ground height until the woman's entire body fits diagonally across the wide frame, keeping the lens almost level with the asphalt."
            }
          ],
          "reasons": [
            "multi_angle_same_set",
            "shared_structure_continuity",
            "figure_placement_continuity",
            "camera_or_framing_risk"
          ]
        },
        "producer_kind": "shared_model_aerial_v2",
        "guide_generation_status": "ok",
        "base_cache_key": "f8b67fdbbd7d3db4",
        "base_hash": "a8aa329a4b01f3a1",
        "base_prompt_hash": "a6c641f438f727f6",
        "building_fp_id": "",
        "blocking_stage": "used",
        "blocking_stage_reason": "mandatory_3stage",
        "blocking_hash": "be9a33ce6d52371b",
        "pose_brief_present": true,
        "pose_brief_figures": 2,
        "pose_brief_hash": "bf1b5e36c2cf41c8",
        "camera_brief_hash": "b7db774e3be415f0",
        "camera_view_sketch_hash": "999c0b5a43b6428c",
        "sketch_prompt_hash": "f75d329a8487e483",
        "helper_version": "shared_model_aerial_v4.202607031200",
        "forced_character_names": [
          "정체불명의 습격자 (활성 상태)",
          "효장동 피해 여자"
        ],
        "guide_asset_id": "a636f09e-1b4e-4227-9e1e-9a722e270c14"
      },
      "2:4": {
        "mode": "continuity_anchor",
        "anchor_source": [
          2,
          1
        ],
        "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": "both",
          "evidence": [
            {
              "shot_key": "2:1",
              "source_field": "camera_direction",
              "quote": "From one end of the alley at adult eye height, hold a static long-distance wide frame with the utility pole and the two intertwined figures"
            },
            {
              "shot_key": "2:4",
              "source_field": "camera_direction",
              "quote": "Retreat at near-ground height until the woman's entire body fits diagonally across the wide frame, keeping the lens almost level with the asphalt."
            }
          ],
          "reasons": [
            "multi_angle_same_set",
            "shared_structure_continuity",
            "figure_placement_continuity",
            "camera_or_framing_risk"
          ]
        },
        "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": "single_shot_complexity",
          "evidence": [
            {
              "shot_key": "10:3",
              "source_field": "camera_direction",
              "quote": "centered before the closed entrance door. His silhouette occupies the middle third while the door’s front plane remains fully legible beyond him; the lowered rear-axis perspective"
            },
            {
              "shot_key": "10:6",
              "source_field": "camera_direction",
              "quote": "holds the reflected silhouettes at the center of the pane"
            }
          ],
          "reasons": [
            "camera_or_framing_risk",
            "occlusion_or_framing_risk"
          ]
        },
        "producer_kind": "shared_model_aerial_v2",
        "guide_generation_status": "ok",
        "base_cache_key": "f0e50ef7ff929db2",
        "base_hash": "1f4e86e8b7c00a95",
        "base_prompt_hash": "734dff20d247f869",
        "building_fp_id": "fp_l04_rooftop_room_interior",
        "blocking_stage": "used",
        "blocking_stage_reason": "mandatory_3stage",
        "blocking_hash": "1d4a80019612f762",
        "pose_brief_present": true,
        "pose_brief_figures": 1,
        "pose_brief_hash": "27bef6c821e1cc12",
        "camera_brief_hash": "7f075da2f11ff460",
        "camera_view_sketch_hash": "1a73680a087008eb",
        "sketch_prompt_hash": "4a85a9a5d191cb8f",
        "helper_version": "shared_model_aerial_v4.202607031200",
        "forced_character_names": [
          "정체불명의 습격자 (활성 상태)"
        ],
        "guide_asset_id": "6ec6420b-ef85-4d17-b9cc-85a505f396c0"
      },
      "6:1": {
        "mode": "sketch",
        "path": "composition_guides/S6sh1.png",
        "location_id": "L05",
        "group_id": "osl-single-l05-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": "high",
          "decision_type": "single_shot_complexity",
          "evidence": [
            {
              "shot_key": "6:1",
              "source_field": "camera_direction",
              "quote": "Move directly ahead of the bicycle at 수리영's chest height while matching her speed, holding a head-on medium upper-body frame. Her hands and the handlebar sit across the lower third"
            }
          ],
          "reasons": [
            "camera_or_framing_risk",
            "occlusion_or_framing_risk"
          ]
        },
        "producer_kind": "shared_model_aerial_v2",
        "guide_generation_status": "ok",
        "base_cache_key": "d255d4152ca47b79",
        "base_hash": "d2fd18cc173efbe8",
        "base_prompt_hash": "ae4e087f377eaeb3",
        "building_fp_id": "",
        "blocking_stage": "used",
        "blocking_stage_reason": "mandatory_3stage",
        "blocking_hash": "ea0cf69f439ba52a",
        "pose_brief_present": true,
        "pose_brief_figures": 1,
        "pose_brief_hash": "5f3e67fed2406a08",
        "camera_brief_hash": "048e21562137fb7c",
        "camera_view_sketch_hash": "18a52fb4b1ba079f",
        "sketch_prompt_hash": "251ffbf8a51c40c9",
        "helper_version": "shared_model_aerial_v4.202607031200",
        "forced_character_names": [
          "수리영"
        ],
        "guide_asset_id": "8005b593-f91e-4993-9873-e29ed65e49e3"
      },
      "9:1": {
        "mode": "sketch",
        "path": "composition_guides/S9sh1.png",
        "location_id": "L05",
        "group_id": "osl-single-l05-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": "high",
          "decision_type": "single_shot_complexity",
          "evidence": [
            {
              "shot_key": "9:1",
              "source_field": "camera_direction",
              "quote": "At waist height off 수리영’s front-left side, the camera tracks parallel with the bicycle in a close mid-action composition. Her pitched torso occupies the upper center while the forceful descending leg and pedal remain visible in the lower-right"
            }
          ],
          "reasons": [
            "camera_or_framing_risk"
          ]
        },
        "producer_kind": "shared_model_aerial_v2",
        "guide_generation_status": "ok",
        "base_cache_key": "2e345c295f4dded1",
        "base_hash": "9a903dd38fc683fb",
        "base_prompt_hash": "ae4e087f377eaeb3",
        "building_fp_id": "",
        "blocking_stage": "used",
        "blocking_stage_reason": "mandatory_3stage",
        "blocking_hash": "d4be3d00ed261708",
        "pose_brief_present": true,
        "pose_brief_figures": 1,
        "pose_brief_hash": "08738076d83f6e07",
        "camera_brief_hash": "048e21562137fb7c",
        "camera_view_sketch_hash": "f67190b825074b2f",
        "sketch_prompt_hash": "6b54d60703972e91",
        "helper_version": "shared_model_aerial_v4.202607031200",
        "forced_character_names": [
          "수리영"
        ],
        "guide_asset_id": "f61c63c5-427c-45f0-ad82-ac3413bbb2e4"
      },
      "24:3": {
        "mode": "sketch",
        "path": "composition_guides/S24sh3.png",
        "location_id": "L05",
        "group_id": "osl-single-l05-s24-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": "24:3",
              "source_field": "camera_direction",
              "quote": "locking her rain-soaked profile into a tight close-up. Her eye and set jaw occupy the forward half of the frame"
            }
          ],
          "reasons": [
            "camera_or_framing_risk"
          ]
        },
        "producer_kind": "shared_model_aerial_v2",
        "guide_generation_status": "ok",
        "base_cache_key": "5d0249679bdc716b",
        "base_hash": "1f7cf77f6328deb9",
        "base_prompt_hash": "ae4e087f377eaeb3",
        "building_fp_id": "",
        "blocking_stage": "used",
        "blocking_stage_reason": "mandatory_3stage",
        "blocking_hash": "b8a7f6bd7d22cc48",
        "pose_brief_present": true,
        "pose_brief_figures": 1,
        "pose_brief_hash": "82a3c970c4183d9a",
        "camera_brief_hash": "db507cda62f3be24",
        "camera_view_sketch_hash": "5f3c71639ff8310f",
        "sketch_prompt_hash": "e613b65309ba090d",
        "helper_version": "shared_model_aerial_v4.202607031200",
        "forced_character_names": [
          "수리영"
        ],
        "guide_asset_id": "4d2d5f0a-8520-43ba-b20f-b07cf0c57ead"
      },
      "8:1": {
        "mode": "sketch",
        "path": "composition_guides/S8sh1.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:1",
              "source_field": "camera_direction",
              "quote": "From rider height ahead and slightly left of the bicycle, the camera tracks backward at matching speed"
            },
            {
              "shot_key": "8:5",
              "source_field": "camera_direction",
              "quote": "The dolly-in reaches 수리영’s eye level from the employees’ side of her eyeline"
            },
            {
              "shot_key": "8:7",
              "source_field": "camera_direction",
              "quote": "Outside the entrance, a static camera at chest height angles slightly downward from in front of 수리영"
            }
          ],
          "reasons": [
            "multi_angle_same_set",
            "shared_structure_continuity",
            "figure_placement_continuity"
          ]
        },
        "producer_kind": "shared_model_aerial_v2",
        "guide_generation_status": "ok",
        "base_cache_key": "efa3fc6a73d270cd",
        "base_hash": "b1c059ba46314454",
        "base_prompt_hash": "8c04b2087ca6a320",
        "building_fp_id": "fp_l15_security_office",
        "blocking_stage": "used",
        "blocking_stage_reason": "mandatory_3stage",
        "blocking_hash": "743ad66db77388fc",
        "pose_brief_present": true,
        "pose_brief_figures": 1,
        "pose_brief_hash": "c91335e99b0ba70a",
        "camera_brief_hash": "396665aa81f4b853",
        "camera_view_sketch_hash": "87675e42f01f35d0",
        "sketch_prompt_hash": "cf407e43550c747b",
        "helper_version": "shared_model_aerial_v4.202607031200",
        "forced_character_names": [
          "수리영"
        ],
        "guide_asset_id": "d9e80a41-09ab-4187-ab71-18f5e45e26ed"
      },
      "8:5": {
        "mode": "continuity_anchor",
        "anchor_source": [
          8,
          1
        ],
        "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:1",
              "source_field": "camera_direction",
              "quote": "From rider height ahead and slightly left of the bicycle, the camera tracks backward at matching speed"
            },
            {
              "shot_key": "8:5",
              "source_field": "camera_direction",
              "quote": "The dolly-in reaches 수리영’s eye level from the employees’ side of her eyeline"
            },
            {
              "shot_key": "8:7",
              "source_field": "camera_direction",
              "quote": "Outside the entrance, a static camera at chest height angles slightly downward from in front of 수리영"
            }
          ],
          "reasons": [
            "multi_angle_same_set",
            "shared_structure_continuity",
            "figure_placement_continuity"
          ]
        },
        "forced_character_names": [
          "수리영"
        ]
      },
      "8:7": {
        "mode": "continuity_anchor",
        "anchor_source": [
          8,
          5
        ],
        "location_id": "L08",
        "group_id": "osl-shared-l08-s8",
        "admitted_order": 2,
        "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:1",
              "source_field": "camera_direction",
              "quote": "From rider height ahead and slightly left of the bicycle, the camera tracks backward at matching speed"
            },
            {
              "shot_key": "8:5",
              "source_field": "camera_direction",
              "quote": "The dolly-in reaches 수리영’s eye level from the employees’ side of her eyeline"
            },
            {
              "shot_key": "8:7",
              "source_field": "camera_direction",
              "quote": "Outside the entrance, a static camera at chest height angles slightly downward from in front of 수리영"
            }
          ],
          "reasons": [
            "multi_angle_same_set",
            "shared_structure_continuity",
            "figure_placement_continuity"
          ]
        },
        "forced_character_names": [
          "수리영"
        ]
      },
      "13:3": {
        "mode": "sketch",
        "path": "composition_guides/S13sh3.png",
        "location_id": "L11",
        "group_id": "osl-single-l11-s13-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": "13:3",
              "source_field": "camera_direction",
              "quote": "At chest height at the bottom of the stairway, hold a static full-body composition with 수리영 placed centrally and the stair run retained behind her."
            }
          ],
          "reasons": [
            "camera_or_framing_risk"
          ]
        },
        "producer_kind": "shared_model_aerial_v2",
        "guide_generation_status": "ok",
        "base_cache_key": "fbd9ccd3e673c9e2",
        "base_hash": "2bd313a82ae438bb",
        "base_prompt_hash": "d1b586947599489a",
        "building_fp_id": "fp_l04_rooftop_room_interior",
        "blocking_stage": "used",
        "blocking_stage_reason": "mandatory_3stage",
        "blocking_hash": "b9fd865bedd35d42",
        "pose_brief_present": true,
        "pose_brief_figures": 1,
        "pose_brief_hash": "bbfec09a4cedaed0",
        "camera_brief_hash": "5d6621ae66650ded",
        "camera_view_sketch_hash": "a2b417c61a0491d8",
        "sketch_prompt_hash": "b296d69a12d02d09",
        "helper_version": "shared_model_aerial_v4.202607031200",
        "forced_character_names": [
          "수리영"
        ],
        "guide_asset_id": "f76f6c9e-d17e-4c99-8dd3-2ef0fa4a35ed"
      },
      "15:2": {
        "mode": "sketch",
        "path": "composition_guides/S15sh2.png",
        "location_id": "L13",
        "group_id": "osl-shared-l13-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:2",
              "source_field": "camera_direction",
              "quote": "At lap height beside the bench, finish the dolly in on 혜수's hand holding the canned drink just above 수리영's knees."
            },
            {
              "shot_key": "15:5",
              "source_field": "camera_direction",
              "quote": "혜수 occupies the left-center foreground with one hand cupped at her mouth, while 수리영's back remains smaller in the right background and continues away along the same sightline."
            }
          ],
          "reasons": [
            "multi_angle_same_set",
            "figure_placement_continuity",
            "depth_layering",
            "camera_or_framing_risk"
          ]
        },
        "producer_kind": "shared_model_aerial_v2",
        "guide_generation_status": "ok",
        "base_cache_key": "7e68262d3892d5d1",
        "base_hash": "331adb024dc7750e",
        "base_prompt_hash": "8b419cd9b34521d7",
        "building_fp_id": "",
        "blocking_stage": "used",
        "blocking_stage_reason": "mandatory_3stage",
        "blocking_hash": "5d24377ba37126b1",
        "pose_brief_present": true,
        "pose_brief_figures": 2,
        "pose_brief_hash": "ab125a999653066e",
        "camera_brief_hash": "ed7ad0a635e9f6d3",
        "camera_view_sketch_hash": "fc2c617d2f64eb06",
        "sketch_prompt_hash": "26741864925930a6",
        "helper_version": "shared_model_aerial_v4.202607031200",
        "forced_character_names": [
          "수리영",
          "혜수"
        ],
        "guide_asset_id": "34022808-7c71-445a-a3ed-f7f08dc3954b"
      },
      "15:5": {
        "mode": "continuity_anchor",
        "anchor_source": [
          15,
          2
        ],
        "location_id": "L13",
        "group_id": "osl-shared-l13-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:2",
              "source_field": "camera_direction",
              "quote": "At lap height beside the bench, finish the dolly in on 혜수's hand holding the canned drink just above 수리영's knees."
            },
            {
              "shot_key": "15:5",
              "source_field": "camera_direction",
              "quote": "혜수 occupies the left-center foreground with one hand cupped at her mouth, while 수리영's back remains smaller in the right background and continues away along the same sightline."
            }
          ],
          "reasons": [
            "multi_angle_same_set",
            "figure_placement_continuity",
            "depth_layering",
            "camera_or_framing_risk"
          ]
        },
        "forced_character_names": [
          "수리영",
          "혜수"
        ]
      }
    },
    "review_html": "review_html/index.html"
  },
  "step_id": "outdoor_site_layout",
  "run_id": "816a6bd4-c209-44ca-8a34-6b05d02c67e7",
  "resolved_model": "gpt",
  "updated_at": "2026-07-16T19:27:35.084860+00:00",
  "project_config_snapshot": {}
}