{
  "status": "completed",
  "applicable_count": 1,
  "completed_count": 1,
  "failed_count": 0,
  "data": {
    "chain_bg_groups": [
      {
        "floor_plan_id": "fp_rooftop_room",
        "id": "cb_l05_room_day_normal",
        "kind": "anchor_root",
        "location_id": "L05",
        "parent_id": "",
        "rationale": "일상 거실 기준입니다.",
        "scenes": [
          5
        ],
        "shot_ids": [
          "S5_Shot3",
          "S5_Shot8",
          "S5_Shot13"
        ],
        "time": "day"
      },
      {
        "floor_plan_id": "fp_rooftop_room",
        "id": "cb_l05_room_night_blood",
        "kind": "anchor_state",
        "location_id": "L05",
        "parent_id": "cb_l05_room_day_normal",
        "rationale": "핏자국 이후 상태입니다.",
        "scenes": [
          12
        ],
        "shot_ids": [
          "S12_Shot5",
          "S12_Shot8",
          "S12_Shot16"
        ],
        "time": "night"
      },
      {
        "floor_plan_id": "fp_rooftop_room",
        "id": "cb_l05_room_day_investigation",
        "kind": "anchor_state",
        "location_id": "L05",
        "parent_id": "cb_l05_room_night_blood",
        "rationale": "조사 동선이 추가됩니다.",
        "scenes": [
          14
        ],
        "shot_ids": [
          "S14_Shot5",
          "S14_Shot10",
          "S14_Shot12"
        ],
        "time": "day"
      },
      {
        "floor_plan_id": "fp_rooftop_room",
        "id": "cb_l05_room_night_vision",
        "kind": "anchor_state",
        "location_id": "L05",
        "parent_id": "cb_l05_room_day_investigation",
        "rationale": "욕실 환영이 필요합니다.",
        "scenes": [
          18
        ],
        "shot_ids": [
          "S18_Shot10",
          "S18_Shot15",
          "S18_Shot16"
        ],
        "time": "night"
      },
      {
        "floor_plan_id": "fp_rooftop_room",
        "id": "cb_l05_room_night_marked",
        "kind": "anchor_state",
        "location_id": "L05",
        "parent_id": "cb_l05_room_night_vision",
        "rationale": "벽 표식 상태입니다.",
        "scenes": [
          25
        ],
        "shot_ids": [
          "S25_Shot5",
          "S25_Shot6",
          "S25_Shot13"
        ],
        "time": "night"
      },
      {
        "floor_plan_id": "fp_rooftop_room",
        "id": "cb_l05_room_dusk_empty",
        "kind": "anchor_state",
        "location_id": "L05",
        "parent_id": "cb_l05_room_night_marked",
        "rationale": "빈방 저녁 상태입니다.",
        "scenes": [
          27
        ],
        "shot_ids": [
          "S27_Shot2",
          "S27_Shot3",
          "S27_Shot6"
        ],
        "time": "dusk"
      },
      {
        "floor_plan_id": "fp_mart_building",
        "id": "cb_l09_store_day",
        "kind": "anchor_root",
        "location_id": "L09",
        "parent_id": "",
        "rationale": "매장 진열 기준입니다.",
        "scenes": [
          8,
          19
        ],
        "shot_ids": [
          "S8_Shot4",
          "S8_Shot9",
          "S19_Shot2",
          "S19_Shot5",
          "S19_Shot7"
        ],
        "time": "day"
      },
      {
        "floor_plan_id": "fp_mart_building",
        "id": "cb_l14_admin_office_day",
        "kind": "anchor_root",
        "location_id": "L14",
        "parent_id": "",
        "rationale": "사무실 업무 기준입니다.",
        "scenes": [
          20
        ],
        "shot_ids": [
          "S20_Shot3",
          "S20_Shot5",
          "S20_Shot7"
        ],
        "time": "day"
      },
      {
        "floor_plan_id": "fp_police_office",
        "id": "cb_l13_office_work",
        "kind": "anchor_root",
        "location_id": "L13",
        "parent_id": "",
        "rationale": "사무실 기본 상태입니다.",
        "scenes": [
          16
        ],
        "shot_ids": [
          "S16_Shot3",
          "S16_Shot5"
        ],
        "time": "none"
      },
      {
        "floor_plan_id": "fp_police_office",
        "id": "cb_l13_office_case_files",
        "kind": "anchor_state",
        "location_id": "L13",
        "parent_id": "cb_l13_office_work",
        "rationale": "증거 배치가 바뀝니다.",
        "scenes": [
          21
        ],
        "shot_ids": [
          "S21_Shot6",
          "S21_Shot7",
          "S21_Shot11"
        ],
        "time": "none"
      },
      {
        "floor_plan_id": "fp_animal_shelter",
        "id": "cb_l07_shelter_day",
        "kind": "anchor_root",
        "location_id": "L07",
        "parent_id": "",
        "rationale": "견사 작업 기준입니다.",
        "scenes": [
          7
        ],
        "shot_ids": [
          "S7_Shot1",
          "S7_Shot4",
          "S7_Shot9"
        ],
        "time": "day"
      },
      {
        "floor_plan_id": "fp_boat_wheelhouse",
        "id": "cb_l20_wheelhouse_night",
        "kind": "anchor_root",
        "location_id": "L20",
        "parent_id": "",
        "rationale": "선실 내부 기준입니다.",
        "scenes": [
          29
        ],
        "shot_ids": [
          "S29_Shot4",
          "S29_Shot7",
          "S29_Shot13"
        ],
        "time": "night"
      }
    ],
    "chain_bg_order": [
      "cb_l05_room_day_normal",
      "cb_l05_room_night_blood",
      "cb_l05_room_day_investigation",
      "cb_l05_room_night_vision",
      "cb_l05_room_night_marked",
      "cb_l05_room_dusk_empty",
      "cb_l09_store_day",
      "cb_l14_admin_office_day",
      "cb_l13_office_work",
      "cb_l13_office_case_files",
      "cb_l07_shelter_day",
      "cb_l20_wheelhouse_night"
    ],
    "floor_plan_order": [
      "fp_rooftop_room",
      "fp_mart_building",
      "fp_police_office",
      "fp_animal_shelter",
      "fp_boat_wheelhouse"
    ],
    "floor_plans": [
      {
        "building_group": "rooftop_room",
        "id": "fp_rooftop_room",
        "location_ids": [
          "L05"
        ],
        "primary_location_id": "L05",
        "rationale": "반복되는 핵심 실내입니다.",
        "shot_count": 18
      },
      {
        "building_group": "mart_building",
        "id": "fp_mart_building",
        "location_ids": [
          "L09",
          "L14"
        ],
        "primary_location_id": "L09",
        "rationale": "매장과 사무실이 연결됩니다.",
        "shot_count": 8
      },
      {
        "building_group": "police_office",
        "id": "fp_police_office",
        "location_ids": [
          "L13"
        ],
        "primary_location_id": "L13",
        "rationale": "수사 장비와 증거가 반복됩니다.",
        "shot_count": 5
      },
      {
        "building_group": "animal_shelter",
        "id": "fp_animal_shelter",
        "location_ids": [
          "L07"
        ],
        "primary_location_id": "L07",
        "rationale": "견사와 작업대가 반복됩니다.",
        "shot_count": 3
      },
      {
        "building_group": "boat_wheelhouse",
        "id": "fp_boat_wheelhouse",
        "location_ids": [
          "L20"
        ],
        "primary_location_id": "L20",
        "rationale": "좁은 선실 동선이 반복됩니다.",
        "shot_count": 3
      }
    ],
    "prev_shot_only": [
      {
        "kind": "low_freq_2",
        "location_id": "L01",
        "rationale": "두 컷이라 참조로 충분합니다.",
        "shot_count": 2
      },
      {
        "kind": "outdoor_3+",
        "location_id": "L02",
        "rationale": "야외 반복이라 참조 처리합니다.",
        "shot_count": 3
      },
      {
        "kind": "single_shot",
        "location_id": "L03",
        "rationale": "단일 컷 장소입니다.",
        "shot_count": 1
      },
      {
        "kind": "outdoor_3+",
        "location_id": "L04",
        "rationale": "옥상 외부라 참조 처리합니다.",
        "shot_count": 5
      },
      {
        "kind": "outdoor_3+",
        "location_id": "L06",
        "rationale": "도로 야외라 참조 처리합니다.",
        "shot_count": 3
      },
      {
        "kind": "outdoor_3+",
        "location_id": "L10",
        "rationale": "외부 마당이라 참조 처리합니다.",
        "shot_count": 3
      },
      {
        "kind": "single_shot",
        "location_id": "L11",
        "rationale": "단일 컷 외부입니다.",
        "shot_count": 1
      },
      {
        "kind": "outdoor_3+",
        "location_id": "L12",
        "rationale": "정류장 야외라 참조 처리합니다.",
        "shot_count": 3
      },
      {
        "kind": "low_freq_2",
        "location_id": "L16",
        "rationale": "두 컷 실내라 참조합니다.",
        "shot_count": 2
      },
      {
        "kind": "outdoor_3+",
        "location_id": "L17",
        "rationale": "포구 야외라 참조 처리합니다.",
        "shot_count": 3
      },
      {
        "kind": "low_freq_2",
        "location_id": "L18",
        "rationale": "두 컷 바다입니다.",
        "shot_count": 2
      },
      {
        "kind": "outdoor_3+",
        "location_id": "L19",
        "rationale": "갑판 야외라 참조 처리합니다.",
        "shot_count": 3
      }
    ],
    "rationale_summary": "반복 실내인 옥탑방, 보호원, 마트 내부·사무실, 경찰 사무실, 어선 조타실만 도면과 체인 배경을 생성합니다. 1~2회 장소와 모든 야외 장소는 이전 컷 참조로 처리합니다."
  },
  "step_id": "background_planner",
  "run_id": "00db8457-d525-4b4f-b375-1d9ab172fee8",
  "resolved_model": "gpt",
  "updated_at": "2026-04-29T01:03:36.673390+00:00",
  "schema_version": 1,
  "config_hash": "99914b932bd37a50"
}