{
  "status": "partial",
  "applicable_count": 1,
  "completed_count": 5,
  "failed_count": 4,
  "schema_version": 3,
  "config_hash": "ad96093ace039736",
  "data": {
    "per_fp": {
      "fp_l04_rooftop": {
        "fp_id": "fp_l04_rooftop",
        "shot_aware_bg_render_plan_status": "ok",
        "graph": {
          "nodes": [
            {
              "bg_id": "L04B02",
              "camera_decision": {
                "camera_cell": [
                  1,
                  0
                ],
                "camera_unit": 1,
                "fov_deg": 90,
                "framing_notes": "Wide 90-degree coverage from unit 1 toward cell [7,4], supporting a broad establishing BG that keeps units 1, 2, 3, and 6 available with openings 4 and 5 as visible geometry candidates.",
                "lens_enum": "wide",
                "look_at_cell": [
                  7,
                  4
                ],
                "look_at_unit": 6
              },
              "is_dwelling_identity_anchor": true,
              "mode": "fp_seeded_anchor",
              "node_index": 0,
              "rationale": "L04B02 is the only clean anchor candidate supplied for this fp_id, so it is selected as the dwelling identity anchor despite clean_background_expected=false. Its consuming shot S4_Shot1 has no committed subject emphasis and asks for a wide, distant reveal of the full roof identity; the chosen wide camera from unit 1 toward marker cell [7,4] supports broad coverage of the target unit set [1,2,3,6], fixed markers 7 and 8, and openings 4 and 5 while carrying transient marker 14.",
              "reference_decision": {
                "physical_space_id_per_ref": [],
                "rejected_refs": [],
                "same_physical_space_dedup_decision": "no_reference_fp_seeded_anchor",
                "selected_refs": [],
                "why_single_ref_or_two_refs": "No reference is selected because this first node is the required fp_seeded_anchor and establishes same-fp continuity for later nodes."
              },
              "render_guidance": {
                "camera_framing_directive": "Use broad wide-lens framing: camera_unit 1 at camera_cell [1,0], looking toward look_at_unit 6 through look_at_cell [7,4], with lens_enum wide and fov_deg 90. The framing should emphasize wide spatial coverage rather than a compressed or narrow view.",
                "negative_continuity_directive": "Do not include ignored marker numbers 9, 10, 11, 12, or 13. Do not add invented subjects, additional transient overlays, or spaces beyond the chosen broad unit-1-to-unit-6 view plan. Keep any nonlisted scenario-specific objects out of the BG.",
                "state_cue_directive": "Carry transient marker 14 as the committed state cue for this BG, together with use_numbered_elements [1,2,3,4,5,6,7,8,14]. Because clean_background_expected is false, include only this listed transient cue and do not introduce additional state cues.",
                "subject_position_directive": "S4_Shot1 has no committed character_angles and no human figure is emphasized. Keep the BG free of invented subjects; only the listed unit markers, openings, fixed markers, and transient marker 14 should define the frame.",
                "visible_space_directive": "From camera_unit 1 at [1,0] looking toward look_at_unit 6 via look_at_cell [7,4] with a wide lens, show the same-fp roof layout using base markers [1,2,3,4,5,6,7,8]. Geometry lists visible unit candidates from unit 1 as [2,3,6] and visible opening candidates as [4,5]; keep the view consistent with those marker-numbered spaces and openings."
              }
            },
            {
              "bg_id": "L04B05",
              "camera_decision": {
                "camera_cell": [
                  6,
                  8
                ],
                "camera_unit": 6,
                "fov_deg": 50,
                "framing_notes": "Normal 50-degree coverage from unit 6 toward opening marker cell [3,6], balancing the low exterior platform cue and the window-surface cue across the two surfaced shots.",
                "lens_enum": "normal",
                "look_at_cell": [
                  3,
                  6
                ],
                "look_at_unit": 2
              },
              "is_dwelling_identity_anchor": false,
              "mode": "reference_derived",
              "node_index": 1,
              "rationale": "L04B05 shares the same base marker set [1,2,3,4,5,6,7,8] with the earlier same-fp anchor L04B02 but replaces marker 14 with transient markers [9,10,11]. A single same-fp reference is sufficient because the consuming shots remain within the same exterior roof identity, with S10_Shot1 emphasizing low platform-to-opening staging and S10_Shot4 emphasizing the window surface. The camera is placed at unit 6 and looks toward marker 5's cell [3,6] using a normal lens to keep the view neutral across both staged uses.",
              "reference_decision": {
                "physical_space_id_per_ref": [
                  "fp_l04_rooftop_units_1_2_3_6_shared_exterior"
                ],
                "rejected_refs": [],
                "same_physical_space_dedup_decision": "single_same_fp_reference_selected",
                "selected_refs": [
                  {
                    "physical_space_id": "fp_l04_rooftop_units_1_2_3_6_shared_exterior",
                    "ref_bg_id": "L04B02",
                    "space_description": "Same-fp reference covering base markers [1,2,3,4,5,6,7,8] before L04B05-specific transient markers are applied."
                  }
                ],
                "why_single_ref_or_two_refs": "A single reference is used because L04B02 already establishes the same physical exterior marker set needed by L04B05; no consuming shot requires two distinct visible physical spaces as separate references."
              },
              "render_guidance": {
                "camera_framing_directive": "Use neutral normal-lens framing: camera_unit 6 at camera_cell [6,8], looking toward look_at_unit 2 through look_at_cell [3,6], with lens_enum normal and fov_deg 50. The frame should not feel like broad wide coverage or compressed telephoto coverage; keep it centered on the unit-6-to-marker-5 relationship.",
                "negative_continuity_directive": "Do not include ignored marker numbers 12, 13, or 14. Because selected reference L04B02 contains marker 14, suppress that referenced transient cue here and retain only the structural continuity from base markers [1,2,3,4,5,6,7,8]. Do not add invented subjects, nonlisted transient overlays, or marker-numbered spaces outside the chosen unit-6 view plan.",
                "state_cue_directive": "Carry transient marker numbers [9,10,11] as the committed state cues for this BG, together with use_numbered_elements [1,2,3,4,5,6,7,8,9,10,11]. The surfaced shots commit low-plane disturbance cues for S10_Shot1 and a projected surface cue at marker 5 for S10_Shot4; do not add any other state overlay.",
                "subject_position_directive": "S10_Shot1 commits only a partial lower-body/shadow subject cue on the low plane near unit 6, moving toward the distant opening area; keep the face outside the BG cue. S10_Shot4 commits two flattened shadow silhouettes on the marker-5 surface, with no visible interior depth. Do not invent additional subject bodies beyond these staged silhouettes and partial-body cues.",
                "visible_space_directive": "Use L04B02 only as the same-fp structural reference for base markers [1,2,3,4,5,6,7,8]. From camera_unit 6 at [6,8] looking toward look_at_unit 2 via look_at_cell [3,6] with a normal lens, keep visible space focused on unit 6, the referenced exterior units [1,2,3] as geometry candidates, and openings [4,5] as listed visible opening candidates from unit 6."
              }
            },
            {
              "bg_id": "L04B01",
              "camera_decision": {
                "camera_cell": [
                  1,
                  0
                ],
                "camera_unit": 1,
                "fov_deg": 90,
                "framing_notes": "Wide 90-degree coverage from unit 1 toward opening marker cell [3,6], supporting the wide parapet-and-window relationship in the surfaced shot.",
                "lens_enum": "wide",
                "look_at_cell": [
                  3,
                  6
                ],
                "look_at_unit": 2
              },
              "is_dwelling_identity_anchor": false,
              "mode": "reference_derived",
              "node_index": 2,
              "rationale": "L04B01 uses a subset of the same roof structure established by L04B02, especially base markers [1,2,3,4,5], while requiring transient markers [12,13] and excluding marker 14 plus markers [9,10,11]. The chosen wide camera from unit 1 toward marker 5's cell [3,6] supports S17_Shot1's wide staged view of the parapet relationship and distant lit surface cue while staying within valid same-fp geometry candidates.",
              "reference_decision": {
                "physical_space_id_per_ref": [
                  "fp_l04_rooftop_units_1_2_3_shared_exterior"
                ],
                "rejected_refs": [
                  {
                    "reason": "L04B05 carries transient marker numbers [9,10,11], which are ignored for L04B01 and would be a continuity hazard for this BG.",
                    "ref_bg_id": "L04B05"
                  }
                ],
                "same_physical_space_dedup_decision": "single_same_fp_reference_selected",
                "selected_refs": [
                  {
                    "physical_space_id": "fp_l04_rooftop_units_1_2_3_shared_exterior",
                    "ref_bg_id": "L04B02",
                    "space_description": "Same-fp structural reference for the roof identity, using only the L04B01-relevant base marker subset [1,2,3,4,5] and suppressing L04B02-specific transient marker 14."
                  }
                ],
                "why_single_ref_or_two_refs": "A single same-fp reference is sufficient because the consuming shot uses one continuous visible exterior relationship among unit markers [1,2,3] and openings [4,5]; no co-visible distinct physical space requires a second reference."
              },
              "render_guidance": {
                "camera_framing_directive": "Use broad wide-lens framing: camera_unit 1 at camera_cell [1,0], looking toward look_at_unit 2 through look_at_cell [3,6], with lens_enum wide and fov_deg 90. The frame should provide wide coverage of the unit-1-to-marker-5 sightline rather than a narrow or compressed view.",
                "negative_continuity_directive": "Do not include ignored marker numbers 9, 10, 11, or 14. Because selected reference L04B02 includes marker 14, suppress that referenced transient cue for this BG. Do not carry over L04B05's marker numbers [9,10,11], do not invent additional subjects, and do not add nonlisted transient overlays or marker-numbered spaces outside the chosen unit-1 view plan.",
                "state_cue_directive": "Carry transient marker numbers [12,13] as the committed state cues for this BG, together with use_numbered_elements [1,2,3,4,5,12,13]. The surfaced shot also commits worn, damp, chipped surface state for the relevant boundary marker and a lit surface cue associated with marker 13; do not introduce additional state cues.",
                "subject_position_directive": "S17_Shot1 commits one full-body animal silhouette associated with marker 12, positioned against the marker-3 boundary line with all four paws planted. Keep the subject as a silhouette cue only and do not invent additional subjects.",
                "visible_space_directive": "Use L04B02 only as same-fp structural continuity for base markers [1,2,3,4,5] while suppressing marker 14. From camera_unit 1 at [1,0] looking toward look_at_unit 2 via look_at_cell [3,6] with a wide lens, keep visible space tied to unit markers [1,2,3] and openings [4,5]; geometry lists visible unit candidates from unit 1 as [2,3,6], but L04B01's committed target units are [1,2,3]."
              }
            }
          ]
        },
        "validators": {
          "required_shape_ok": true,
          "graph_completeness_ok": true,
          "node_index_order_ok": true,
          "dag_ok": true,
          "max_refs_per_bg_ok": true,
          "two_refs_distinct_spaces_ok": true,
          "same_fp_only_ok": true,
          "anchor_exactly_one_ok": true,
          "anchor_in_clean_candidate_set_ok": true,
          "camera_in_candidates_ok": true,
          "rationale_and_mode_ok": true,
          "synthetic_readback_production_clear": true,
          "all_validators_passed": true,
          "diagnostics": []
        },
        "real_api_call_counts": {
          "image": 0,
          "llm": 1,
          "vlm": 0
        },
        "readback_status": "ok",
        "production_clear": true,
        "diagnostics": []
      },
      "fp_l04_stairs": {
        "fp_id": "fp_l04_stairs",
        "shot_aware_bg_render_plan_status": "ok",
        "graph": {
          "nodes": [
            {
              "bg_id": "L04B04",
              "camera_decision": {
                "camera_cell": [
                  3,
                  5
                ],
                "camera_unit": 3,
                "fov_deg": 50,
                "framing_notes": "Normal-lens neutral coverage from unit marker 3 toward unit marker 4 supports the staged medium and close subject framing while keeping the shared unit-marker structure readable behind the subjects.",
                "lens_enum": "normal",
                "look_at_cell": [
                  6,
                  5
                ],
                "look_at_unit": 4
              },
              "is_dwelling_identity_anchor": true,
              "mode": "fp_seeded_anchor",
              "node_index": 0,
              "rationale": "L04B04 is the sole bg_id in anchor_selection_metadata.candidate_bg_ids, so it is selected as the dwelling identity anchor and placed first. No prior same-fp references are available. The camera is placed at the valid candidate cell for unit marker 3 and aimed toward unit marker 4 via look-at cell [6,5], using a normal 50 degree lens to balance the committed S13_Shot4 medium staging with the S13_Shot5 close staging and the shared base markers 1-9 plus transient marker 12.",
              "reference_decision": {
                "physical_space_id_per_ref": [],
                "rejected_refs": [],
                "same_physical_space_dedup_decision": "not_applicable_anchor_no_refs",
                "selected_refs": [],
                "why_single_ref_or_two_refs": "No selected reference is used because this node is the fp_seeded_anchor and the same-fp candidate reference catalog is empty."
              },
              "render_guidance": {
                "camera_framing_directive": "Frame from camera_unit 3 at camera_cell [3,5] toward look_at_unit 4 at look_at_cell [6,5] with lens_enum normal and fov_deg 50. Use neutral coverage: enough background structure remains visible for unit markers 3 and 4 while allowing the committed S13_Shot4 medium framing and S13_Shot5 close framing to read without adding unadvertised camera movement.",
                "negative_continuity_directive": "Do not include ignored numbered elements 10 or 11, and do not carry ignored_state_overlay_marker_numbers 10 or 11 into this BG. Do not add numbered elements outside use_numbered_elements [1,2,3,4,5,6,7,8,9,12]. Do not depict spaces beyond camera_unit 3, look_at_unit 4, the visible-unit candidate superset [1,2,4] plus the camera unit, or visible opening candidates [5,6,7]. Do not invent additional subjects, additional state overlays, or scenario-specific objects beyond the committed staging and marker data.",
                "state_cue_directive": "Carry transient marker number 12. The committed shot state fields for S13_Shot4 and S13_Shot5 describe on/strobing red-blue light effects, fog, wet/dark surfaces, and heavily defocused light spill; apply those only as state cues associated with marker 12 and the used base markers [1,2,3,4,5,6,7,8,9]. clean_background_expected is false, so the BG should not be treated as a clean state.",
                "subject_position_directive": "Committed subject cues are present. For S13_Shot4, two staged characters are held at medium distance, balanced left and right, with one gripping both shoulders of the other and both looking at each other. For S13_Shot5, one staged character is isolated in a close foreground/middle-center face cue, with an implied over-shoulder relationship. Keep subject placement tied to these committed cues only.",
                "visible_space_directive": "From camera_unit 3 at [3,5] looking toward look_at_unit 4 at [6,5], include the camera unit marker 3 and the look-at unit marker 4. The readback lists visible_units_candidates for unit 3 as [1,2,4] and visible_openings_candidates as [5,6,7]; treat these as supersets, not guaranteed adjacency. Base marker numbers to reference are [1,2,3,4,5,6,7,8,9], with transient marker 12 also used for this BG."
              }
            },
            {
              "bg_id": "L04B03",
              "camera_decision": {
                "camera_cell": [
                  1,
                  5
                ],
                "camera_unit": 1,
                "fov_deg": 90,
                "framing_notes": "Wide-lens broad coverage from unit marker 1 toward unit marker 4 supports the staged upward look, showing the lower camera position, the midground subject cue, and the upper background destination within the same BG.",
                "lens_enum": "wide",
                "look_at_cell": [
                  6,
                  5
                ],
                "look_at_unit": 4
              },
              "is_dwelling_identity_anchor": false,
              "mode": "reference_derived",
              "node_index": 1,
              "rationale": "L04B03 is derived from the earlier same-fp anchor L04B04 because both BG facts use the same base marker set [1,2,3,4,5,6,7,8,9] and target unit markers [1,2,3,4], while L04B03 swaps in transient markers 10 and 11 and must ignore marker 12. The valid camera choice places the camera at unit marker 1 cell [1,5] and looks toward unit marker 4 through look-at cell [6,5], using a wide 90 degree lens to support S11_Shot1 staging: a lower-positioned view with a midground subject cue and an upper background cue in the same frame.",
              "reference_decision": {
                "physical_space_id_per_ref": [
                  "fp_l04_stairs_shared_units_1_2_3_4"
                ],
                "rejected_refs": [],
                "same_physical_space_dedup_decision": "single_reference_selected",
                "selected_refs": [
                  {
                    "physical_space_id": "fp_l04_stairs_shared_units_1_2_3_4",
                    "ref_bg_id": "L04B04",
                    "space_description": "Same fp_id with shared target unit markers [1,2,3,4] and shared base marker numbers [1,2,3,4,5,6,7,8,9]."
                  }
                ],
                "why_single_ref_or_two_refs": "A single same-fp reference is sufficient because the parent L04B04 already establishes the shared base-marker structure for unit markers 1-4; L04B03 only needs a different transient-marker/state treatment. No second reference is needed because no consuming shot requires co-visibility of two distinct referenced physical spaces."
              },
              "render_guidance": {
                "camera_framing_directive": "Frame from camera_unit 1 at camera_cell [1,5] toward look_at_unit 4 at look_at_cell [6,5] with lens_enum wide and fov_deg 90. Use broad coverage consistent with a lower camera position looking upward across the unit-marker route, keeping the midground subject cue and upper background cue in the same frame without adding unadvertised camera operations.",
                "negative_continuity_directive": "Use L04B04 only for same-fp base continuity; do not copy its transient marker 12 into this BG. Do not include ignored numbered element 12 or ignored_state_overlay_marker_number 12. Do not add numbered elements outside use_numbered_elements [1,2,3,4,5,6,7,8,9,10,11]. Do not depict spaces beyond camera_unit 1, look_at_unit 4, the visible-unit candidate superset [2,3,4] plus the camera unit, or visible opening candidates [5,6,7]. Do not invent additional subjects, additional overlays, or scenario-specific objects beyond the committed staging and marker data.",
                "state_cue_directive": "Carry transient marker numbers 10 and 11. The committed S11_Shot1 state-facing fields describe dim/stained shadow conditions, an upper background cue that is mostly hidden and unlit, and heavy darkness above; apply those only in relation to transient markers 10 and 11 and used base markers [1,2,3,4,5,6,7,8,9]. clean_background_expected is false, so do not render this as a clean background state.",
                "subject_position_directive": "Committed subject cues are present for S11_Shot1. Place the staged character cue in the lower_center screen zone and midground depth plane, with the committed hand-to-nose pose and upward gaze. Keep the upper background cue in the upper_center background as specified by the frame_spatial_contract. Do not add any unstaged subjects.",
                "visible_space_directive": "From camera_unit 1 at [1,5] looking toward look_at_unit 4 at [6,5], include the camera unit marker 1 and the look-at unit marker 4. The readback lists visible_units_candidates for unit 1 as [2,3,4] and visible_openings_candidates as [5,6,7]; treat these as supersets, not guaranteed adjacency. Base marker numbers to reference are [1,2,3,4,5,6,7,8,9], with transient markers 10 and 11 used for this BG and selected reference L04B04 used only for shared base continuity."
              }
            }
          ]
        },
        "validators": {
          "required_shape_ok": true,
          "graph_completeness_ok": true,
          "node_index_order_ok": true,
          "dag_ok": true,
          "max_refs_per_bg_ok": true,
          "two_refs_distinct_spaces_ok": true,
          "same_fp_only_ok": true,
          "anchor_exactly_one_ok": true,
          "anchor_in_clean_candidate_set_ok": true,
          "camera_in_candidates_ok": true,
          "rationale_and_mode_ok": true,
          "synthetic_readback_production_clear": true,
          "all_validators_passed": true,
          "diagnostics": []
        },
        "real_api_call_counts": {
          "image": 0,
          "llm": 1,
          "vlm": 0
        },
        "readback_status": "ok",
        "production_clear": true,
        "diagnostics": []
      },
      "fp_l05_main": {
        "fp_id": "fp_l05_main",
        "shot_aware_bg_render_plan_status": "failed",
        "graph": {
          "nodes": []
        },
        "validators": {
          "all_validators_passed": false,
          "diagnostics": [
            "llm_provider raised: ShotAwareBgRenderPlanProviderError: response.choices[0].message.content is empty"
          ]
        },
        "real_api_call_counts": {
          "image": 0,
          "llm": 1,
          "vlm": 0
        },
        "readback_status": "ok",
        "production_clear": false,
        "diagnostics": []
      },
      "fp_l09_supermarket_main": {
        "fp_id": "fp_l09_supermarket_main",
        "shot_aware_bg_render_plan_status": "failed",
        "graph": {
          "nodes": []
        },
        "validators": {
          "all_validators_passed": false,
          "diagnostics": [
            "llm_provider raised: ShotAwareBgRenderPlanProviderError: response.choices[0].message.content is empty"
          ]
        },
        "real_api_call_counts": {
          "image": 0,
          "llm": 1,
          "vlm": 0
        },
        "readback_status": "ok",
        "production_clear": false,
        "diagnostics": []
      },
      "fp_l10_supermarket_exterior_main": {
        "fp_id": "fp_l10_supermarket_exterior_main",
        "shot_aware_bg_render_plan_status": "not_applicable",
        "graph": {
          "nodes": []
        },
        "validators": {
          "all_validators_passed": false,
          "diagnostics": [
            "shot_readiness gate skipped (no BG has at least one staged consuming shot in shot_staging cp; not_applicable)"
          ]
        },
        "real_api_call_counts": {
          "image": 0,
          "llm": 0,
          "vlm": 0
        },
        "readback_status": "ok",
        "production_clear": false,
        "diagnostics": []
      },
      "fp_l14_security_room_main": {
        "fp_id": "fp_l14_security_room_main",
        "shot_aware_bg_render_plan_status": "ok",
        "graph": {
          "nodes": [
            {
              "bg_id": "L14B01",
              "camera_decision": {
                "camera_cell": [
                  4,
                  4
                ],
                "camera_unit": 2,
                "fov_deg": 25,
                "framing_notes": "Telephoto framing from unit marker 2 at cell [4,4] toward look-at cell [5,1] keeps the committed close shot narrow, allowing marker 8 / transient marker 11 to function as an off-frame or near-edge source while retaining only limited surrounding structure.",
                "lens_enum": "telephoto",
                "look_at_cell": [
                  5,
                  1
                ],
                "look_at_unit": 2
              },
              "is_dwelling_identity_anchor": true,
              "mode": "fp_seeded_anchor",
              "node_index": 0,
              "rationale": "L14B01 is the only supplied anchor candidate and the only readiness-ok BG for this fp_id, so it is seeded as the dwelling identity anchor with no prior references. The consuming shot is a close, profile-oriented staged shot with the key source described as off-frame or near-edge, so a telephoto camera from unit marker 2 cell [4,4] toward look-at cell [5,1] supports narrow coverage around the committed source cue and avoids broad unstaged additions.",
              "reference_decision": {
                "physical_space_id_per_ref": [],
                "rejected_refs": [],
                "same_physical_space_dedup_decision": "no_reference_needed_for_fp_seeded_anchor",
                "selected_refs": [],
                "why_single_ref_or_two_refs": "No selected references are used because this node is the fp_seeded_anchor and the same-fp reference catalog is empty."
              },
              "render_guidance": {
                "camera_framing_directive": "Frame from camera_unit 2 at camera_cell [4,4] toward look_at_unit 2 / look_at_cell [5,1] with lens telephoto at fov_deg 25. Use compressed, narrow coverage consistent with the committed close framing; keep marker 8 and transient marker 11 as off-frame or near-edge influences rather than broad background coverage.",
                "negative_continuity_directive": "No ignore_numbered_elements or ignored_state_overlay_marker_numbers are listed. Do not add unlisted marker numbers, additional transient cues beyond marker 11, or any unstaged subjects. Because no selected references exist, do not import continuity from another bg_id. Keep visibility constrained by the telephoto plan from unit 2 toward cell [5,1] and avoid depicting spaces or cues outside that plan.",
                "state_cue_directive": "clean_background_expected is false and transient_marker_numbers_to_describe lists marker 11. Carry only the committed transient cue 11, labeled in the input as \"blue monitor glow and unclear CCTV footage\", along with use_numbered_elements [1,2,3,4,5,6,7,8,9,10,11]. Do not invent additional state cues.",
                "subject_position_directive": "For S20_Shot3, the committed subject cue is a close profile_right angle with body_pose \"leaning toward monitor\", gaze_direction_kind \"off_screen\", and subject_state \"alive\". Place the subject close to the camera relationship implied by camera_unit 2, with the source cue from marker 8 / marker 11 kept off-frame or near-edge as staged. Do not add any other subjects.",
                "visible_space_directive": "Use the single-fp anchor view from camera_unit 2 at cell [4,4] toward look_at_cell [5,1] in look_at_unit 2. The BG may reference target unit markers [1,2,3] and base markers [1,2,3,4,5,6,7,8,9,10] only as allowed by the narrow telephoto view; emphasize the unit-2 line toward marker 8 at [5,1] and transient marker 11, with visible_openings_candidates for camera unit 2 ([4,5]) treated only as supersets, not mandatory inclusions."
              }
            }
          ]
        },
        "validators": {
          "required_shape_ok": true,
          "graph_completeness_ok": true,
          "node_index_order_ok": true,
          "dag_ok": true,
          "max_refs_per_bg_ok": true,
          "two_refs_distinct_spaces_ok": true,
          "same_fp_only_ok": true,
          "anchor_exactly_one_ok": true,
          "anchor_in_clean_candidate_set_ok": true,
          "camera_in_candidates_ok": true,
          "rationale_and_mode_ok": true,
          "synthetic_readback_production_clear": true,
          "all_validators_passed": true,
          "diagnostics": []
        },
        "real_api_call_counts": {
          "image": 0,
          "llm": 1,
          "vlm": 0
        },
        "readback_status": "ok",
        "production_clear": true,
        "diagnostics": []
      },
      "fp_l13_police_office_main": {
        "fp_id": "fp_l13_police_office_main",
        "shot_aware_bg_render_plan_status": "failed",
        "graph": {
          "nodes": []
        },
        "validators": {
          "all_validators_passed": false,
          "diagnostics": [
            "llm_provider raised: ShotAwareBgRenderPlanProviderError: production validate_llm_output failed: bg_id='L13B02' look_at_cell=[4, 4] not in look_at_cell_candidates_per_unit[1]; bg_id='L13B01' look_at_cell=[2, 1] not in look_at_cell_candidates_per_unit[5]"
          ]
        },
        "real_api_call_counts": {
          "image": 0,
          "llm": 1,
          "vlm": 0
        },
        "readback_status": "ok",
        "production_clear": false,
        "diagnostics": []
      },
      "fp_l15_police_street_main": {
        "fp_id": "fp_l15_police_street_main",
        "shot_aware_bg_render_plan_status": "failed",
        "graph": {
          "nodes": []
        },
        "validators": {
          "all_validators_passed": false,
          "diagnostics": [
            "llm_provider raised: ShotAwareBgRenderPlanProviderError: production validate_llm_output failed: bg_id='L15B01' look_at_cell=[4, 2] not in look_at_cell_candidates_per_unit[9]"
          ]
        },
        "real_api_call_counts": {
          "image": 0,
          "llm": 1,
          "vlm": 0
        },
        "readback_status": "ok",
        "production_clear": false,
        "diagnostics": []
      },
      "fp_deck_main": {
        "fp_id": "fp_deck_main",
        "shot_aware_bg_render_plan_status": "ok",
        "graph": {
          "nodes": [
            {
              "bg_id": "L19B01",
              "camera_decision": {
                "camera_cell": [
                  1,
                  5
                ],
                "camera_unit": 2,
                "fov_deg": 90,
                "framing_notes": "Wide 90-degree framing from unit marker 2 at cell [1,5], looking toward cell [5,5] with look_at_unit 2, supports the staged wide establishing use and leaves room for the close staged foreground subject cue without requiring a new reference.",
                "lens_enum": "wide",
                "look_at_cell": [
                  5,
                  5
                ],
                "look_at_unit": 2
              },
              "is_dwelling_identity_anchor": true,
              "mode": "fp_seeded_anchor",
              "node_index": 0,
              "rationale": "L19B01 is the only clean anchor candidate supplied for fp_deck_main and its readiness is ok=true, so it is emitted first as the dwelling identity anchor with no parent references. The BG applies to S28_Shot1 and S28_Shot5 and references target unit markers 1,2,3,4,5 plus use markers 1 through 17. A wide camera from unit marker 2 at [1,5] toward [5,5] is valid under the geometry readback and gives broad coverage for the committed wide establishing shot while remaining compatible with the later close shot background use.",
              "reference_decision": {
                "physical_space_id_per_ref": [],
                "rejected_refs": [],
                "same_physical_space_dedup_decision": "no_refs_anchor",
                "selected_refs": [],
                "why_single_ref_or_two_refs": "No selected_refs are used because this node is the fp_seeded_anchor and the same-fp candidate reference catalog is empty."
              },
              "render_guidance": {
                "camera_framing_directive": "Frame from camera_unit 2 at camera_cell [1,5] toward look_at_unit 2 and look_at_cell [5,5] with lens_enum wide and fov_deg 90. Use broad coverage consistent with the wide lens: preserve visibility of the committed unit-marker set 1,2,3,4,5 and the numbered base elements 1 through 17 as applicable to the chosen view, while allowing S28_Shot5 to crop close around its committed foreground subject cue.",
                "negative_continuity_directive": "ignore_numbered_elements is empty and ignored_state_overlay_marker_numbers is empty, so no listed marker must be suppressed for that reason. Do not introduce marker numbers outside use_numbered_elements [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]. Do not add transient overlay markers because transient_marker_numbers_to_describe is empty. Do not require visibility of spaces outside the camera_unit 2 candidate set [1,3,4,5], and treat visible openings 8,9,10 only as geometry candidates. No same-fp selected reference is present, so do not copy state cues from any reference bg_id.",
                "state_cue_directive": "For the numbered base markers, clean_background_expected is true and transient_marker_numbers_to_describe is empty; no committed state cue beyond clean residential space applies to the base BG, and the renderer must refrain from inventing additional marker-based state cues. Shot-facing state cues may be honored only as staged: S28_Shot1 describes the primary subject as floating alone, with surrounding surface state calm but heavy and dusk-darkened, and S28_Shot5 describes background elements as slick with sea moisture, darkening and gently moving, with thin distance haze. Do not convert those shot-facing cues into new numbered transient markers.",
                "subject_position_directive": "S28_Shot1 commits its primary subject as deliberately minimized near the lower-middle of a wide frame, surrounded by negative space. S28_Shot5 commits target_id C03 as the foreground middle_center subject in a close frame, viewed from deck level just off the subject's front-left side at eye height, with three_quarter_left angle, off_screen gaze, and jaw slackened stillness. No additional subject cue is committed for other positions; keep the BG free of invented subjects beyond these staged cues.",
                "visible_space_directive": "From camera_unit 2 at [1,5] looking toward [5,5] with a wide 90-degree lens, use unit marker 2 as the camera space and keep the geometry candidate visible units limited to unit markers 1,3,4,5 plus the BG target set 1,2,3,4,5. Candidate visible openings for this camera unit are opening markers 8,9,10. The BG may reference base marker numbers 1 through 17 because they are all listed in use_numbered_elements and base_marker_numbers_to_reference; do not assert unprovided opening-to-unit adjacency."
              }
            }
          ]
        },
        "validators": {
          "required_shape_ok": true,
          "graph_completeness_ok": true,
          "node_index_order_ok": true,
          "dag_ok": true,
          "max_refs_per_bg_ok": true,
          "two_refs_distinct_spaces_ok": true,
          "same_fp_only_ok": true,
          "anchor_exactly_one_ok": true,
          "anchor_in_clean_candidate_set_ok": true,
          "camera_in_candidates_ok": true,
          "rationale_and_mode_ok": true,
          "synthetic_readback_production_clear": true,
          "all_validators_passed": true,
          "diagnostics": []
        },
        "real_api_call_counts": {
          "image": 0,
          "llm": 1,
          "vlm": 0
        },
        "readback_status": "ok",
        "production_clear": true,
        "diagnostics": []
      },
      "fp_wheelhouse_main": {
        "fp_id": "fp_wheelhouse_main",
        "shot_aware_bg_render_plan_status": "ok",
        "graph": {
          "nodes": [
            {
              "bg_id": "L20B03",
              "camera_decision": {
                "camera_cell": [
                  6,
                  5
                ],
                "camera_unit": 9,
                "fov_deg": 25,
                "framing_notes": "Telephoto insert-oriented framing from unit 9 cell [6,5] toward unit 1 cell [3,5], concentrating on the committed foreground interaction around base marker 2 and keeping surrounding base markers secondary.",
                "lens_enum": "telephoto",
                "look_at_cell": [
                  3,
                  5
                ],
                "look_at_unit": 1
              },
              "is_dwelling_identity_anchor": true,
              "mode": "fp_seeded_anchor",
              "node_index": 0,
              "rationale": "Chosen as the fp_seeded_anchor because L20B03 is in the supplied clean anchor candidate set and its committed shot centers the fixed control area around base marker 2, giving a strong same-fp identity seed for base markers 1-10 while carrying only its required transient marker 11. The camera uses valid camera unit 9 at [6,5] and a valid look-at cell [3,5] in unit 1 with telephoto fov 25 to match the insert-scale staged shot around the helm/control contact.",
              "reference_decision": {
                "physical_space_id_per_ref": [],
                "rejected_refs": [],
                "same_physical_space_dedup_decision": "no_reference_for_seed_anchor",
                "selected_refs": [],
                "why_single_ref_or_two_refs": "No reference is selected because this first node establishes the dwelling identity anchor for the same-fp graph."
              },
              "render_guidance": {
                "camera_framing_directive": "Frame from camera_unit 9 at camera_cell [6,5] toward look_at_unit 1 at look_at_cell [3,5] with telephoto lens_enum and fov_deg 25. Use compressed, narrow coverage appropriate to an insert-scale BG; concentrate the frame on the area around base marker 2, with adjacent base markers 3 and 4 only as supporting context if they remain inside the narrow view.",
                "negative_continuity_directive": "Do not include ignored marker numbers 12 or 13. Do not add state overlay markers beyond transient marker 11. Do not widen the telephoto frame into areas outside units 1 and 9 or into non-committed openings beyond the selected view. Avoid inventing any extra scenario-specific objects, labels, or state cues not represented by marker numbers in this BG.",
                "state_cue_directive": "This BG is not marked clean_background_expected. Carry transient marker 11 as the only committed state overlay for L20B03, alongside use_numbered_elements [1,2,3,4,5,6,7,8,9,10,11]. Do not carry ignored state overlay markers 12 or 13.",
                "subject_position_directive": "The staged shot commits two visible subject body-part cues in the foreground/middle_center: target_id C01 hands over the helm and target_id C03 hands under them, with background target marker 2 locked between both pairs of hands. Keep the subjects limited to the committed hand/foreground interaction; do not invent full faces or additional body placement.",
                "visible_space_directive": "From camera unit 9 at [6,5] looking into unit 1 at [3,5], keep the visible space limited to target unit markers [1,9]. Base markers to reference are [1,2,3,4,5,6,7,8,9,10], with marker 2 as the primary look-at-area and markers 3 and 4 eligible nearby fixed context. Geometry exposes visible opening candidates [5,6,7,8] for camera unit 9, but the telephoto view should only retain openings that fall inside the narrow frame."
              }
            },
            {
              "bg_id": "L20B02",
              "camera_decision": {
                "camera_cell": [
                  6,
                  5
                ],
                "camera_unit": 9,
                "fov_deg": 25,
                "framing_notes": "Telephoto close framing from unit 9 cell [6,5] toward unit 1 cell [3,5], using the anchor reference only for base-marker continuity while prioritizing the committed close foreground marker 12 interaction.",
                "lens_enum": "telephoto",
                "look_at_cell": [
                  3,
                  5
                ],
                "look_at_unit": 1
              },
              "is_dwelling_identity_anchor": false,
              "mode": "reference_derived",
              "node_index": 1,
              "rationale": "L20B02 derives from the earlier same-fp anchor L20B03 to preserve continuity for base markers 1-10 while replacing L20B03's transient marker 11 with L20B02's required transient marker 12. The chosen camera is valid for unit 9 at [6,5] with a valid look-at cell [3,5] and telephoto fov 25, matching the committed close evidence-style staging around the console surface without adding uncommitted wider geometry.",
              "reference_decision": {
                "physical_space_id_per_ref": [
                  "fp_wheelhouse_main_units_1_9_shared_base"
                ],
                "rejected_refs": [],
                "same_physical_space_dedup_decision": "single_reference_same_physical_space",
                "selected_refs": [
                  {
                    "physical_space_id": "fp_wheelhouse_main_units_1_9_shared_base",
                    "ref_bg_id": "L20B03",
                    "space_description": "Same-fp base continuity for unit markers 1 and 9 with base markers 1-10; transient marker 11 from the reference is not to be redrawn for this BG."
                  }
                ],
                "why_single_ref_or_two_refs": "A single earlier same-fp reference is sufficient because the consuming shot uses the same visible target units [1,9] and needs base-marker continuity rather than two distinct co-visible physical spaces."
              },
              "render_guidance": {
                "camera_framing_directive": "Frame from camera_unit 9 at camera_cell [6,5] toward look_at_unit 1 at look_at_cell [3,5] with telephoto lens_enum and fov_deg 25. Use compressed close coverage; keep the base surface around marker 2 as physical context while allowing transient marker 12 and the staged foreground contact to dominate the frame.",
                "negative_continuity_directive": "Use selected reference L20B03 only for base markers 1-10. Do not redraw reference transient marker 11, and do not include ignored marker 13. Avoid adding any extra marker, state overlay, or scenario-specific object not listed in use_numbered_elements [1,2,3,4,5,6,7,8,9,10,12]. Do not widen beyond the selected units [1,9] or imply additional spaces outside the camera view.",
                "state_cue_directive": "This BG is not marked clean_background_expected. Carry transient marker 12 as the only committed transient state marker for L20B02, together with use_numbered_elements [1,2,3,4,5,6,7,8,9,10,12]. Exclude ignored state overlay markers 11 and 13.",
                "subject_position_directive": "The staged shot commits target_id C01 as a foreground/middle_center body-part cue, with a fingertip pressing the committed background element represented by transient marker 12. Keep subject depiction limited to that close body-part cue and do not invent additional visible body, face, or off-frame subject placement.",
                "visible_space_directive": "From camera unit 9 at [6,5] looking toward unit 1 at [3,5], maintain the same-fp base space from reference L20B03 for unit markers [1,9] and base markers [1,2,3,4,5,6,7,8,9,10]. Geometry exposes visible opening candidates [5,6,7,8] from camera unit 9, but the telephoto close view should only keep openings if they fall within the tight frame; primary visible context should remain around marker 2 and transient marker 12."
              }
            },
            {
              "bg_id": "L20B01",
              "camera_decision": {
                "camera_cell": [
                  6,
                  5
                ],
                "camera_unit": 9,
                "fov_deg": 25,
                "framing_notes": "Telephoto close framing from unit 9 cell [6,5] toward unit 1 cell [3,7], emphasizing compressed background behind foreground subjects and allowing side-opening context only if it remains within the narrow view.",
                "lens_enum": "telephoto",
                "look_at_cell": [
                  3,
                  7
                ],
                "look_at_unit": 1
              },
              "is_dwelling_identity_anchor": false,
              "mode": "reference_derived",
              "node_index": 2,
              "rationale": "L20B01 derives from the earlier same-fp anchor L20B03 for base-marker continuity across units 1 and 9, while substituting its own required transient marker 13 and excluding markers 11 and 12. The staged shot calls for close, compressed background stillness behind foreground subjects, so camera unit 9 at [6,5] with look-at cell [3,7] and telephoto fov 25 is selected to keep coverage narrow and aligned with the committed side-window/background cue.",
              "reference_decision": {
                "physical_space_id_per_ref": [
                  "fp_wheelhouse_main_units_1_9_shared_base"
                ],
                "rejected_refs": [
                  {
                    "reason": "L20B02 carries transient marker 12, which is ignored for L20B01; the anchor reference already supplies the needed same-fp base continuity.",
                    "ref_bg_id": "L20B02"
                  }
                ],
                "same_physical_space_dedup_decision": "single_reference_same_physical_space",
                "selected_refs": [
                  {
                    "physical_space_id": "fp_wheelhouse_main_units_1_9_shared_base",
                    "ref_bg_id": "L20B03",
                    "space_description": "Same-fp base continuity for unit markers 1 and 9 with base markers 1-10; transient marker 11 from the reference is not to be redrawn for this BG."
                  }
                ],
                "why_single_ref_or_two_refs": "A single earlier same-fp reference is sufficient because the consuming shot uses the same shared visible base space, and no second distinct co-visible physical space is required."
              },
              "render_guidance": {
                "camera_framing_directive": "Frame from camera_unit 9 at camera_cell [6,5] toward look_at_unit 1 at look_at_cell [3,7] with telephoto lens_enum and fov_deg 25. Use compressed, close coverage: foreground subjects remain dominant while the background from units 1 and 9 stays narrow and partially occluded.",
                "negative_continuity_directive": "Use selected reference L20B03 only for base markers 1-10. Do not redraw reference transient marker 11, and do not include ignored marker 12. Do not import transient marker 12 from L20B02. Avoid adding state cues, props, or scenario-specific details not represented by marker numbers in use_numbered_elements [1,2,3,4,5,6,7,8,9,10,13]. Keep spaces outside units 1 and 9 out of view.",
                "state_cue_directive": "This BG is not marked clean_background_expected. Carry transient marker 13 as the only committed transient state marker for L20B01, together with use_numbered_elements [1,2,3,4,5,6,7,8,9,10,13]. Exclude ignored state overlay markers 11 and 12.",
                "subject_position_directive": "The staged shot commits two foreground/midground subject placements: target_id C01 in foreground/middle_left with head dropped on shoulder, and target_id C03 in midground/middle_right supporting that weight and looking toward target_id C01. Keep these subject placements in front of the compressed base space; do not invent additional subjects or uncommitted body positions.",
                "visible_space_directive": "From camera unit 9 at [6,5] looking toward unit 1 at [3,7], keep visibility limited to target unit markers [1,9]. Reference L20B03 supplies continuity for base markers [1,2,3,4,5,6,7,8,9,10], while L20B01 adds transient marker 13. Geometry exposes visible opening candidates [5,6,7,8] for camera unit 9; with the selected telephoto view toward [3,7], marker 7 is the most aligned opening candidate, and any other opening marker should appear only if it remains inside the compressed frame."
              }
            }
          ]
        },
        "validators": {
          "required_shape_ok": true,
          "graph_completeness_ok": true,
          "node_index_order_ok": true,
          "dag_ok": true,
          "max_refs_per_bg_ok": true,
          "two_refs_distinct_spaces_ok": true,
          "same_fp_only_ok": true,
          "anchor_exactly_one_ok": true,
          "anchor_in_clean_candidate_set_ok": true,
          "camera_in_candidates_ok": true,
          "rationale_and_mode_ok": true,
          "synthetic_readback_production_clear": true,
          "all_validators_passed": true,
          "diagnostics": []
        },
        "real_api_call_counts": {
          "image": 0,
          "llm": 1,
          "vlm": 0
        },
        "readback_status": "ok",
        "production_clear": true,
        "diagnostics": []
      }
    },
    "real_api_call_counts": {
      "image": 0,
      "llm": 9,
      "vlm": 0
    },
    "llm_provider_attempts_per_fp": {
      "fp_l04_rooftop": 1,
      "fp_l04_stairs": 1,
      "fp_l05_main": 1,
      "fp_l09_supermarket_main": 1,
      "fp_l14_security_room_main": 1,
      "fp_l13_police_office_main": 1,
      "fp_l15_police_street_main": 1,
      "fp_deck_main": 1,
      "fp_wheelhouse_main": 1
    },
    "shot_staging_index_diagnostics": {
      "shot_staging_index_explicit_id": 0,
      "shot_staging_index_synthesized_id": 50,
      "shot_staging_index_dropped_no_id": [],
      "shot_staging_index_dropped_bad_index_type": [],
      "shot_staging_index_collisions": []
    }
  },
  "step_id": "shot_aware_bg_render_plan",
  "run_id": "9c2718c1-7950-4c35-9c9a-d71e9379062e",
  "resolved_model": "gpt",
  "updated_at": "2026-05-28T01:31:28.837184+00:00",
  "project_config_snapshot": {}
}