{
  "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
          ]
        ],
        "layout": {
          "cameras": [
            {
              "look_at": [
                50,
                45
              ],
              "pos": [
                50,
                60
              ],
              "shot_index": 1
            }
          ],
          "figures": [
            {
              "entity_token": null,
              "figure_id": "figure_1",
              "label": "김선영",
              "positions": [
                {
                  "moving_toward": [
                    70,
                    45
                  ],
                  "pos": [
                    44,
                    45
                  ],
                  "shot_index": 1
                }
              ]
            },
            {
              "entity_token": null,
              "figure_id": "figure_2",
              "label": "이수정 (과거)",
              "positions": [
                {
                  "moving_toward": [
                    70,
                    45
                  ],
                  "pos": [
                    56,
                    45
                  ],
                  "shot_index": 1
                }
              ]
            }
          ],
          "landmarks": [
            {
              "faces_toward": null,
              "id": "landmark_1",
              "kind": "area",
              "label": "Tagada Disco ride",
              "points": [
                [
                  25,
                  20
                ],
                [
                  75,
                  20
                ],
                [
                  82,
                  50
                ],
                [
                  75,
                  80
                ],
                [
                  25,
                  80
                ],
                [
                  18,
                  50
                ]
              ]
            }
          ]
        },
        "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- Tagada Disco ride: at the near center of the frame.\nFIGURES:\n- 김선영: at the near right side of the frame — NEAREST figure to the camera; in motion: already partway along their path, heading toward the mid-distance left side of the frame.\n- 이수정 (과거): at the near left side 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); in motion: already partway along their path, heading toward the mid-distance left side of the frame; NOT heading into the Tagada Disco ride.\nDEPTH CONTRACT: 이수정 (과거) is farther than 김선영 and must read visibly smaller and deeper in the frame."
        }
      },
      {
        "group_id": "osl-l04",
        "location_id": "L04",
        "member_shots": [
          [
            5,
            2
          ],
          [
            20,
            5
          ],
          [
            92,
            1
          ],
          [
            92,
            4
          ]
        ],
        "layout": {
          "cameras": [
            {
              "look_at": [
                48,
                53
              ],
              "pos": [
                34,
                68
              ],
              "shot_index": 2
            },
            {
              "look_at": [
                50,
                56
              ],
              "pos": [
                44,
                63
              ],
              "shot_index": 5
            },
            {
              "look_at": [
                47,
                43
              ],
              "pos": [
                47,
                91
              ],
              "shot_index": 1
            },
            {
              "look_at": [
                50,
                48
              ],
              "pos": [
                42,
                78
              ],
              "shot_index": 4
            }
          ],
          "figures": [
            {
              "entity_token": "C09",
              "figure_id": "kim_seonyeong",
              "label": "김선영",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    48,
                    53
                  ],
                  "shot_index": 2
                }
              ]
            },
            {
              "entity_token": null,
              "figure_id": "jeon_taeksu",
              "label": "전택수",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    50,
                    56
                  ],
                  "shot_index": 5
                },
                {
                  "moving_toward": null,
                  "pos": [
                    47,
                    57
                  ],
                  "shot_index": 1
                },
                {
                  "moving_toward": null,
                  "pos": [
                    45,
                    59
                  ],
                  "shot_index": 4
                }
              ]
            },
            {
              "entity_token": null,
              "figure_id": "jang_wonseop",
              "label": "장원섭",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    55,
                    57
                  ],
                  "shot_index": 4
                }
              ]
            }
          ],
          "landmarks": [
            {
              "faces_toward": null,
              "id": "river",
              "kind": "area",
              "label": "드들강",
              "points": [
                [
                  0,
                  0
                ],
                [
                  100,
                  0
                ],
                [
                  100,
                  50
                ],
                [
                  0,
                  60
                ]
              ]
            },
            {
              "faces_toward": null,
              "id": "riverbank",
              "kind": "line",
              "label": "강변",
              "points": [
                [
                  0,
                  60
                ],
                [
                  100,
                  50
                ]
              ]
            },
            {
              "faces_toward": null,
              "id": "walking_path",
              "kind": "line",
              "label": "산책로",
              "points": [
                [
                  0,
                  82
                ],
                [
                  100,
                  72
                ]
              ]
            }
          ]
        },
        "spatial_summaries": {
          "5: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- 드들강: at the mid-distance right side of the frame.\n- 강변 (path): runs from the mid-distance right side of the frame to the far left side of the frame.\n- 산책로 (path): runs from the mid-distance right side of the frame to the far left side of the frame.\nFIGURES:\n- 김선영 (C09): at the near center of the frame — NEAREST figure to the camera.",
          "20: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- 드들강: at the far right side of the frame.\n- 강변 (path): runs from the far right side of the frame to the far left side of the frame.\n- 산책로 (path): runs from the far right 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.",
          "92: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 mid-distance center of the frame.\n- 강변 (path): runs from the mid-distance right side of the frame to the mid-distance left side of the frame.\n- 산책로 (path): runs from the mid-distance right side of the frame to the mid-distance left side of the frame.\nFIGURES:\n- 전택수: at the near center of the frame — NEAREST figure to the camera.",
          "92: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 far center of the frame.\n- 강변 (path): runs from the mid-distance right side of the frame to the far left side of the frame.\n- 산책로 (path): runs from the mid-distance right 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.\n- 장원섭: at the mid-distance left side of the frame; about 1.3x as far from the camera as the nearest figure, so they must appear roughly 0.78x 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-l08",
        "location_id": "L08",
        "member_shots": [
          [
            8,
            1
          ],
          [
            9,
            2
          ]
        ],
        "layout": {
          "cameras": [
            {
              "look_at": [
                50,
                65
              ],
              "pos": [
                44,
                72
              ],
              "shot_index": 1
            },
            {
              "look_at": [
                50,
                87
              ],
              "pos": [
                48,
                68
              ],
              "shot_index": 2
            }
          ],
          "figures": [
            {
              "entity_token": "C01",
              "figure_id": "jeon_taeksu",
              "label": "전택수",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    50,
                    77
                  ],
                  "shot_index": 2
                }
              ]
            }
          ],
          "landmarks": [
            {
              "faces_toward": null,
              "id": "tree_lined_road",
              "kind": "area",
              "label": "길게 늘어선 메타세쿼이아 가로수길",
              "points": [
                [
                  38,
                  5
                ],
                [
                  62,
                  5
                ],
                [
                  62,
                  72
                ],
                [
                  38,
                  72
                ]
              ]
            },
            {
              "faces_toward": [
                50,
                45
              ],
              "id": "police_station_main_gate",
              "kind": "line",
              "label": "나주 경찰서 정문",
              "points": [
                [
                  34,
                  62
                ],
                [
                  44,
                  62
                ],
                [
                  56,
                  62
                ],
                [
                  66,
                  62
                ]
              ]
            },
            {
              "faces_toward": [
                50,
                72
              ],
              "id": "police_station_building",
              "kind": "area",
              "label": "나주 경찰서 건물",
              "points": [
                [
                  25,
                  84
                ],
                [
                  75,
                  84
                ],
                [
                  75,
                  98
                ],
                [
                  25,
                  98
                ]
              ]
            }
          ]
        },
        "spatial_summaries": {
          "9: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- 길게 늘어선 메타세쿼이아 가로수길 (path): runs from the mid-distance right side of the frame to 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 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."
        }
      },
      {
        "group_id": "osl-l10",
        "location_id": "L10",
        "member_shots": [
          [
            11,
            2
          ]
        ],
        "layout": {
          "cameras": [
            {
              "look_at": [
                50,
                58
              ],
              "pos": [
                50,
                34
              ],
              "shot_index": 2
            }
          ],
          "figures": [
            {
              "entity_token": "C02",
              "figure_id": "figure_1",
              "label": "서의용",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    50,
                    43
                  ],
                  "shot_index": 2
                }
              ]
            },
            {
              "entity_token": "C35",
              "figure_id": "figure_2",
              "label": "강력1팀장",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    41,
                    59
                  ],
                  "shot_index": 2
                }
              ]
            },
            {
              "entity_token": "C07",
              "figure_id": "figure_3",
              "label": "주철",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    59,
                    59
                  ],
                  "shot_index": 2
                }
              ]
            }
          ],
          "landmarks": [
            {
              "faces_toward": null,
              "id": "landmark_1",
              "kind": "area",
              "label": "경찰서 앞 휴게공간",
              "points": [
                [
                  20,
                  25
                ],
                [
                  80,
                  25
                ],
                [
                  80,
                  74
                ],
                [
                  20,
                  74
                ]
              ]
            },
            {
              "faces_toward": [
                50,
                65
              ],
              "id": "landmark_2",
              "kind": "area",
              "label": "나주 경찰서",
              "points": [
                [
                  15,
                  75
                ],
                [
                  85,
                  75
                ],
                [
                  85,
                  100
                ],
                [
                  15,
                  100
                ]
              ]
            }
          ]
        },
        "spatial_summaries": {
          "11: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- 경찰서 앞 휴게공간: at the mid-distance center of the frame.\n- 나주 경찰서 (path): runs from the far left side of the frame to the far right side of the frame.\nFIGURES:\n- 서의용 (C02): at the near center of the frame — NEAREST figure to the camera.\n- 강력1팀장 (C35): at the far left side of the frame; about 3.0x as far from the camera as the nearest figure, so they must appear roughly 0.34x the nearest figure's height (smaller, deeper in the frame).\n- 주철 (C07): at the far right side of the frame; about 3.0x as far from the camera as the nearest figure, so they must appear roughly 0.34x 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-l15",
        "location_id": "L15",
        "member_shots": [
          [
            18,
            1
          ],
          [
            18,
            3
          ]
        ],
        "layout": {
          "cameras": [
            {
              "look_at": [
                50,
                43
              ],
              "pos": [
                50,
                72
              ],
              "shot_index": 1
            },
            {
              "look_at": [
                45,
                53
              ],
              "pos": [
                53,
                78
              ],
              "shot_index": 3
            }
          ],
          "figures": [
            {
              "entity_token": "C01",
              "figure_id": "jeon_taeksu",
              "label": "전택수",
              "positions": [
                {
                  "moving_toward": [
                    50,
                    68
                  ],
                  "pos": [
                    50,
                    54
                  ],
                  "shot_index": 1
                },
                {
                  "moving_toward": null,
                  "pos": [
                    51,
                    53
                  ],
                  "shot_index": 3
                }
              ]
            },
            {
              "entity_token": "C02",
              "figure_id": "seo_euiyong",
              "label": "서의용",
              "positions": [
                {
                  "moving_toward": [
                    49,
                    54
                  ],
                  "pos": [
                    44,
                    45
                  ],
                  "shot_index": 1
                }
              ]
            }
          ],
          "landmarks": [
            {
              "faces_toward": null,
              "id": "approach_alley",
              "kind": "line",
              "label": "주택가 골목길",
              "points": [
                [
                  50,
                  5
                ],
                [
                  50,
                  53
                ]
              ]
            },
            {
              "faces_toward": null,
              "id": "right_alley",
              "kind": "line",
              "label": "오른쪽 골목",
              "points": [
                [
                  50,
                  53
                ],
                [
                  28,
                  75
                ]
              ]
            },
            {
              "faces_toward": null,
              "id": "left_alley",
              "kind": "line",
              "label": "왼쪽 골목",
              "points": [
                [
                  50,
                  53
                ],
                [
                  28,
                  30
                ]
              ]
            },
            {
              "faces_toward": [
                52,
                49
              ],
              "id": "old_chicken_shop",
              "kind": "area",
              "label": "옛날 통닭집",
              "points": [
                [
                  58,
                  38
                ],
                [
                  69,
                  38
                ],
                [
                  69,
                  48
                ],
                [
                  58,
                  48
                ]
              ]
            },
            {
              "faces_toward": [
                45,
                53
              ],
              "id": "convenience_store",
              "kind": "area",
              "label": "편의점",
              "points": [
                [
                  22,
                  49
                ],
                [
                  32,
                  49
                ],
                [
                  32,
                  59
                ],
                [
                  22,
                  59
                ]
              ]
            }
          ]
        },
        "spatial_summaries": {
          "18: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 near center of the frame to the far center of the frame.\n- 오른쪽 골목 (path): runs from the near center of the frame to the mid-distance right side of the frame.\n- 왼쪽 골목 (path): runs from the near center of the frame to the far right side of the frame.\n- 옛날 통닭집: at the mid-distance left side of the frame.\n- 편의점: at the mid-distance 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 near center of the frame; their path follows the 주택가 골목길; NOT heading into the 옛날 통닭집.\n- 서의용 (C02): at the mid-distance right side of the frame; about 1.5x as far from the camera as the nearest figure, so they must appear roughly 0.65x the nearest figure's height (smaller, deeper in the frame); in motion: already partway along their path, heading toward the near center of the frame; their path follows the 주택가 골목길; NOT heading into the 옛날 통닭집.\nDEPTH CONTRACT: 서의용 is farther than 전택수 and must read visibly smaller and deeper in the frame.",
          "18: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 near center of the frame to the far left side of the frame.\n- 오른쪽 골목 (path): runs from the near center of the frame to the near right side of the frame.\n- 왼쪽 골목 (path): runs from the near center of the frame to the mid-distance center of the frame.\n- 옛날 통닭집: at the mid-distance left side of the frame.\n- 편의점: at the mid-distance right side of the frame.\nFIGURES:\n- 전택수 (C01): at the near left side of the frame — NEAREST figure to the camera."
        }
      },
      {
        "group_id": "osl-l28",
        "location_id": "L28",
        "member_shots": [
          [
            34,
            2
          ],
          [
            65,
            2
          ],
          [
            65,
            3
          ]
        ],
        "layout": {
          "cameras": [
            {
              "look_at": [
                50,
                77
              ],
              "pos": [
                44,
                74
              ],
              "shot_index": 2
            },
            {
              "look_at": [
                50,
                67
              ],
              "pos": [
                49,
                43
              ],
              "shot_index": 2
            },
            {
              "look_at": [
                53,
                67
              ],
              "pos": [
                40,
                55
              ],
              "shot_index": 3
            }
          ],
          "figures": [
            {
              "entity_token": null,
              "figure_id": "F01",
              "label": "전택수",
              "positions": [
                {
                  "moving_toward": [
                    50,
                    90
                  ],
                  "pos": [
                    50,
                    77
                  ],
                  "shot_index": 2
                }
              ]
            },
            {
              "entity_token": "C36",
              "figure_id": "F02",
              "label": "중년 남성 목사",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    49,
                    64
                  ],
                  "shot_index": 2
                },
                {
                  "moving_toward": null,
                  "pos": [
                    49,
                    64
                  ],
                  "shot_index": 3
                }
              ]
            },
            {
              "entity_token": "C23",
              "figure_id": "F03",
              "label": "유경자",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    55,
                    68
                  ],
                  "shot_index": 2
                },
                {
                  "moving_toward": null,
                  "pos": [
                    55,
                    68
                  ],
                  "shot_index": 3
                }
              ]
            },
            {
              "entity_token": null,
              "figure_id": "F04",
              "label": "신경희",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    60,
                    69
                  ],
                  "shot_index": 2
                },
                {
                  "moving_toward": null,
                  "pos": [
                    60,
                    69
                  ],
                  "shot_index": 3
                }
              ]
            },
            {
              "entity_token": null,
              "figure_id": "F05",
              "label": "은혜교회 신도",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    43,
                    68
                  ],
                  "shot_index": 2
                },
                {
                  "moving_toward": null,
                  "pos": [
                    43,
                    68
                  ],
                  "shot_index": 3
                }
              ]
            },
            {
              "entity_token": null,
              "figure_id": "F06",
              "label": "은혜교회 신도",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    39,
                    70
                  ],
                  "shot_index": 2
                },
                {
                  "moving_toward": null,
                  "pos": [
                    39,
                    70
                  ],
                  "shot_index": 3
                }
              ]
            },
            {
              "entity_token": null,
              "figure_id": "F07",
              "label": "은혜교회 신도",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    46,
                    71
                  ],
                  "shot_index": 2
                },
                {
                  "moving_toward": null,
                  "pos": [
                    46,
                    71
                  ],
                  "shot_index": 3
                }
              ]
            },
            {
              "entity_token": null,
              "figure_id": "F08",
              "label": "은혜교회 신도",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    52,
                    71
                  ],
                  "shot_index": 2
                },
                {
                  "moving_toward": null,
                  "pos": [
                    52,
                    71
                  ],
                  "shot_index": 3
                }
              ]
            },
            {
              "entity_token": null,
              "figure_id": "F09",
              "label": "은혜교회 신도",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    64,
                    71
                  ],
                  "shot_index": 2
                },
                {
                  "moving_toward": null,
                  "pos": [
                    64,
                    71
                  ],
                  "shot_index": 3
                }
              ]
            },
            {
              "entity_token": null,
              "figure_id": "F10",
              "label": "은혜교회 신도",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    69,
                    70
                  ],
                  "shot_index": 2
                },
                {
                  "moving_toward": null,
                  "pos": [
                    69,
                    70
                  ],
                  "shot_index": 3
                }
              ]
            }
          ],
          "landmarks": [
            {
              "faces_toward": null,
              "id": "L01",
              "kind": "line",
              "label": "정문 진입로",
              "points": [
                [
                  50,
                  5
                ],
                [
                  50,
                  78
                ]
              ]
            },
            {
              "faces_toward": [
                50,
                40
              ],
              "id": "L02",
              "kind": "line",
              "label": "광주지검 정문",
              "points": [
                [
                  34,
                  78
                ],
                [
                  66,
                  78
                ]
              ]
            },
            {
              "faces_toward": null,
              "id": "L03",
              "kind": "area",
              "label": "광주지검",
              "points": [
                [
                  25,
                  82
                ],
                [
                  75,
                  82
                ],
                [
                  75,
                  98
                ],
                [
                  25,
                  98
                ]
              ]
            }
          ]
        },
        "spatial_summaries": {
          "34: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- 정문 진입로 (path): runs from the mid-distance center 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 center of the frame.\nFIGURES:\n- 은혜교회 신도: at the near right side of the frame — NEAREST figure to the camera.\n- 은혜교회 신도: at the mid-distance right side of the frame; about 1.7x as far from the camera as the nearest figure, so they must appear roughly 0.59x the nearest figure's height (smaller, deeper in the frame).\n- 은혜교회 신도: at the mid-distance right side of the frame; about 1.8x as far from the camera as the nearest figure, so they must appear roughly 0.56x the nearest figure's height (smaller, deeper in the frame).\n- 전택수: at the mid-distance center of the frame; about 1.9x as far from the camera as the nearest figure, so they must appear roughly 0.54x the nearest figure's height (smaller, deeper in the frame); in motion: already partway along their path, heading toward the far left side of the frame; their path follows the 정문 진입로; moving away from 은혜교회 신도; moving away from 은혜교회 신도; moving away from 은혜교회 신도; moving away from 은혜교회 신도; moving away from 중년 남성 목사; moving away from 유경자; moving away from 신경희; moving away from 은혜교회 신도; moving away from 은혜교회 신도.\n- 은혜교회 신도: at the mid-distance right side of the frame; about 2.4x as far from the camera as the nearest figure, so they must appear roughly 0.42x the nearest figure's height (smaller, deeper in the frame).\n- 중년 남성 목사 (C36): at the far right side of the frame; about 3.1x as far from the camera as the nearest figure, so they must appear roughly 0.32x the nearest figure's height (smaller, deeper in the frame).\n- 유경자 (C23): at the far right side of the frame; about 3.5x as far from the camera as the nearest figure, so they must appear roughly 0.29x the nearest figure's height (smaller, deeper in the frame).\n- 신경희: at the far right side of the frame; about 4.6x as far from the camera as the nearest figure, so they must appear roughly 0.22x the nearest figure's height (smaller, deeper in the frame).\n- 은혜교회 신도: at the far right side of the frame; about 5.6x as far from the camera as the nearest figure, so they must appear roughly 0.18x the nearest figure's height (smaller, deeper in the frame).\n- 은혜교회 신도: at the far right side of the frame; about 7.0x as far from the camera as the nearest figure, so they must appear roughly 0.14x 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.",
          "65: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- 정문 진입로 (path): runs from the mid-distance center 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 center of the frame.\nFIGURES:\n- 은혜교회 신도: at the near right side of the frame — NEAREST figure to the camera.\n- 은혜교회 신도: at the mid-distance right side of the frame; about 1.7x as far from the camera as the nearest figure, so they must appear roughly 0.59x the nearest figure's height (smaller, deeper in the frame).\n- 은혜교회 신도: at the mid-distance right side of the frame; about 1.8x as far from the camera as the nearest figure, so they must appear roughly 0.56x the nearest figure's height (smaller, deeper in the frame).\n- 전택수: at the mid-distance center of the frame; about 1.9x as far from the camera as the nearest figure, so they must appear roughly 0.54x the nearest figure's height (smaller, deeper in the frame); in motion: already partway along their path, heading toward the far left side of the frame; their path follows the 정문 진입로; moving away from 은혜교회 신도; moving away from 은혜교회 신도; moving away from 은혜교회 신도; moving away from 은혜교회 신도; moving away from 중년 남성 목사; moving away from 유경자; moving away from 신경희; moving away from 은혜교회 신도; moving away from 은혜교회 신도.\n- 은혜교회 신도: at the mid-distance right side of the frame; about 2.4x as far from the camera as the nearest figure, so they must appear roughly 0.42x the nearest figure's height (smaller, deeper in the frame).\n- 중년 남성 목사 (C36): at the far right side of the frame; about 3.1x as far from the camera as the nearest figure, so they must appear roughly 0.32x the nearest figure's height (smaller, deeper in the frame).\n- 유경자 (C23): at the far right side of the frame; about 3.5x as far from the camera as the nearest figure, so they must appear roughly 0.29x the nearest figure's height (smaller, deeper in the frame).\n- 신경희: at the far right side of the frame; about 4.6x as far from the camera as the nearest figure, so they must appear roughly 0.22x the nearest figure's height (smaller, deeper in the frame).\n- 은혜교회 신도: at the far right side of the frame; about 5.6x as far from the camera as the nearest figure, so they must appear roughly 0.18x the nearest figure's height (smaller, deeper in the frame).\n- 은혜교회 신도: at the far right side of the frame; about 7.0x as far from the camera as the nearest figure, so they must appear roughly 0.14x 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.",
          "65: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 mid-distance left side of the frame to the far right side of the frame.\n- 광주지검 정문 (path): runs from the mid-distance left side of the frame to the far center of the frame.\n- 광주지검 (path): runs from the mid-distance left side of the frame to the far center of the frame.\nFIGURES:\n- 중년 남성 목사 (C36): at the near center of the frame — NEAREST figure to the camera.\n- 은혜교회 신도: at the near left side of the frame; about 1.0x as far from the camera as the nearest figure, so they must appear roughly 0.95x the nearest figure's height (smaller, deeper in the frame).\n- 은혜교회 신도: at the near left side of the frame; about 1.2x as far from the camera as the nearest figure, so they must appear roughly 0.85x the nearest figure's height (smaller, deeper in the frame).\n- 은혜교회 신도: at the mid-distance left side of the frame; about 1.3x as far from the camera as the nearest figure, so they must appear roughly 0.74x the nearest figure's height (smaller, deeper in the frame).\n- 유경자 (C23): at the mid-distance center of the frame; about 1.6x as far from the camera as the nearest figure, so they must appear roughly 0.64x the nearest figure's height (smaller, deeper in the frame).\n- 은혜교회 신도: at the mid-distance center of the frame; about 1.6x as far from the camera as the nearest figure, so they must appear roughly 0.64x the nearest figure's height (smaller, deeper in the frame).\n- 신경희: at the mid-distance center of the frame; about 1.9x as far from the camera as the nearest figure, so they must appear roughly 0.52x the nearest figure's height (smaller, deeper in the frame).\n- 은혜교회 신도: at the mid-distance center of the frame; about 2.3x as far from the camera as the nearest figure, so they must appear roughly 0.44x the nearest figure's height (smaller, deeper in the frame).\n- 은혜교회 신도: at the far right side of the frame; about 2.6x as far from the camera as the nearest figure, so they must appear roughly 0.39x 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-l40",
        "location_id": "L40",
        "member_shots": [
          [
            41,
            1
          ],
          [
            41,
            7
          ]
        ],
        "layout": {
          "cameras": [
            {
              "look_at": [
                50,
                50
              ],
              "pos": [
                25,
                28
              ],
              "shot_index": 1
            },
            {
              "look_at": [
                49,
                53
              ],
              "pos": [
                57,
                43
              ],
              "shot_index": 7
            }
          ],
          "figures": [
            {
              "entity_token": null,
              "figure_id": "figure_lee_sujeong",
              "label": "이수정 (현재)",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    49,
                    53
                  ],
                  "shot_index": 1
                },
                {
                  "moving_toward": null,
                  "pos": [
                    49,
                    53
                  ],
                  "shot_index": 7
                }
              ]
            },
            {
              "entity_token": null,
              "figure_id": "figure_seo_uiyong",
              "label": "서의용",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    44,
                    46
                  ],
                  "shot_index": 1
                },
                {
                  "moving_toward": null,
                  "pos": [
                    44,
                    46
                  ],
                  "shot_index": 7
                }
              ]
            },
            {
              "entity_token": null,
              "figure_id": "figure_na_sanghyeok",
              "label": "나상혁",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    55,
                    46
                  ],
                  "shot_index": 1
                },
                {
                  "moving_toward": null,
                  "pos": [
                    55,
                    46
                  ],
                  "shot_index": 7
                }
              ]
            },
            {
              "entity_token": null,
              "figure_id": "figure_child_1",
              "label": "어린이들(한국인)",
              "positions": [
                {
                  "moving_toward": [
                    35,
                    74
                  ],
                  "pos": [
                    30,
                    70
                  ],
                  "shot_index": 1
                },
                {
                  "moving_toward": [
                    39,
                    78
                  ],
                  "pos": [
                    35,
                    74
                  ],
                  "shot_index": 7
                }
              ]
            },
            {
              "entity_token": null,
              "figure_id": "figure_child_2",
              "label": "어린이들(한국인)",
              "positions": [
                {
                  "moving_toward": [
                    70,
                    69
                  ],
                  "pos": [
                    75,
                    65
                  ],
                  "shot_index": 1
                },
                {
                  "moving_toward": [
                    65,
                    73
                  ],
                  "pos": [
                    70,
                    69
                  ],
                  "shot_index": 7
                }
              ]
            },
            {
              "entity_token": null,
              "figure_id": "figure_child_3",
              "label": "어린이들(한국인)",
              "positions": [
                {
                  "moving_toward": [
                    56,
                    82
                  ],
                  "pos": [
                    61,
                    78
                  ],
                  "shot_index": 1
                },
                {
                  "moving_toward": [
                    51,
                    84
                  ],
                  "pos": [
                    56,
                    82
                  ],
                  "shot_index": 7
                }
              ]
            }
          ],
          "landmarks": [
            {
              "faces_toward": null,
              "id": "landmark_playground",
              "kind": "area",
              "label": "동네 놀이터",
              "points": [
                [
                  10,
                  10
                ],
                [
                  90,
                  10
                ],
                [
                  90,
                  90
                ],
                [
                  10,
                  90
                ]
              ]
            },
            {
              "faces_toward": null,
              "id": "landmark_playground_bench",
              "kind": "area",
              "label": "놀이터 벤치",
              "points": [
                [
                  38,
                  44
                ],
                [
                  62,
                  44
                ],
                [
                  62,
                  54
                ],
                [
                  38,
                  54
                ]
              ]
            }
          ]
        },
        "spatial_summaries": {
          "41: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 mid-distance center of the frame.\n- 놀이터 벤치: at the mid-distance center of the frame.\nFIGURES:\n- 서의용: at the near center of the frame — NEAREST figure to the camera.\n- 이수정 (현재): at the mid-distance center of the frame; about 1.3x as far from the camera as the nearest figure, so they must appear roughly 0.76x the nearest figure's height (smaller, deeper in the frame).\n- 나상혁: at the mid-distance center of the frame; about 1.3x as far from the camera as the nearest figure, so they must appear roughly 0.75x the nearest figure's height (smaller, deeper in the frame).\n- 어린이들(한국인): at the mid-distance left side of the frame; about 1.6x as far from the camera as the nearest figure, so they must appear roughly 0.62x the nearest figure's height (smaller, deeper in the frame); in motion: already partway along their path, heading toward the mid-distance left side of the frame; NOT heading into the 동네 놀이터.\n- 어린이들(한국인): at the mid-distance left side of the frame; about 2.4x as far from the camera as the nearest figure, so they must appear roughly 0.42x the nearest figure's height (smaller, deeper in the frame); in motion: already partway along their path, heading toward the mid-distance left side of the frame; moving away from 나상혁; NOT heading into the 동네 놀이터.\n- 어린이들(한국인): at the mid-distance center of the frame; about 2.4x as far from the camera as the nearest figure, so they must appear roughly 0.42x 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.",
          "41: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- 동네 놀이터: at the far center of the frame.\n- 놀이터 벤치: at the far center of the frame.\nFIGURES:\n- 나상혁: at the near center of the frame — NEAREST figure to the camera.\n- 이수정 (현재): at the far center of the frame; about 3.6x as far from the camera as the nearest figure, so they must appear roughly 0.28x the nearest figure's height (smaller, deeper in the frame).\n- 서의용: at the far left side of the frame; about 3.7x as far from the camera as the nearest figure, so they must appear roughly 0.27x the nearest figure's height (smaller, deeper in the frame).\n- 어린이들(한국인): at the far right side of the frame; about 8.1x as far from the camera as the nearest figure, so they must appear roughly 0.12x the nearest figure's height (smaller, deeper in the frame); in motion: already partway along their path, heading toward the far right side of the frame; NOT heading into the 동네 놀이터.\n- 어린이들(한국인): at the far center of the frame; about 10.5x as far from the camera as the nearest figure, so they must appear roughly 0.09x 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 동네 놀이터.\n- 어린이들(한국인): at the far right side of the frame; about 10.8x as far from the camera as the nearest figure, so they must appear roughly 0.09x the nearest figure's height (smaller, deeper in the frame); in motion: already partway along their path, heading toward the far right side of the frame; NOT heading into the 동네 놀이터.\nDEPTH CONTRACT: 어린이들(한국인) is farther than 나상혁 and must read visibly smaller and deeper in the frame."
        }
      },
      {
        "group_id": "osl-l44",
        "location_id": "L44",
        "member_shots": [
          [
            45,
            5
          ],
          [
            45,
            7
          ]
        ],
        "layout": {
          "cameras": [
            {
              "look_at": [
                48,
                44
              ],
              "pos": [
                25,
                65
              ],
              "shot_index": 5
            },
            {
              "look_at": [
                50,
                25
              ],
              "pos": [
                50,
                90
              ],
              "shot_index": 7
            }
          ],
          "figures": [
            {
              "entity_token": "C02",
              "figure_id": "seouiyong",
              "label": "서의용",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    55,
                    42
                  ],
                  "shot_index": 5
                },
                {
                  "moving_toward": null,
                  "pos": [
                    43,
                    41
                  ],
                  "shot_index": 7
                }
              ]
            },
            {
              "entity_token": "C07",
              "figure_id": "jucheol",
              "label": "주철",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    38,
                    52
                  ],
                  "shot_index": 5
                },
                {
                  "moving_toward": null,
                  "pos": [
                    57,
                    41
                  ],
                  "shot_index": 7
                }
              ]
            }
          ],
          "landmarks": [
            {
              "faces_toward": null,
              "id": "rooftop",
              "kind": "area",
              "label": "옥상",
              "points": [
                [
                  8,
                  38
                ],
                [
                  92,
                  38
                ],
                [
                  92,
                  100
                ],
                [
                  8,
                  100
                ]
              ]
            },
            {
              "faces_toward": null,
              "id": "rooftop_railing",
              "kind": "line",
              "label": "옥상 난간",
              "points": [
                [
                  10,
                  38
                ],
                [
                  90,
                  38
                ]
              ]
            },
            {
              "faces_toward": null,
              "id": "rice_fields",
              "kind": "area",
              "label": "넓은 푸른 논",
              "points": [
                [
                  0,
                  0
                ],
                [
                  100,
                  0
                ],
                [
                  100,
                  34
                ],
                [
                  0,
                  34
                ]
              ]
            }
          ]
        },
        "spatial_summaries": {
          "45: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- 옥상: at the mid-distance left side of the frame.\n- 옥상 난간 (path): runs from the mid-distance right side of the frame to the far left side of the frame.\n- 넓은 푸른 논 (path): runs from the far right side of the frame to the far left side of the frame.\nFIGURES:\n- 주철 (C07): at the near center of the frame — NEAREST figure to the camera.\n- 서의용 (C02): at the mid-distance center of the frame; about 2.1x as far from the camera as the nearest figure, so they must appear roughly 0.49x 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.",
          "45: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- 옥상: at the near center of the frame.\n- 옥상 난간 (path): runs from the mid-distance right side of the frame to the mid-distance left side of the frame.\n- 넓은 푸른 논 (path): runs from the mid-distance left side of the frame to the mid-distance right side of the frame.\nFIGURES:\n- 서의용 (C02): at the near center of the frame — NEAREST figure to the camera.\n- 주철 (C07): 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."
        }
      }
    ],
    "prompt_overrides": {
      "1:1": {
        "location_id": "L01",
        "group_id": "osl-l01",
        "revised": {
          "0": "Photorealistic cinematic still. From an observer inside the moving ride at waist-to-chest height looking slightly up at a low, oblique angle. C09O20 in a winter school uniform, a Korean teenage girl with a round face and long straight black hair, occupies the near right side of the frame, already partway along her path toward the mid-distance left side; C37O49 in a duffel coat, a Korean teenage girl with an oval face and long straight black hair, occupies the near left side, deeper in the frame and visibly smaller than the figure on the right, already partway along her path toward the mid-distance left side and not heading into the Tagada Disco ride. A shared safety bar runs diagonally across the lower foreground. Centrifugal force tips both of their upper bodies toward the right side of the frame. C09O20, in three-quarter right angle, leans sideways with hands tightly gripping the safety bar, eyes looking off-screen with a bright smile. C37O49, in three-quarter left angle, has her shoulder pressed sideways while gripping the same safety bar, eyes looking off-screen in the same direction, smiling brightly. The inner structure of the vigorously moving ride curves behind them under natural afternoon light with restrained color, moderate-to-low contrast, and subtle period-appropriate texture."
        },
        "provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "6723fbe14d97e623",
            "revised_prompt_hash": "dd1e25d8ebab5954"
          }
        },
        "edited_spans": {
          "0": [
            {
              "original": "C09O20 in a winter school uniform, a Korean teenage girl with a round face and long straight black hair, and C37O49 in a duffel coat, a Korean teenage girl with an oval face and long straight black hair, occupy opposing halves of the frame.",
              "revised": "C09O20 in a winter school uniform, a Korean teenage girl with a round face and long straight black hair, occupies the near right side of the frame, already partway along her path toward the mid-distance left side; C37O49 in a duffel coat, a Korean teenage girl with an oval face and long straight black hair, occupies the near left side, deeper in the frame and visibly smaller than the figure on the right, already partway along her path toward the mid-distance left side and not heading into the Tagada Disco ride."
            }
          ]
        },
        "no_edit_reason": {}
      },
      "92:4": {
        "location_id": "L04",
        "group_id": "osl-l04",
        "revised": {
          "0": "Photorealistic cinematic still. Captured from a wide camera positioned several paces behind at waist level, two figures stand at full length on a shallow diagonal along the shared earthen riverbank. C01O01 in a navy jacket suit, a Korean middle-aged man, occupies the nearer center, standing with his back oriented toward the camera, weight resting on his near leg in a static resting posture, anchoring the viewpoint toward the water as he gazes into the distance. C03O07 in a charcoal gray suit, a Korean middle-aged man, stands visibly smaller and deeper in the mid-distance left on the shared bank, seen at a three-quarter angle from the left, his weight shifted there, gazing into the distance along their shared viewing axis. The natural riverside environment features a calm river surface bathed in restrained, warm red and golden light from the setting sun descending beyond the water, creating a moderate-to-low contrast atmosphere across the landscape."
        },
        "provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "026e0e3e37f6bee7",
            "revised_prompt_hash": "2ea3a908401a407d"
          }
        },
        "edited_spans": {
          "0": [
            {
              "original": "occupies the nearer left",
              "revised": "occupies the nearer center"
            },
            {
              "original": "stands slightly farther right on the shared bank",
              "revised": "stands visibly smaller and deeper in the mid-distance left on the shared bank"
            },
            {
              "original": "his weight shifted beside C01O01",
              "revised": "his weight shifted there"
            }
          ]
        },
        "no_edit_reason": {}
      },
      "11:2": {
        "location_id": "L10",
        "group_id": "osl-l10",
        "revised": {
          "0": "Photorealistic cinematic still. A middle-aged Korean man in a black windbreaker, the 강력1팀장, stands at the far left, deeper in the midground and visibly smaller at roughly one-third the seated man's height, pointing to 서의용's back, while C07O15 in a brown jumper, a Korean man in his early 50s representing 주철, stands at the far right, deeper in the midground and visibly smaller at roughly one-third the seated man's height, looking toward 서의용. They are separated across their shared pavement from the seated Asian man in the foreground. Viewed from an over-shoulder perspective at shoulder height, the seated man is shown with back to camera, his head tilted back, gazing off-screen, his dark jacket and shoulder occupying the lower frame as he sits on the chair. The middle-aged man on the left is at a three-quarter angle from the right, leaning forward with an extended finger, his eyes fixed on the seated man in a teasing expression. C07O15 on the right is at a three-quarter angle from the left, weight shifted, his eyes fixed on the seated man with a subtle smile. Natural daytime ambient light with soft contrast illuminates the figures against the out-of-focus building and window in the background."
        },
        "provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "9ef326621dded1f7",
            "revised_prompt_hash": "9e8f888f2aa365b6"
          }
        },
        "edited_spans": {
          "0": [
            {
              "original": "stands in the upper-left midground pointing to 서의용's back",
              "revised": "stands at the far left, deeper in the midground and visibly smaller at roughly one-third the seated man's height, pointing to 서의용's back"
            },
            {
              "original": "stands in the upper-right midground looking toward 서의용",
              "revised": "stands at the far right, deeper in the midground and visibly smaller at roughly one-third the seated man's height, looking toward 서의용"
            }
          ]
        },
        "no_edit_reason": {}
      },
      "18:1": {
        "location_id": "L15",
        "group_id": "osl-l15",
        "revised": {
          "0": "Photorealistic cinematic still. C01O01 in a dark jacket suit, a middle-aged Korean man with a square jaw and short black hair with faint gray sides, occupies the middle-center midground, moving toward the camera-side foreground along the alley, while the old chicken-shop sign behind him is visible in the upper-left background. Captured by a waist-height observer several meters ahead, the wide frame fits their full bodies from head to landing feet. C01O01 is caught at a three-quarter angle from the right in mid-stride, his forward foot landing on the paved ground, eyes looking off-screen. A younger Korean man in a casual jacket shares the same residential alleyway at the mid-distance right side of the frame, visibly smaller and deeper than C01O01, already partway along the residential alleyway and following C01O01 toward the near center of the frame rather than heading into the old chicken shop, at a three-quarter angle from the left with a shorter stride, his eyes fixed on C01O01. The old chicken-shop sign identifies the premises with its weathered face. The surrounding old residential alleyway is illuminated by restrained natural daytime ambient light with moderate-to-low contrast, casting soft shadows that maintain a documentary realism."
        },
        "provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "7fbf6bfa4125f4f1",
            "revised_prompt_hash": "7fe7db71a702b9f4"
          }
        },
        "edited_spans": {
          "0": [
            {
              "original": "shares the same residential alleyway in the rear, following at a three-quarter angle from the left with a shorter stride",
              "revised": "shares the same residential alleyway at the mid-distance right side of the frame, visibly smaller and deeper than C01O01, already partway along the residential alleyway and following C01O01 toward the near center of the frame rather than heading into the old chicken shop, at a three-quarter angle from the left with a shorter stride"
            }
          ]
        },
        "no_edit_reason": {}
      },
      "65:2": {
        "location_id": "L28",
        "group_id": "osl-l28",
        "revised": {
          "0": "Photorealistic cinematic still. Viewed from a waist-height observer, the figure appears deep in the frame and visibly smaller than the near-right protester, at roughly 0.32 times that protester's height, with P28 held above him. C36O48 in a dark pastoral uniform, an East Asian middle-aged man with a round face shape and short black hair showing graying temples, stands firmly at the far right of the frame, turned at a three-quarter angle from the right. Both of his arms are fully extended overhead, his hands gripping the sturdy wooden handle of P28. The old, weathered rectangular white board of P28 turns its front face toward the camera, catching the direct noon sunlight. He gazes off-screen. Behind him, the institutional building and its entrance door form a sober background. A line of unnamed Asian adult protesters extends laterally across the entrance area, holding their own protest placards; its members occupy the near right, mid-distance right, and far right, with the farther members visibly smaller and deeper than the near-right member. One member is already partway along the 정문 진입로 at the mid-distance center, visibly smaller and deeper at roughly 0.54 times the near-right member's height, heading toward the far left side of the frame along the approach, away from the pastor and the other protesters, and not heading into the institutional building entrance. The unvarnished midday light provides a naturalistic brightness with moderate contrast across the exterior space."
        },
        "provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "8491355bbf1439ea",
            "revised_prompt_hash": "7f793836812e7cda"
          }
        },
        "edited_spans": {
          "0": [
            {
              "original": "Viewed from a waist-height observer, the figure's shoes rest on the sidewalk in the lower frame edge while P28 reaches the upper third.",
              "revised": "Viewed from a waist-height observer, the figure appears deep in the frame and visibly smaller than the near-right protester, at roughly 0.32 times that protester's height, with P28 held above him."
            },
            {
              "original": "stands firmly at a three-quarter angle from the right.",
              "revised": "stands firmly at the far right of the frame, turned at a three-quarter angle from the right."
            },
            {
              "original": "A line of unnamed Asian adult protesters extends laterally across the entrance area, holding their own protest placards.",
              "revised": "A line of unnamed Asian adult protesters extends laterally across the entrance area, holding their own protest placards; its members occupy the near right, mid-distance right, and far right, with the farther members visibly smaller and deeper than the near-right member. One member is already partway along the 정문 진입로 at the mid-distance center, visibly smaller and deeper at roughly 0.54 times the near-right member's height, heading toward the far left side of the frame along the approach, away from the pastor and the other protesters, and not heading into the institutional building entrance."
            }
          ]
        },
        "no_edit_reason": {}
      },
      "65:3": {
        "location_id": "L28",
        "group_id": "osl-l28",
        "revised": {
          "0": "Photorealistic cinematic still. C23O35 in a dark jacquard jacket, an elderly Asian woman, occupies the mid-distance center, visibly smaller and deeper in the frame than C36O48, at a three-quarter angle from the left, gazing into the distance, while C36O48 in a clergy suit, a middle-aged Asian man, stands in the center foreground in an over-the-shoulder framing, looking off-screen. Captured from chest height beside C36O48 in a diagonal medium view, C23O35 has a rigid expression and braced shoulders, her tense hands gripped firmly around the sturdy wooden handle of P28, the handle angled vertically toward the cropped sign above. Beside her in the same exterior space, C36O48 stands firmly with both arms fully extended overhead, holding up a worn protest picket sign. The shared protest line extends from the near left through the mid-distance left and center to the far right, with unnamed figures visibly smaller and deeper than C36O48 and diminishing across those positions holding placards at varied head angles and grip heights. Direct noon sunlight bathes the exterior building and pedestrian gate of the prosecutors' office in the background, casting stark, short shadows and providing a sober naturalistic brightness with moderate contrast across faces and hands."
        },
        "provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "2f3011fe342467ba",
            "revised_prompt_hash": "d6759a5397fde615"
          }
        },
        "edited_spans": {
          "0": [
            {
              "original": "occupies the middle-right midground at a three-quarter angle from the left",
              "revised": "occupies the mid-distance center, visibly smaller and deeper in the frame than C36O48, at a three-quarter angle from the left"
            },
            {
              "original": "stands in the middle-left foreground in an over-the-shoulder framing",
              "revised": "stands in the center foreground in an over-the-shoulder framing"
            },
            {
              "original": "The shared protest line extends laterally behind them, with unnamed figures",
              "revised": "The shared protest line extends from the near left through the mid-distance left and center to the far right, with unnamed figures visibly smaller and deeper than C36O48 and diminishing across those positions"
            }
          ]
        },
        "no_edit_reason": {}
      },
      "41:1": {
        "location_id": "L40",
        "group_id": "osl-l40",
        "revised": {
          "0": "Photorealistic cinematic still. From a slightly elevated position beyond one end of a shared park bench, three adults occupy the frame in full body at a diagonal. C20O32 in a casual knit, an East Asian woman in her early 30s, is seated visibly smaller and deeper at the mid-distance center of the frame, at a three-quarter angle from the right on one side of the shared bench, hands gathered, eyes fixed on C04O09. Opposite her on the same bench, C04O09 in a beige casual jacket, an East Asian man in his early 30s, sits visibly smaller and deeper at the mid-distance center of the frame, in right profile leaning over an open notebook, looking down at the pages angled upward toward his face. Beside him, C02O06 in a navy windbreaker, an East Asian middle-aged man, sits perched at a three-quarter angle from the left with his own notebook ready, eyes fixed on C20O32. The wider daytime neighborhood playground surrounds them, illuminated by clear, bright natural sunlight. In the background, a few East Asian children are playing in varied phases of movement, looking off-screen: some are already partway along their paths at the mid-distance left, visibly smaller and deeper in the frame, heading toward the left side of the frame and not into the neighborhood playground; farther left, others are much smaller and deeper, already partway along that direction while moving away from the man in the beige jacket and not into the neighborhood playground; and others are much smaller and deeper at the mid-distance center, already partway along paths heading toward the center of the frame and not into the neighborhood playground. Restrained colors and moderate contrast preserve a sober tone."
        },
        "provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "587e3eb10ec7c078",
            "revised_prompt_hash": "24bcb76e7fbfc6f2"
          }
        },
        "edited_spans": {
          "0": [
            {
              "original": "is seated at a three-quarter angle from the right on one side of the shared bench",
              "revised": "is seated visibly smaller and deeper at the mid-distance center of the frame, at a three-quarter angle from the right on one side of the shared bench"
            },
            {
              "original": "sits in right profile leaning over an open notebook",
              "revised": "sits visibly smaller and deeper at the mid-distance center of the frame, in right profile leaning over an open notebook"
            },
            {
              "original": "In the background, a few East Asian children are playing in varied phases of movement, looking off-screen.",
              "revised": "In the background, a few East Asian children are playing in varied phases of movement, looking off-screen: some are already partway along their paths at the mid-distance left, visibly smaller and deeper in the frame, heading toward the left side of the frame and not into the neighborhood playground; farther left, others are much smaller and deeper, already partway along that direction while moving away from the man in the beige jacket and not into the neighborhood playground; and others are much smaller and deeper at the mid-distance center, already partway along paths heading toward the center of the frame and not into the neighborhood playground."
            }
          ]
        },
        "no_edit_reason": {}
      },
      "41:7": {
        "location_id": "L40",
        "group_id": "osl-l40",
        "revised": {
          "0": "Photorealistic cinematic still. Captured from an observer position slightly below the seated eye line. C20O32 in a casual knit sweater, a Korean woman in her early 30s, appears visibly smaller and deeper at the far center of the frame, leaning forward on a wooden park bench, her body turned at a three-quarter angle from the left. Her arms are rounded and outstretched, hands forming a large circle in the air. The open gesture sits across the center of the frame, leaving open space around the circle without obscuring her oval face in the upper frame. Her brightened eyes, framed by shoulder-length black hair, remain directed off-screen toward the questioners beyond the near camera side. The portion of the bench supporting her is visible in the lower frame. Behind her, the same neighborhood playground from the prior shot is illuminated by clear natural sunlight, rendering the scene with restrained color and moderate contrast to support her momentary animation."
        },
        "provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "d61a3df8f3cc3621",
            "revised_prompt_hash": "fb64ecb8545babfd"
          }
        },
        "edited_spans": {
          "0": [
            {
              "original": "leans forward on a wooden park bench at a three-quarter angle from the left",
              "revised": "appears visibly smaller and deeper at the far center of the frame, leaning forward on a wooden park bench, her body turned at a three-quarter angle from the left"
            }
          ]
        },
        "no_edit_reason": {}
      },
      "45:5": {
        "location_id": "L44",
        "group_id": "osl-l44",
        "revised": {
          "0": "Photorealistic cinematic still. C07O15 in a brown jacket, a Korean man in his early 50s with a broad face, short black hair and faint gray temples, occupies the center foreground in right profile, pointing his extended hand toward a Korean middle-aged man in a detective coat standing visibly smaller and deeper in the mid-distance center, at roughly half C07O15's frame height. Captured from upper-chest height, C07O15 is framed from the waist up with his chin raised and eyes fixed on the other man. The second figure stands at a three-quarter angle from the left, his weight settled toward the shared parapet railing, keeping their eyes locked across the rooftop deck. Restrained, moderately low-contrast sunset light bathes the environment, casting soft illumination on the sturdy railing that runs behind them. A wide green rice field is visible far below the edge."
        },
        "provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "937c62dbf41d7cc5",
            "revised_prompt_hash": "67acfc92adbca1ce"
          }
        },
        "edited_spans": {
          "0": [
            {
              "original": "occupies the middle-left foreground",
              "revised": "occupies the center foreground"
            },
            {
              "original": "standing in the right background",
              "revised": "standing visibly smaller and deeper in the mid-distance center, at roughly half C07O15's frame height"
            }
          ]
        },
        "no_edit_reason": {}
      },
      "45:7": {
        "location_id": "L44",
        "group_id": "osl-l44",
        "revised": {
          "0": "Photorealistic cinematic still. C02O04, an East Asian man in his 40s in a worn leather jacket, is positioned in the lower-center foreground, and C07O15, an East Asian man in his 50s in a brown jumper, stands visibly smaller and deeper in the lower center of the frame, both gazing toward the wide rice fields beyond the rooftop in the middle-center background. Captured from a high, far rear vantage point above the rooftop deck, both figures are seen with their backs to the camera, aligned near the lower center at subtly different depths. C02O04 folds his shoulders over the parapet railing, while C07O15 rests his forearms on the same parapet railing, anchoring them in the shared physical space. Beyond them, the vast green stalks in the rice field lean uniformly toward one side, visibly swept by the wind. The environment is bathed in restrained, natural sunset light with moderately low contrast, filling the fading sky with muted colors and casting a quiet, sober weight without harsh dramatic shadows."
        },
        "provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "cdb63e6a8f6ebd7a",
            "revised_prompt_hash": "879197b33ce87ae7"
          }
        },
        "edited_spans": {
          "0": [
            {
              "original": "C02O04, an East Asian man in his 40s in a worn leather jacket, is positioned in the lower-left foreground, and C07O15, an East Asian man in his 50s in a brown jumper, stands in the lower-right foreground",
              "revised": "C02O04, an East Asian man in his 40s in a worn leather jacket, is positioned in the lower-center foreground, and C07O15, an East Asian man in his 50s in a brown jumper, stands visibly smaller and deeper in the lower center of the frame"
            },
            {
              "original": "both figures are seen with their backs to the camera, separated across the lower frame",
              "revised": "both figures are seen with their backs to the camera, aligned near the lower center at subtly different depths"
            }
          ]
        },
        "no_edit_reason": {}
      }
    },
    "diagnostics": {
      "outdoor_location_count": 25,
      "seed_group_count": 15,
      "groups_extracted": 8,
      "skipped": [
        {
          "shot": "S42sh4",
          "reason": "zoom_continuity_member"
        },
        {
          "shot": "S42sh5",
          "reason": "zoom_continuity_member"
        },
        {
          "shot": "S56sh4",
          "reason": "zoom_continuity_member"
        },
        {
          "shot": "S56sh8",
          "reason": "zoom_continuity_member"
        },
        {
          "seed": "location:L57",
          "reason": "cap"
        },
        {
          "seed": "location:L58",
          "reason": "cap"
        },
        {
          "seed": "location:L63",
          "reason": "cap"
        },
        {
          "seed": "location:L64",
          "reason": "cap"
        },
        {
          "seed": "location:L65",
          "reason": "cap"
        },
        {
          "seed": "location:L66",
          "reason": "cap"
        },
        {
          "seed": "location:L68",
          "reason": "cap"
        }
      ],
      "layout_shape_violations": [],
      "layout_side_conflicts": [],
      "spatial_summary_skipped": [
        {
          "shot": "S8sh1",
          "reason": "no_spatial_summary"
        }
      ],
      "rewrite_failed": [],
      "revised_prompt_audit_violations": [],
      "zoom_member_exclusion_source": "shot_dependency_t2i",
      "composition_guide_failed": [],
      "composition_guide_candidate_skipped": [
        {
          "group": "osl-single-l28-s34-sh2",
          "reason": "judge_no_need",
          "confidence": "high"
        }
      ],
      "composition_guide_count": 15,
      "seed_prefilter_meta": {
        "1:1": {
          "why_candidate": "cross_shot_or_multi_figure_present",
          "location_source": "frame_visible",
          "location_id": "L01",
          "figure_count": 2,
          "framing_scale": "medium",
          "character_angle_count": 2,
          "frame_spatial_contract_present": false,
          "available_structural_signal_names": [
            "framing_scale",
            "character_angles",
            "gaze_direction"
          ]
        },
        "5:2": {
          "why_candidate": "single_shot_outdoor_figure_present",
          "location_source": "frame_visible",
          "location_id": "L04",
          "figure_count": 1,
          "framing_scale": "wide",
          "character_angle_count": 1,
          "frame_spatial_contract_present": true,
          "available_structural_signal_names": [
            "framing_scale",
            "character_angles",
            "frame_spatial_contract",
            "gaze_direction"
          ]
        },
        "8:1": {
          "why_candidate": "single_shot_outdoor_no_figure",
          "location_source": "frame_visible",
          "location_id": "L08",
          "figure_count": 0,
          "framing_scale": "wide",
          "character_angle_count": 0,
          "frame_spatial_contract_present": false,
          "available_structural_signal_names": [
            "framing_scale"
          ]
        },
        "9:2": {
          "why_candidate": "single_shot_outdoor_figure_present",
          "location_source": "frame_visible",
          "location_id": "L08",
          "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"
          ]
        },
        "11:2": {
          "why_candidate": "cross_shot_or_multi_figure_present",
          "location_source": "primary_location",
          "location_id": "L10",
          "figure_count": 3,
          "framing_scale": "medium",
          "character_angle_count": 3,
          "frame_spatial_contract_present": true,
          "available_structural_signal_names": [
            "framing_scale",
            "character_angles",
            "frame_spatial_contract",
            "gaze_direction"
          ]
        },
        "18:1": {
          "why_candidate": "cross_shot_or_multi_figure_present",
          "location_source": "frame_visible",
          "location_id": "L15",
          "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"
          ]
        },
        "18:3": {
          "why_candidate": "single_shot_outdoor_figure_present",
          "location_source": "frame_visible",
          "location_id": "L15",
          "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"
          ]
        },
        "20:5": {
          "why_candidate": "single_shot_outdoor_figure_present",
          "location_source": "primary_location",
          "location_id": "L04",
          "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"
          ]
        },
        "34:2": {
          "why_candidate": "single_shot_outdoor_figure_present",
          "location_source": "primary_location",
          "location_id": "L28",
          "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"
          ]
        },
        "41:1": {
          "why_candidate": "cross_shot_or_multi_figure_present",
          "location_source": "frame_visible",
          "location_id": "L40",
          "figure_count": 4,
          "framing_scale": "wide",
          "character_angle_count": 4,
          "frame_spatial_contract_present": false,
          "available_structural_signal_names": [
            "framing_scale",
            "character_angles",
            "gaze_direction"
          ]
        },
        "41:7": {
          "why_candidate": "single_shot_outdoor_figure_present",
          "location_source": "primary_location",
          "location_id": "L40",
          "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"
          ]
        },
        "45:5": {
          "why_candidate": "cross_shot_or_multi_figure_present",
          "location_source": "primary_location",
          "location_id": "L44",
          "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"
          ]
        },
        "45:7": {
          "why_candidate": "cross_shot_or_multi_figure_present",
          "location_source": "frame_visible",
          "location_id": "L44",
          "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"
          ]
        },
        "65:2": {
          "why_candidate": "single_shot_outdoor_figure_present",
          "location_source": "frame_visible",
          "location_id": "L28",
          "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"
          ]
        },
        "65:3": {
          "why_candidate": "cross_shot_or_multi_figure_present",
          "location_source": "primary_location",
          "location_id": "L28",
          "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"
          ]
        },
        "70:2": {
          "why_candidate": "single_shot_outdoor_no_figure",
          "location_source": "frame_visible",
          "location_id": "L57",
          "figure_count": 0,
          "framing_scale": "close",
          "character_angle_count": 0,
          "frame_spatial_contract_present": false,
          "available_structural_signal_names": [
            "framing_scale"
          ]
        },
        "72:1": {
          "why_candidate": "single_shot_outdoor_no_figure",
          "location_source": "frame_visible",
          "location_id": "L58",
          "figure_count": 0,
          "framing_scale": "wide",
          "character_angle_count": 0,
          "frame_spatial_contract_present": false,
          "available_structural_signal_names": [
            "framing_scale"
          ]
        },
        "78:3": {
          "why_candidate": "cross_shot_or_multi_figure_present",
          "location_source": "frame_visible",
          "location_id": "L63",
          "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"
          ]
        },
        "78:4": {
          "why_candidate": "single_shot_outdoor_figure_present",
          "location_source": "primary_location",
          "location_id": "L63",
          "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"
          ]
        },
        "79:4": {
          "why_candidate": "single_shot_outdoor_figure_present",
          "location_source": "primary_location",
          "location_id": "L64",
          "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"
          ]
        },
        "79:10": {
          "why_candidate": "cross_shot_or_multi_figure_present",
          "location_source": "primary_location",
          "location_id": "L64",
          "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"
          ]
        },
        "82:4": {
          "why_candidate": "cross_shot_or_multi_figure_present",
          "location_source": "frame_visible",
          "location_id": "L65",
          "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"
          ]
        },
        "82:6": {
          "why_candidate": "cross_shot_or_multi_figure_present",
          "location_source": "frame_visible",
          "location_id": "L65",
          "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"
          ]
        },
        "83:7": {
          "why_candidate": "cross_shot_or_multi_figure_present",
          "location_source": "primary_location",
          "location_id": "L66",
          "figure_count": 2,
          "framing_scale": "close",
          "character_angle_count": 2,
          "frame_spatial_contract_present": false,
          "available_structural_signal_names": [
            "framing_scale",
            "character_angles",
            "gaze_direction"
          ]
        },
        "83:11": {
          "why_candidate": "single_shot_outdoor_figure_present",
          "location_source": "primary_location",
          "location_id": "L66",
          "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"
          ]
        },
        "83:15": {
          "why_candidate": "single_shot_outdoor_figure_present",
          "location_source": "primary_location",
          "location_id": "L66",
          "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"
          ]
        },
        "84:1": {
          "why_candidate": "single_shot_outdoor_no_figure",
          "location_source": "frame_visible",
          "location_id": "L58",
          "figure_count": 0,
          "framing_scale": "wide",
          "character_angle_count": 0,
          "frame_spatial_contract_present": true,
          "available_structural_signal_names": [
            "framing_scale",
            "frame_spatial_contract"
          ]
        },
        "86:4": {
          "why_candidate": "cross_shot_or_multi_figure_present",
          "location_source": "primary_location",
          "location_id": "L58",
          "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"
          ]
        },
        "86:6": {
          "why_candidate": "cross_shot_or_multi_figure_present",
          "location_source": "frame_visible",
          "location_id": "L58",
          "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"
          ]
        },
        "91:2": {
          "why_candidate": "cross_shot_or_multi_figure_present",
          "location_source": "frame_visible",
          "location_id": "L68",
          "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"
          ]
        },
        "91:5": {
          "why_candidate": "single_shot_outdoor_figure_present",
          "location_source": "primary_location",
          "location_id": "L68",
          "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"
          ]
        },
        "92:1": {
          "why_candidate": "single_shot_outdoor_figure_present",
          "location_source": "frame_visible",
          "location_id": "L04",
          "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"
          ]
        },
        "92:4": {
          "why_candidate": "cross_shot_or_multi_figure_present",
          "location_source": "frame_visible",
          "location_id": "L04",
          "figure_count": 2,
          "framing_scale": "wide",
          "character_angle_count": 2,
          "frame_spatial_contract_present": false,
          "available_structural_signal_names": [
            "framing_scale",
            "character_angles",
            "gaze_direction"
          ]
        }
      },
      "single_shot_seed_lane_enabled": true,
      "composition_guide_shared_model_enabled": true,
      "shared_model_judge_enabled": true,
      "shared_model_candidate_signals": [
        {
          "group_id": "osl-single-l01-s1-sh1",
          "location_id": "L01",
          "scene_index": 1,
          "member_shots": [
            "S1sh1"
          ],
          "cameras_non_identical": false,
          "landmark_count": 1,
          "per_shot_signals": {
            "1:1": {
              "entity_count_bucket": "multiple",
              "entity_count": 2,
              "depth_planes": 1,
              "has_motion": true
            }
          }
        },
        {
          "group_id": "osl-shared-l04-s92",
          "location_id": "L04",
          "scene_index": 92,
          "member_shots": [
            "S92sh1",
            "S92sh4"
          ],
          "cameras_non_identical": true,
          "landmark_count": 3,
          "per_shot_signals": {
            "92:1": {
              "entity_count_bucket": "single",
              "entity_count": 1,
              "depth_planes": 1,
              "has_motion": false
            },
            "92:4": {
              "entity_count_bucket": "multiple",
              "entity_count": 2,
              "depth_planes": 2,
              "has_motion": false
            }
          }
        },
        {
          "group_id": "osl-single-l04-s5-sh2",
          "location_id": "L04",
          "scene_index": 5,
          "member_shots": [
            "S5sh2"
          ],
          "cameras_non_identical": false,
          "landmark_count": 3,
          "per_shot_signals": {
            "5:2": {
              "entity_count_bucket": "single",
              "entity_count": 1,
              "depth_planes": 1,
              "has_motion": false
            }
          }
        },
        {
          "group_id": "osl-single-l04-s20-sh5",
          "location_id": "L04",
          "scene_index": 20,
          "member_shots": [
            "S20sh5"
          ],
          "cameras_non_identical": false,
          "landmark_count": 3,
          "per_shot_signals": {
            "20:5": {
              "entity_count_bucket": "single",
              "entity_count": 1,
              "depth_planes": 1,
              "has_motion": false
            }
          }
        },
        {
          "group_id": "osl-single-l08-s9-sh2",
          "location_id": "L08",
          "scene_index": 9,
          "member_shots": [
            "S9sh2"
          ],
          "cameras_non_identical": false,
          "landmark_count": 3,
          "per_shot_signals": {
            "9:2": {
              "entity_count_bucket": "single",
              "entity_count": 1,
              "depth_planes": 1,
              "has_motion": false
            }
          }
        },
        {
          "group_id": "osl-single-l10-s11-sh2",
          "location_id": "L10",
          "scene_index": 11,
          "member_shots": [
            "S11sh2"
          ],
          "cameras_non_identical": false,
          "landmark_count": 2,
          "per_shot_signals": {
            "11:2": {
              "entity_count_bucket": "multiple",
              "entity_count": 3,
              "depth_planes": 2,
              "has_motion": false
            }
          }
        },
        {
          "group_id": "osl-shared-l15-s18",
          "location_id": "L15",
          "scene_index": 18,
          "member_shots": [
            "S18sh1",
            "S18sh3"
          ],
          "cameras_non_identical": true,
          "landmark_count": 5,
          "per_shot_signals": {
            "18:1": {
              "entity_count_bucket": "multiple",
              "entity_count": 2,
              "depth_planes": 2,
              "has_motion": true
            },
            "18:3": {
              "entity_count_bucket": "single",
              "entity_count": 1,
              "depth_planes": 1,
              "has_motion": false
            }
          }
        },
        {
          "group_id": "osl-shared-l28-s65",
          "location_id": "L28",
          "scene_index": 65,
          "member_shots": [
            "S65sh2",
            "S65sh3"
          ],
          "cameras_non_identical": true,
          "landmark_count": 3,
          "per_shot_signals": {
            "65:2": {
              "entity_count_bucket": "multiple",
              "entity_count": 10,
              "depth_planes": 3,
              "has_motion": true
            },
            "65:3": {
              "entity_count_bucket": "multiple",
              "entity_count": 9,
              "depth_planes": 3,
              "has_motion": false
            }
          }
        },
        {
          "group_id": "osl-single-l28-s34-sh2",
          "location_id": "L28",
          "scene_index": 34,
          "member_shots": [
            "S34sh2"
          ],
          "cameras_non_identical": false,
          "landmark_count": 3,
          "per_shot_signals": {
            "34:2": {
              "entity_count_bucket": "multiple",
              "entity_count": 10,
              "depth_planes": 3,
              "has_motion": true
            }
          }
        },
        {
          "group_id": "osl-shared-l40-s41",
          "location_id": "L40",
          "scene_index": 41,
          "member_shots": [
            "S41sh1",
            "S41sh7"
          ],
          "cameras_non_identical": true,
          "landmark_count": 2,
          "per_shot_signals": {
            "41:1": {
              "entity_count_bucket": "multiple",
              "entity_count": 6,
              "depth_planes": 2,
              "has_motion": true
            },
            "41:7": {
              "entity_count_bucket": "multiple",
              "entity_count": 6,
              "depth_planes": 2,
              "has_motion": true
            }
          }
        },
        {
          "group_id": "osl-shared-l44-s45",
          "location_id": "L44",
          "scene_index": 45,
          "member_shots": [
            "S45sh5",
            "S45sh7"
          ],
          "cameras_non_identical": true,
          "landmark_count": 3,
          "per_shot_signals": {
            "45:5": {
              "entity_count_bucket": "multiple",
              "entity_count": 2,
              "depth_planes": 2,
              "has_motion": false
            },
            "45:7": {
              "entity_count_bucket": "multiple",
              "entity_count": 2,
              "depth_planes": 1,
              "has_motion": false
            }
          }
        }
      ],
      "shared_model_judge_decisions": [
        {
          "group_id": "osl-single-l01-s1-sh1",
          "needs_shared_model_guide": true,
          "decision_type": "single_shot_complexity",
          "confidence": "high",
          "reasons": [
            "camera_or_framing_risk"
          ],
          "evidence": [
            {
              "shot_key": "1:1",
              "source_field": "camera_direction",
              "quote": "low, oblique three-quarter angle"
            },
            {
              "shot_key": "1:1",
              "source_field": "camera_direction",
              "quote": "occupy opposing halves of the frame"
            }
          ],
          "guide_scope": "single",
          "risk_notes": "The low, oblique angle and specific placement of two figures occupying opposing halves of the frame present a high framing risk that warrants a layout guide.",
          "admit": true,
          "deny_reason": null
        },
        {
          "group_id": "osl-shared-l04-s92",
          "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": "92:1",
              "source_field": "camera_direction",
              "quote": "slightly elevated long distance behind"
            },
            {
              "shot_key": "92:4",
              "source_field": "camera_direction",
              "quote": "waist-height wide camera several paces behind and to the side"
            },
            {
              "shot_key": "92:4",
              "source_field": "camera_direction",
              "quote": "shallow diagonal"
            }
          ],
          "guide_scope": "group",
          "risk_notes": "The group features multiple camera angles and heights (elevated vs. waist-height) of the same riverside location, requiring consistent placement of the figures and the riverbank. Shot 4 also introduces depth layering on a shallow diagonal.",
          "admit": true,
          "deny_reason": null
        },
        {
          "group_id": "osl-single-l04-s5-sh2",
          "needs_shared_model_guide": true,
          "decision_type": "single_shot_complexity",
          "confidence": "high",
          "reasons": [
            "camera_or_framing_risk"
          ],
          "evidence": [
            {
              "shot_key": "5:2",
              "source_field": "camera_direction",
              "quote": "Crane to a high three-quarter position beside the riverbank and angle downward"
            }
          ],
          "guide_scope": "single",
          "risk_notes": "The steep downward angle and specific diagonal placement of the face-down body on the ground plane present a high placement risk that warrants a layout guide.",
          "admit": true,
          "deny_reason": null
        },
        {
          "group_id": "osl-single-l04-s20-sh5",
          "needs_shared_model_guide": true,
          "decision_type": "single_shot_complexity",
          "confidence": "high",
          "reasons": [
            "camera_or_framing_risk"
          ],
          "evidence": [
            {
              "shot_key": "20:5",
              "source_field": "camera_direction",
              "quote": "low three-quarter side angle, framing Taeksu’s wet raised right hand in the near lower third and his frowning face immediately above it"
            }
          ],
          "guide_scope": "single",
          "risk_notes": "The specific low angle and tight framing of the hand relative to the face requires a layout guide to ensure correct spatial arrangement and posture.",
          "admit": true,
          "deny_reason": null
        },
        {
          "group_id": "osl-single-l08-s9-sh2",
          "needs_shared_model_guide": true,
          "decision_type": "single_shot_complexity",
          "confidence": "high",
          "reasons": [
            "camera_or_framing_risk"
          ],
          "evidence": [
            {
              "shot_key": "9:2",
              "source_field": "camera_direction",
              "quote": "From waist height several paces behind 전택수, hold a mild low-angle wide frame after the upward tilt, with his full back-facing figure beside the closed car door in the lower center and the police station exterior rising above him."
            }
          ],
          "guide_scope": "single",
          "risk_notes": "The low-angle framing and specific vertical arrangement of the figure in the lower center with the building rising above him creates a spatial relationship that an unguided render might collapse or misplace.",
          "admit": true,
          "deny_reason": null
        },
        {
          "group_id": "osl-single-l10-s11-sh2",
          "needs_shared_model_guide": true,
          "decision_type": "single_shot_complexity",
          "confidence": "high",
          "reasons": [
            "depth_layering",
            "occlusion_or_framing_risk",
            "camera_or_framing_risk"
          ],
          "evidence": [
            {
              "shot_key": "11:2",
              "source_field": "camera_direction",
              "quote": "using his back and shoulder as a foreground frame while aiming slightly upward toward the two men behind him"
            }
          ],
          "guide_scope": "single",
          "risk_notes": "The shot requires precise depth layering and occlusion, using a foreground figure's back and shoulder to frame two midground figures. A layout sketch is necessary to ensure the spatial relationship and framing are rendered correctly.",
          "admit": true,
          "deny_reason": null
        },
        {
          "group_id": "osl-shared-l15-s18",
          "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": "18:1",
              "source_field": "camera_direction",
              "quote": "the camera tracks backward just off the walking axis, catching 전택수 nearly frontally"
            },
            {
              "shot_key": "18:3",
              "source_field": "camera_direction",
              "quote": "the completed pan holds him in a clean right-facing profile on the left third while the convenience store remains visible across the branching alley on the right"
            }
          ],
          "guide_scope": "group",
          "risk_notes": "The group features multiple shots in the same alleyway location from different camera angles (tracking backward frontally vs. a profile pan). A shared guide is necessary to ensure the relative positions of the convenience store, chicken shop, and the characters remain consistent across the cuts.",
          "admit": true,
          "deny_reason": null
        },
        {
          "group_id": "osl-shared-l28-s65",
          "needs_shared_model_guide": true,
          "decision_type": "both",
          "confidence": "high",
          "reasons": [
            "multi_angle_same_set",
            "shared_structure_continuity",
            "figure_placement_continuity",
            "depth_layering"
          ],
          "evidence": [
            {
              "shot_key": "65:2",
              "source_field": "camera_direction",
              "quote": "prosecution office entrance and portions of the non-uniform protest line remain behind him for scale"
            },
            {
              "shot_key": "65:3",
              "source_field": "camera_direction",
              "quote": "pastor remains as a nearer left-edge figure and the protest line falls away behind them"
            }
          ],
          "guide_scope": "group",
          "risk_notes": "Multiple figures arranged in depth across a protest line, seen from different angles across two shots. A shared guide is necessary to maintain the spatial relationship between the characters, the protest line, and the prosecution office entrance.",
          "admit": true,
          "deny_reason": null
        },
        {
          "group_id": "osl-single-l28-s34-sh2",
          "needs_shared_model_guide": false,
          "decision_type": "no_guide",
          "confidence": "high",
          "reasons": [
            "occlusion_or_framing_risk"
          ],
          "evidence": [
            {
              "shot_key": "34:2",
              "source_field": "camera_direction",
              "quote": "the side window remains a transparent layer between lens and subject"
            }
          ],
          "guide_scope": "none",
          "risk_notes": "The single shot in this group frames the subject through a transparent car window. This through-surface optic presents a high risk of confusing the mannequin layout sketch, so the shot is excluded. Since it is the only shot in the group, no guide is generated.",
          "admit": false,
          "deny_reason": "judge_no_need"
        },
        {
          "group_id": "osl-shared-l40-s41",
          "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": "41:1",
              "source_field": "camera_direction",
              "quote": "From a slightly elevated position beyond one end of the bench area, frame the three adults in full body at a diagonal to their conversational axis, with the wider playground and playing children retained around them."
            },
            {
              "shot_key": "41:7",
              "source_field": "camera_direction",
              "quote": "Complete the dolly-in at a close three-quarter position slightly below 이수정 (현재)'s seated eye line"
            }
          ],
          "guide_scope": "group",
          "risk_notes": "No optical risks detected. The guide will help maintain the spatial relationship between the bench, the playground, the seated adults, and the playing children across the wide and medium shots.",
          "admit": true,
          "deny_reason": null
        },
        {
          "group_id": "osl-shared-l44-s45",
          "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": "45:5",
              "source_field": "camera_direction",
              "quote": "Track close along 주철's side at upper-chest height, slightly below his raised chin, holding his widened eyes and extended pointing hand in profile while 서의용 remains along the gesture line deeper in frame."
            },
            {
              "shot_key": "45:7",
              "source_field": "camera_direction",
              "quote": "hold a high, far rear wide shot on 서의용 and 주철 leaning side by side at the rooftop railing."
            }
          ],
          "guide_scope": "group",
          "risk_notes": "The group features two distinct camera setups (a medium tracking profile and a high rear wide shot) on the same rooftop set. A shared model guide is required to ensure the rooftop, railing, and background rice fields remain consistent across both angles, and to anchor the spatial relationship between the two characters.",
          "admit": true,
          "deny_reason": null
        }
      ],
      "shared_model_attach_decisions": [
        {
          "group_id": "osl-single-l01-s1-sh1",
          "scene_index": 1,
          "base_cache_key": "1ac4b53c5b64bf31",
          "attached_shots": [
            "1:1"
          ],
          "attached": true
        },
        {
          "group_id": "osl-shared-l04-s92",
          "scene_index": 92,
          "base_cache_key": "ba53ae22f4b790d3",
          "attached_shots": [
            "92:1",
            "92:4"
          ],
          "attached": true
        },
        {
          "group_id": "osl-single-l04-s5-sh2",
          "scene_index": 5,
          "base_cache_key": "6fa2045d2fa165b4",
          "attached_shots": [
            "5:2"
          ],
          "attached": true
        },
        {
          "group_id": "osl-single-l04-s20-sh5",
          "scene_index": 20,
          "base_cache_key": "e5333d82d95724aa",
          "attached_shots": [
            "20:5"
          ],
          "attached": true
        },
        {
          "group_id": "osl-single-l08-s9-sh2",
          "scene_index": 9,
          "base_cache_key": "9f6278dee72571ae",
          "attached_shots": [
            "9:2"
          ],
          "attached": true
        },
        {
          "group_id": "osl-single-l10-s11-sh2",
          "scene_index": 11,
          "base_cache_key": "2b6fdba2bd0d00cc",
          "attached_shots": [
            "11:2"
          ],
          "attached": true
        },
        {
          "group_id": "osl-shared-l15-s18",
          "scene_index": 18,
          "base_cache_key": "f51204ed9c0295ad",
          "attached_shots": [
            "18:1",
            "18:3"
          ],
          "attached": true
        },
        {
          "group_id": "osl-shared-l28-s65",
          "scene_index": 65,
          "base_cache_key": "362861065150b27d",
          "attached_shots": [
            "65:2",
            "65:3"
          ],
          "attached": true
        },
        {
          "group_id": "osl-shared-l40-s41",
          "scene_index": 41,
          "base_cache_key": "5d82030a9d2a2ae7",
          "attached_shots": [
            "41:1",
            "41:7"
          ],
          "attached": true
        },
        {
          "group_id": "osl-shared-l44-s45",
          "scene_index": 45,
          "base_cache_key": "67f051d1148ac0eb",
          "attached_shots": [
            "45:5",
            "45:7"
          ],
          "attached": true
        }
      ],
      "shared_model_single_shot_complexity_observation": [
        {
          "group_id": "osl-single-l01-s1-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-l04-s92",
          "decision_type": "both",
          "is_single_shot_candidate": false,
          "admit": true,
          "note": "single_shot_complexity lane 개방 — admit 시 production attach."
        },
        {
          "group_id": "osl-single-l04-s5-sh2",
          "decision_type": "single_shot_complexity",
          "is_single_shot_candidate": true,
          "admit": true,
          "note": "single_shot_complexity lane 개방 — admit 시 production attach."
        },
        {
          "group_id": "osl-single-l04-s20-sh5",
          "decision_type": "single_shot_complexity",
          "is_single_shot_candidate": true,
          "admit": true,
          "note": "single_shot_complexity lane 개방 — admit 시 production attach."
        },
        {
          "group_id": "osl-single-l08-s9-sh2",
          "decision_type": "single_shot_complexity",
          "is_single_shot_candidate": true,
          "admit": true,
          "note": "single_shot_complexity lane 개방 — admit 시 production attach."
        },
        {
          "group_id": "osl-single-l10-s11-sh2",
          "decision_type": "single_shot_complexity",
          "is_single_shot_candidate": true,
          "admit": true,
          "note": "single_shot_complexity lane 개방 — admit 시 production attach."
        },
        {
          "group_id": "osl-shared-l28-s65",
          "decision_type": "both",
          "is_single_shot_candidate": false,
          "admit": true,
          "note": "single_shot_complexity lane 개방 — admit 시 production attach."
        }
      ],
      "shared_model_pose_fail_closed": [],
      "shared_model_optical_risk_excluded": [],
      "shared_model_building_fp_link": {
        "L57": {
          "fp_id": "fp_l02_dining_hall",
          "indoor_loc_sid": "L02",
          "group_id": "bg_neighborhood_restaurant"
        },
        "L07": {
          "fp_id": "fp_l13_investigation_chief_office",
          "indoor_loc_sid": "L13",
          "group_id": "bg_police_station"
        },
        "L08": {
          "fp_id": "fp_l13_investigation_chief_office",
          "indoor_loc_sid": "L13",
          "group_id": "bg_police_station"
        },
        "L10": {
          "fp_id": "fp_l13_investigation_chief_office",
          "indoor_loc_sid": "L13",
          "group_id": "bg_police_station"
        },
        "L44": {
          "fp_id": "fp_l13_investigation_chief_office",
          "indoor_loc_sid": "L13",
          "group_id": "bg_police_station"
        },
        "L22": {
          "fp_id": "fp_l23_research_lab",
          "indoor_loc_sid": "L23",
          "group_id": "bg_research_institute"
        },
        "L28": {
          "fp_id": "fp_l26_deputy_chief_office",
          "indoor_loc_sid": "L26",
          "group_id": "bg_prosecution_office"
        },
        "L30": {
          "fp_id": "fp_l32_investigation_suite",
          "indoor_loc_sid": "L32",
          "group_id": "bg_correctional_facility"
        },
        "L41": {
          "fp_id": "fp_l42_living_dining_area",
          "indoor_loc_sid": "L42",
          "group_id": "bg_apartment_unit"
        },
        "L63": {
          "fp_id": "fp_l43_classroom",
          "indoor_loc_sid": "L43",
          "group_id": "bg_kindergarten"
        },
        "L64": {
          "fp_id": "fp_l43_classroom",
          "indoor_loc_sid": "L43",
          "group_id": "bg_kindergarten"
        },
        "L66": {
          "fp_id": "fp_l43_classroom",
          "indoor_loc_sid": "L43",
          "group_id": "bg_kindergarten"
        },
        "L58": {
          "fp_id": "fp_courtroom",
          "indoor_loc_sid": "L59",
          "group_id": "bg_courthouse"
        }
      },
      "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": "88c68ad1-8e6a-4bc5-b9df-969a4a62315e",
            "role": "outdoor_shot_blocking",
            "input": "6b3715cf-26cc-4cb9-99cd-464f856cc20f"
          },
          {
            "asset": "014b6ad7-c7fe-4950-a733-be93ce48b9c4",
            "role": "outdoor_camera_sketch",
            "input": "88c68ad1-8e6a-4bc5-b9df-969a4a62315e"
          },
          {
            "asset": "7535cd7a-afdf-4511-be48-6614b6db21c7",
            "role": "outdoor_shot_blocking",
            "input": "f6eaf0c1-36d5-4ce6-bc61-75e347cdc330"
          },
          {
            "asset": "67d6a1b5-0dad-469e-a028-6993548d0760",
            "role": "outdoor_camera_sketch",
            "input": "7535cd7a-afdf-4511-be48-6614b6db21c7"
          },
          {
            "asset": "452daf70-ba90-4cb9-8a3a-b58c57d9cddd",
            "role": "outdoor_shot_blocking",
            "input": "d89e1c39-12b8-4cc2-a4f5-ad3f01ae0252"
          },
          {
            "asset": "7183b3ae-2ff5-41d0-a26d-c3055e642b42",
            "role": "outdoor_camera_sketch",
            "input": "452daf70-ba90-4cb9-8a3a-b58c57d9cddd"
          },
          {
            "asset": "088cd7e7-a049-4060-878d-5d5f8e36ad43",
            "role": "outdoor_shot_blocking",
            "input": "546842e1-9657-4606-aad8-844ea80fbc3b"
          },
          {
            "asset": "27dda597-56ed-4772-ab77-87ce35aa8def",
            "role": "outdoor_camera_sketch",
            "input": "088cd7e7-a049-4060-878d-5d5f8e36ad43"
          },
          {
            "asset": "f45b0010-eb5d-49b8-b5d5-173e61379f5e",
            "role": "outdoor_shot_blocking",
            "input": "b93bc051-c64a-4556-ada1-b97d38a0ac93"
          },
          {
            "asset": "02a2423f-1e37-41b6-a523-b33934795027",
            "role": "outdoor_camera_sketch",
            "input": "f45b0010-eb5d-49b8-b5d5-173e61379f5e"
          },
          {
            "asset": "153dcfaf-6ac9-4c7e-b2a0-6bbfb00f0120",
            "role": "outdoor_shot_blocking",
            "input": "3738c2ec-d04f-4529-9bfa-d85e7ec5baa1"
          },
          {
            "asset": "763fb384-7303-4909-a298-95f481f909a6",
            "role": "outdoor_camera_sketch",
            "input": "153dcfaf-6ac9-4c7e-b2a0-6bbfb00f0120"
          },
          {
            "asset": "80644f93-e6f9-46d3-84c8-12a0dadb3939",
            "role": "outdoor_shot_blocking",
            "input": "bc6efd71-79bc-481f-a800-6681906aede5"
          },
          {
            "asset": "d1ce0b75-db10-46d9-bda2-29af522fd71a",
            "role": "outdoor_camera_sketch",
            "input": "80644f93-e6f9-46d3-84c8-12a0dadb3939"
          },
          {
            "asset": "d871f52f-4a91-4420-acb5-634982f0bfcc",
            "role": "outdoor_shot_blocking",
            "input": "56efb5bc-0c50-4a7b-bed2-ab1997be57d4"
          },
          {
            "asset": "1523b2dd-a640-4c54-8450-09b00cdf3ff8",
            "role": "outdoor_camera_sketch",
            "input": "d871f52f-4a91-4420-acb5-634982f0bfcc"
          },
          {
            "asset": "41dc291f-a275-4f50-b234-a8f01ef06d39",
            "role": "outdoor_shot_blocking",
            "input": "8cad3c19-654e-4526-b1a5-e91ca1e79dc3"
          },
          {
            "asset": "69b0c929-df72-4ab6-8bca-2c87ee48ae25",
            "role": "outdoor_camera_sketch",
            "input": "41dc291f-a275-4f50-b234-a8f01ef06d39"
          },
          {
            "asset": "90d3ad73-94df-48ad-b764-3884796ae70a",
            "role": "outdoor_shot_blocking",
            "input": "7a5c000c-0992-49c7-a51e-407e6b78e8e2"
          },
          {
            "asset": "9686828a-8891-4d95-9bd1-e1a5501a46e5",
            "role": "outdoor_camera_sketch",
            "input": "90d3ad73-94df-48ad-b764-3884796ae70a"
          }
        ],
        "unresolved": [],
        "guide_asset_resolved": [
          {
            "shot": "1:1",
            "asset": "014b6ad7-c7fe-4950-a733-be93ce48b9c4"
          },
          {
            "shot": "92:1",
            "asset": "67d6a1b5-0dad-469e-a028-6993548d0760"
          },
          {
            "shot": "5:2",
            "asset": "7183b3ae-2ff5-41d0-a26d-c3055e642b42"
          },
          {
            "shot": "20:5",
            "asset": "27dda597-56ed-4772-ab77-87ce35aa8def"
          },
          {
            "shot": "9:2",
            "asset": "02a2423f-1e37-41b6-a523-b33934795027"
          },
          {
            "shot": "11:2",
            "asset": "763fb384-7303-4909-a298-95f481f909a6"
          },
          {
            "shot": "18:1",
            "asset": "d1ce0b75-db10-46d9-bda2-29af522fd71a"
          },
          {
            "shot": "65:2",
            "asset": "1523b2dd-a640-4c54-8450-09b00cdf3ff8"
          },
          {
            "shot": "41:1",
            "asset": "69b0c929-df72-4ab6-8bca-2c87ee48ae25"
          },
          {
            "shot": "45:5",
            "asset": "9686828a-8891-4d95-9bd1-e1a5501a46e5"
          }
        ],
        "guide_asset_unresolved": []
      }
    },
    "composition_guides": {
      "1:1": {
        "mode": "sketch",
        "path": "composition_guides/S1sh1.png",
        "location_id": "L01",
        "group_id": "osl-single-l01-s1-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": "1:1",
              "source_field": "camera_direction",
              "quote": "low, oblique three-quarter angle"
            },
            {
              "shot_key": "1:1",
              "source_field": "camera_direction",
              "quote": "occupy opposing halves of the frame"
            }
          ],
          "reasons": [
            "camera_or_framing_risk"
          ]
        },
        "producer_kind": "shared_model_aerial_v2",
        "guide_generation_status": "ok",
        "base_cache_key": "1ac4b53c5b64bf31",
        "base_hash": "5939b3260b6bf05a",
        "base_prompt_hash": "0ffc406e2253d96b",
        "building_fp_id": "",
        "blocking_stage": "used",
        "blocking_stage_reason": "mandatory_3stage",
        "blocking_hash": "035447c886c31044",
        "pose_brief_present": true,
        "pose_brief_figures": 2,
        "pose_brief_hash": "29ac3dfbbf138fcf",
        "camera_brief_hash": "a6b39ed270c2df2c",
        "camera_view_sketch_hash": "cf236856e727c69b",
        "sketch_prompt_hash": "5bfc79335bc13f68",
        "helper_version": "shared_model_aerial_v4.202607031200",
        "forced_character_names": [
          "김선영",
          "이수정 (과거)"
        ],
        "guide_asset_id": "014b6ad7-c7fe-4950-a733-be93ce48b9c4"
      },
      "92:1": {
        "mode": "sketch",
        "path": "composition_guides/S92sh1.png",
        "location_id": "L04",
        "group_id": "osl-shared-l04-s92",
        "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": "92:1",
              "source_field": "camera_direction",
              "quote": "slightly elevated long distance behind"
            },
            {
              "shot_key": "92:4",
              "source_field": "camera_direction",
              "quote": "waist-height wide camera several paces behind and to the side"
            },
            {
              "shot_key": "92:4",
              "source_field": "camera_direction",
              "quote": "shallow diagonal"
            }
          ],
          "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": "ba53ae22f4b790d3",
        "base_hash": "f56a3edd348e134d",
        "base_prompt_hash": "a344547cf824e303",
        "building_fp_id": "",
        "blocking_stage": "used",
        "blocking_stage_reason": "mandatory_3stage",
        "blocking_hash": "6a5ae0af8053e5a8",
        "pose_brief_present": true,
        "pose_brief_figures": 1,
        "pose_brief_hash": "35a6a491e5a09347",
        "camera_brief_hash": "03f74ebebddbd863",
        "camera_view_sketch_hash": "33d7261476e637d6",
        "sketch_prompt_hash": "44623a47df6931c3",
        "helper_version": "shared_model_aerial_v4.202607031200",
        "forced_character_names": [
          "전택수"
        ],
        "guide_asset_id": "67d6a1b5-0dad-469e-a028-6993548d0760"
      },
      "92:4": {
        "mode": "continuity_anchor",
        "anchor_source": [
          92,
          1
        ],
        "location_id": "L04",
        "group_id": "osl-shared-l04-s92",
        "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": "92:1",
              "source_field": "camera_direction",
              "quote": "slightly elevated long distance behind"
            },
            {
              "shot_key": "92:4",
              "source_field": "camera_direction",
              "quote": "waist-height wide camera several paces behind and to the side"
            },
            {
              "shot_key": "92:4",
              "source_field": "camera_direction",
              "quote": "shallow diagonal"
            }
          ],
          "reasons": [
            "multi_angle_same_set",
            "figure_placement_continuity",
            "depth_layering",
            "camera_or_framing_risk"
          ]
        },
        "forced_character_names": [
          "전택수"
        ]
      },
      "5:2": {
        "mode": "sketch",
        "path": "composition_guides/S5sh2.png",
        "location_id": "L04",
        "group_id": "osl-single-l04-s5-sh2",
        "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": "5:2",
              "source_field": "camera_direction",
              "quote": "Crane to a high three-quarter position beside the riverbank and angle downward"
            }
          ],
          "reasons": [
            "camera_or_framing_risk"
          ]
        },
        "producer_kind": "shared_model_aerial_v2",
        "guide_generation_status": "ok",
        "base_cache_key": "6fa2045d2fa165b4",
        "base_hash": "837eba6c7648426c",
        "base_prompt_hash": "a344547cf824e303",
        "building_fp_id": "",
        "blocking_stage": "used",
        "blocking_stage_reason": "mandatory_3stage",
        "blocking_hash": "4892e216920041b2",
        "pose_brief_present": true,
        "pose_brief_figures": 1,
        "pose_brief_hash": "b1b6de530e6c262a",
        "camera_brief_hash": "ec1d4ebfb918fe72",
        "camera_view_sketch_hash": "f3d82d0643c94baa",
        "sketch_prompt_hash": "f46bb5f096b7f7f1",
        "helper_version": "shared_model_aerial_v4.202607031200",
        "forced_character_names": [
          "김선영"
        ],
        "guide_asset_id": "7183b3ae-2ff5-41d0-a26d-c3055e642b42"
      },
      "20:5": {
        "mode": "sketch",
        "path": "composition_guides/S20sh5.png",
        "location_id": "L04",
        "group_id": "osl-single-l04-s20-sh5",
        "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": "20:5",
              "source_field": "camera_direction",
              "quote": "low three-quarter side angle, framing Taeksu’s wet raised right hand in the near lower third and his frowning face immediately above it"
            }
          ],
          "reasons": [
            "camera_or_framing_risk"
          ]
        },
        "producer_kind": "shared_model_aerial_v2",
        "guide_generation_status": "ok",
        "base_cache_key": "e5333d82d95724aa",
        "base_hash": "d741df95ace5071a",
        "base_prompt_hash": "a344547cf824e303",
        "building_fp_id": "",
        "blocking_stage": "used",
        "blocking_stage_reason": "mandatory_3stage",
        "blocking_hash": "c254529c195b3006",
        "pose_brief_present": true,
        "pose_brief_figures": 1,
        "pose_brief_hash": "8e3919b57d35dd23",
        "camera_brief_hash": "0c9407f9f8cb3d08",
        "camera_view_sketch_hash": "ced3113270308cb2",
        "sketch_prompt_hash": "5409eb4b3f6d7830",
        "helper_version": "shared_model_aerial_v4.202607031200",
        "forced_character_names": [
          "전택수"
        ],
        "guide_asset_id": "27dda597-56ed-4772-ab77-87ce35aa8def"
      },
      "9:2": {
        "mode": "sketch",
        "path": "composition_guides/S9sh2.png",
        "location_id": "L08",
        "group_id": "osl-single-l08-s9-sh2",
        "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:2",
              "source_field": "camera_direction",
              "quote": "From waist height several paces behind 전택수, hold a mild low-angle wide frame after the upward tilt, with his full back-facing figure beside the closed car door in the lower center and the police station exterior rising above him."
            }
          ],
          "reasons": [
            "camera_or_framing_risk"
          ]
        },
        "producer_kind": "shared_model_aerial_v2",
        "guide_generation_status": "ok",
        "base_cache_key": "9f6278dee72571ae",
        "base_hash": "aea217b21ef8cc0c",
        "base_prompt_hash": "b70ee67856bfb470",
        "building_fp_id": "fp_l13_investigation_chief_office",
        "blocking_stage": "used",
        "blocking_stage_reason": "mandatory_3stage",
        "blocking_hash": "b94effae67342873",
        "pose_brief_present": true,
        "pose_brief_figures": 1,
        "pose_brief_hash": "1f890fa1e2e2cc34",
        "camera_brief_hash": "1cd12041b983b795",
        "camera_view_sketch_hash": "08aa4e01875c8efb",
        "sketch_prompt_hash": "39bfe83a47ba300f",
        "helper_version": "shared_model_aerial_v4.202607031200",
        "forced_character_names": [
          "전택수"
        ],
        "guide_asset_id": "02a2423f-1e37-41b6-a523-b33934795027"
      },
      "11:2": {
        "mode": "sketch",
        "path": "composition_guides/S11sh2.png",
        "location_id": "L10",
        "group_id": "osl-single-l10-s11-sh2",
        "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": "11:2",
              "source_field": "camera_direction",
              "quote": "using his back and shoulder as a foreground frame while aiming slightly upward toward the two men behind him"
            }
          ],
          "reasons": [
            "depth_layering",
            "occlusion_or_framing_risk",
            "camera_or_framing_risk"
          ]
        },
        "producer_kind": "shared_model_aerial_v2",
        "guide_generation_status": "ok",
        "base_cache_key": "2b6fdba2bd0d00cc",
        "base_hash": "fea25141d648232c",
        "base_prompt_hash": "e7001fefabe93128",
        "building_fp_id": "fp_l13_investigation_chief_office",
        "blocking_stage": "used",
        "blocking_stage_reason": "mandatory_3stage",
        "blocking_hash": "6ee44de490674b0a",
        "pose_brief_present": true,
        "pose_brief_figures": 3,
        "pose_brief_hash": "a06d009f4b9e2c4a",
        "camera_brief_hash": "73eaa6231137f44c",
        "camera_view_sketch_hash": "9877978f174f8081",
        "sketch_prompt_hash": "11cc0750d214a719",
        "helper_version": "shared_model_aerial_v4.202607031200",
        "forced_character_names": [
          "강력1팀장",
          "서의용",
          "주철"
        ],
        "guide_asset_id": "763fb384-7303-4909-a298-95f481f909a6"
      },
      "18:1": {
        "mode": "sketch",
        "path": "composition_guides/S18sh1.png",
        "location_id": "L15",
        "group_id": "osl-shared-l15-s18",
        "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": "18:1",
              "source_field": "camera_direction",
              "quote": "the camera tracks backward just off the walking axis, catching 전택수 nearly frontally"
            },
            {
              "shot_key": "18:3",
              "source_field": "camera_direction",
              "quote": "the completed pan holds him in a clean right-facing profile on the left third while the convenience store remains visible across the branching alley on the right"
            }
          ],
          "reasons": [
            "multi_angle_same_set",
            "shared_structure_continuity",
            "figure_placement_continuity"
          ]
        },
        "producer_kind": "shared_model_aerial_v2",
        "guide_generation_status": "ok",
        "base_cache_key": "f51204ed9c0295ad",
        "base_hash": "cd2cfbabbd891a93",
        "base_prompt_hash": "0849cc8615fbfeee",
        "building_fp_id": "",
        "blocking_stage": "used",
        "blocking_stage_reason": "mandatory_3stage",
        "blocking_hash": "19ed437b6d7af01c",
        "pose_brief_present": true,
        "pose_brief_figures": 2,
        "pose_brief_hash": "98f9db0cef7d28f1",
        "camera_brief_hash": "9a3adef95c9b762a",
        "camera_view_sketch_hash": "b10df3a05a1047a1",
        "sketch_prompt_hash": "26492e4ebe74633b",
        "helper_version": "shared_model_aerial_v4.202607031200",
        "forced_character_names": [
          "서의용",
          "전택수"
        ],
        "guide_asset_id": "d1ce0b75-db10-46d9-bda2-29af522fd71a"
      },
      "18:3": {
        "mode": "continuity_anchor",
        "anchor_source": [
          18,
          1
        ],
        "location_id": "L15",
        "group_id": "osl-shared-l15-s18",
        "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": "18:1",
              "source_field": "camera_direction",
              "quote": "the camera tracks backward just off the walking axis, catching 전택수 nearly frontally"
            },
            {
              "shot_key": "18:3",
              "source_field": "camera_direction",
              "quote": "the completed pan holds him in a clean right-facing profile on the left third while the convenience store remains visible across the branching alley on the right"
            }
          ],
          "reasons": [
            "multi_angle_same_set",
            "shared_structure_continuity",
            "figure_placement_continuity"
          ]
        },
        "forced_character_names": [
          "전택수"
        ]
      },
      "65:2": {
        "mode": "sketch",
        "path": "composition_guides/S65sh2.png",
        "location_id": "L28",
        "group_id": "osl-shared-l28-s65",
        "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": "65:2",
              "source_field": "camera_direction",
              "quote": "prosecution office entrance and portions of the non-uniform protest line remain behind him for scale"
            },
            {
              "shot_key": "65:3",
              "source_field": "camera_direction",
              "quote": "pastor remains as a nearer left-edge figure and the protest line falls away behind them"
            }
          ],
          "reasons": [
            "multi_angle_same_set",
            "shared_structure_continuity",
            "figure_placement_continuity",
            "depth_layering"
          ]
        },
        "producer_kind": "shared_model_aerial_v2",
        "guide_generation_status": "ok",
        "base_cache_key": "362861065150b27d",
        "base_hash": "792630171d3702e0",
        "base_prompt_hash": "a9214dfa61747c8d",
        "building_fp_id": "fp_l26_deputy_chief_office",
        "blocking_stage": "used",
        "blocking_stage_reason": "mandatory_3stage",
        "blocking_hash": "651d6a4ceff05b8e",
        "pose_brief_present": true,
        "pose_brief_figures": 2,
        "pose_brief_hash": "40bf24f81d7b5621",
        "camera_brief_hash": "2220ea6e8a69fea8",
        "camera_view_sketch_hash": "4c07ca4d6c25c4cd",
        "sketch_prompt_hash": "387e14b2d4ebdc06",
        "helper_version": "shared_model_aerial_v4.202607031200",
        "forced_character_names": [
          "중년 남성 목사"
        ],
        "guide_asset_id": "1523b2dd-a640-4c54-8450-09b00cdf3ff8"
      },
      "65:3": {
        "mode": "continuity_anchor",
        "anchor_source": [
          65,
          2
        ],
        "location_id": "L28",
        "group_id": "osl-shared-l28-s65",
        "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": "65:2",
              "source_field": "camera_direction",
              "quote": "prosecution office entrance and portions of the non-uniform protest line remain behind him for scale"
            },
            {
              "shot_key": "65:3",
              "source_field": "camera_direction",
              "quote": "pastor remains as a nearer left-edge figure and the protest line falls away behind them"
            }
          ],
          "reasons": [
            "multi_angle_same_set",
            "shared_structure_continuity",
            "figure_placement_continuity",
            "depth_layering"
          ]
        },
        "forced_character_names": [
          "중년 남성 목사"
        ]
      },
      "41:1": {
        "mode": "sketch",
        "path": "composition_guides/S41sh1.png",
        "location_id": "L40",
        "group_id": "osl-shared-l40-s41",
        "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": "41:1",
              "source_field": "camera_direction",
              "quote": "From a slightly elevated position beyond one end of the bench area, frame the three adults in full body at a diagonal to their conversational axis, with the wider playground and playing children retained around them."
            },
            {
              "shot_key": "41:7",
              "source_field": "camera_direction",
              "quote": "Complete the dolly-in at a close three-quarter position slightly below 이수정 (현재)'s seated eye line"
            }
          ],
          "reasons": [
            "multi_angle_same_set",
            "shared_structure_continuity",
            "figure_placement_continuity"
          ]
        },
        "producer_kind": "shared_model_aerial_v2",
        "guide_generation_status": "ok",
        "base_cache_key": "5d82030a9d2a2ae7",
        "base_hash": "7bc59dce785b7f20",
        "base_prompt_hash": "9ac1aa116f25c698",
        "building_fp_id": "",
        "blocking_stage": "used",
        "blocking_stage_reason": "mandatory_3stage",
        "blocking_hash": "89965372bf218e23",
        "pose_brief_present": true,
        "pose_brief_figures": 6,
        "pose_brief_hash": "2b2233c0d826d05d",
        "camera_brief_hash": "7b0a180be5c1245c",
        "camera_view_sketch_hash": "96016b3faef9b559",
        "sketch_prompt_hash": "4b7893274719f53c",
        "helper_version": "shared_model_aerial_v4.202607031200",
        "forced_character_names": [
          "나상혁",
          "서의용",
          "어린이들(한국인)",
          "이수정 (현재)"
        ],
        "guide_asset_id": "69b0c929-df72-4ab6-8bca-2c87ee48ae25"
      },
      "41:7": {
        "mode": "continuity_anchor",
        "anchor_source": [
          41,
          1
        ],
        "location_id": "L40",
        "group_id": "osl-shared-l40-s41",
        "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": "41:1",
              "source_field": "camera_direction",
              "quote": "From a slightly elevated position beyond one end of the bench area, frame the three adults in full body at a diagonal to their conversational axis, with the wider playground and playing children retained around them."
            },
            {
              "shot_key": "41:7",
              "source_field": "camera_direction",
              "quote": "Complete the dolly-in at a close three-quarter position slightly below 이수정 (현재)'s seated eye line"
            }
          ],
          "reasons": [
            "multi_angle_same_set",
            "shared_structure_continuity",
            "figure_placement_continuity"
          ]
        },
        "forced_character_names": [
          "이수정 (현재)"
        ]
      },
      "45:5": {
        "mode": "sketch",
        "path": "composition_guides/S45sh5.png",
        "location_id": "L44",
        "group_id": "osl-shared-l44-s45",
        "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": "45:5",
              "source_field": "camera_direction",
              "quote": "Track close along 주철's side at upper-chest height, slightly below his raised chin, holding his widened eyes and extended pointing hand in profile while 서의용 remains along the gesture line deeper in frame."
            },
            {
              "shot_key": "45:7",
              "source_field": "camera_direction",
              "quote": "hold a high, far rear wide shot on 서의용 and 주철 leaning side by side at the rooftop railing."
            }
          ],
          "reasons": [
            "multi_angle_same_set",
            "shared_structure_continuity",
            "figure_placement_continuity"
          ]
        },
        "producer_kind": "shared_model_aerial_v2",
        "guide_generation_status": "ok",
        "base_cache_key": "67f051d1148ac0eb",
        "base_hash": "ec337fef0a0a095b",
        "base_prompt_hash": "d44c9e593093551f",
        "building_fp_id": "fp_l13_investigation_chief_office",
        "blocking_stage": "used",
        "blocking_stage_reason": "mandatory_3stage",
        "blocking_hash": "4179df5f27c1d3ea",
        "pose_brief_present": true,
        "pose_brief_figures": 2,
        "pose_brief_hash": "1e8e6350921cecce",
        "camera_brief_hash": "251015ac674c24aa",
        "camera_view_sketch_hash": "c7cfc6f811cf8ac0",
        "sketch_prompt_hash": "8b816c3cf596848b",
        "helper_version": "shared_model_aerial_v4.202607031200",
        "forced_character_names": [
          "서의용",
          "주철"
        ],
        "guide_asset_id": "9686828a-8891-4d95-9bd1-e1a5501a46e5"
      },
      "45:7": {
        "mode": "continuity_anchor",
        "anchor_source": [
          45,
          5
        ],
        "location_id": "L44",
        "group_id": "osl-shared-l44-s45",
        "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": "45:5",
              "source_field": "camera_direction",
              "quote": "Track close along 주철's side at upper-chest height, slightly below his raised chin, holding his widened eyes and extended pointing hand in profile while 서의용 remains along the gesture line deeper in frame."
            },
            {
              "shot_key": "45:7",
              "source_field": "camera_direction",
              "quote": "hold a high, far rear wide shot on 서의용 and 주철 leaning side by side at the rooftop railing."
            }
          ],
          "reasons": [
            "multi_angle_same_set",
            "shared_structure_continuity",
            "figure_placement_continuity"
          ]
        },
        "forced_character_names": [
          "서의용",
          "주철"
        ]
      }
    },
    "review_html": "review_html/index.html"
  },
  "step_id": "outdoor_site_layout",
  "run_id": "23a581e5-e602-4f41-ad93-d10192e23cfe",
  "resolved_model": "gpt",
  "updated_at": "2026-08-15T00:12:55.908413+00:00",
  "project_config_snapshot": {}
}