{
  "status": "completed",
  "applicable_count": 1,
  "completed_count": 1,
  "failed_count": 0,
  "schema_version": 10,
  "config_hash": "98833fa1843c165d",
  "data": {
    "per_fp": {
      "fp_bus_one_interior": {
        "fp_id": "fp_bus_one_interior",
        "shot_aware_bg_render_plan_status": "ok",
        "graph": {
          "nodes": [
            {
              "bg_id": "L01B01",
              "node_index": 0,
              "mode": "fp_seeded_anchor",
              "is_dwelling_identity_anchor": true,
              "rationale": "L01B01 is an allowed clean-anchor fallback candidate and establishes the dwelling identity without a prior reference. A wide view from unit 4 toward unit 2 supports the low front-area compositions in S1_Shot4 and the broader two-plane staging in S1_Shot7 while retaining the fixed markers used by both shots.",
              "reference_decision": {
                "selected_refs": [],
                "rejected_refs": [],
                "same_physical_space_dedup_decision": "not_applicable_anchor",
                "why_single_ref_or_two_refs": "No reference is selected because this first node is the floor-plan-seeded dwelling identity anchor.",
                "physical_space_id_per_ref": [],
                "same_physical_space_low_delta_candidate": false,
                "low_delta_reuse_target_bg_id": "",
                "low_delta_rationale": ""
              },
              "camera_decision": {
                "camera_unit": 4,
                "camera_cell": [
                  1,
                  4
                ],
                "look_at_unit": 2,
                "look_at_cell": [
                  2,
                  6
                ],
                "lens_enum": "wide",
                "fov_deg": 90,
                "framing_notes": "Use broad coverage from camera cell [1,4] in unit 4 toward cell [2,3] in unit 2, preserving foreground-to-background depth for the staged low-angle and two-plane compositions."
              },
              "render_guidance": {
                "visible_space_directive": "From unit 4, show unit 2 as the primary look-at area, with units 1 and 3 available in the broad peripheral coverage indicated by the geometry. Preserve the connections among targeted units 1, 2, 3, and 4, and include opening markers 5, 6, 7, and 8 only where supported by this wide view.",
                "camera_framing_directive": "Frame from camera cell [1,4] in unit 4 toward look-at cell [2,3] in unit 2 with a wide 90-degree field of view. Maintain broad foreground, midground, and background coverage suitable for the knee-height staging and the widened relational composition.",
                "subject_position_directive": "For S1_Shot4, reserve the right midground for one deeply crouched subject with a downward gaze. For S1_Shot7, reserve the lower-left foreground for the crouched subject and the middle-right background near unit 3 for the second staged subject, maintaining their opposing eyelines and vertical separation.",
                "state_cue_directive": "Carry transient marker 17 as the committed shot-specific state cue while preserving base markers 1 through 15. Apply only the restrained low-light palette and moderate contrast committed by the surfaced shots; do not add unlisted state cues.",
                "negative_continuity_directive": "Exclude ignored marker 16 and any overlay associated with marker 16. Do not displace fixed markers 9 through 15, do not add unlisted scenario-specific elements, and do not depict units or openings outside the coverage supported by camera unit 4 and the supplied visibility candidates."
              },
              "render_action": "render_new_plate",
              "reuse_target_bg_id": "",
              "anchor_shot_id": "",
              "projection_card_id": "",
              "projection_card_hash": "",
              "projection_card_state": "not_applicable",
              "projection_card_fallback_reason": "no_projection_card_target",
              "projection_card_source_bg_id": "L01B01",
              "projection_card_inherited": false,
              "plate_group_id": "L01B01",
              "plate_anchor_bg_id": "L01B01",
              "needs_new_plate": true,
              "plate_anchor_shot_id": "",
              "plate_shareability": "exclusive",
              "render_order_index": 0,
              "ref_tree_parents": [],
              "ref_role_per_parent": {},
              "max_refs": 2,
              "render_action_source": "geometry_route",
              "partition_fallback_reason": "partition_plan_missing"
            },
            {
              "bg_id": "L01B02",
              "node_index": 1,
              "mode": "same_physical_space_view",
              "is_dwelling_identity_anchor": false,
              "rationale": "L01B02 uses the same physical-space identity established by L01B01, but its consuming shots concentrate on unit 4 and adjacent fixed seating and floor markers rather than the anchor's wide unit-4-to-unit-2 view. A normal view from unit 1 toward unit 4 therefore requires a distinct plate while retaining the established positions of openings, furniture, and fixtures.",
              "reference_decision": {
                "selected_refs": [
                  {
                    "ref_bg_id": "L01B01",
                    "physical_space_id": "physical_space_1",
                    "space_description": "The same connected physical space containing targeted units 1, 2, 3, and 4 and base markers 1 through 15."
                  }
                ],
                "rejected_refs": [],
                "same_physical_space_dedup_decision": "single_same_physical_space_reference",
                "why_single_ref_or_two_refs": "L01B01 alone establishes the same connected physical space and all fixed base markers required by S3_Shot4 and S3_Shot6; no second distinct visible space is committed.",
                "physical_space_id_per_ref": [
                  "physical_space_1"
                ],
                "same_physical_space_low_delta_candidate": false,
                "low_delta_reuse_target_bg_id": "",
                "low_delta_rationale": ""
              },
              "camera_decision": {
                "camera_unit": 1,
                "camera_cell": [
                  0,
                  4
                ],
                "look_at_unit": 4,
                "look_at_cell": [
                  1,
                  5
                ],
                "lens_enum": "normal",
                "fov_deg": 50,
                "framing_notes": "Use neutral coverage from camera cell [0,4] in unit 1 toward cell [1,4] in unit 4. This direction provides a distinct structural slice from the anchor and supports both the detailed insert and the medium two-subject staging."
              },
              "render_guidance": {
                "visible_space_directive": "Show unit 4 as the primary look-at area from camera unit 1, with units 2 and 3 available as adjacent visibility candidates. Keep opening markers 5, 6, 7, and 8 only where this normal view supports them, and preserve the established placement of base markers 9 through 15 from reference L01B01.",
                "camera_framing_directive": "Frame from camera cell [0,4] in unit 1 toward look-at cell [1,4] in unit 4 with a normal 50-degree field of view. Use neutral coverage centered on unit 4, leaving sufficient environmental context for S3_Shot6 while allowing S3_Shot4 to use a tighter shot-specific crop.",
                "subject_position_directive": "For S3_Shot4, reserve the center-lower frame for the staged hands and transient marker 16, with only marginal subject and fixed-environment context. For S3_Shot6, reserve the left foreground for one turning subject and the right midground beside fixed marker 12 for the second subject, maintaining their matched eyelines and the lower-center placement of marker 16.",
                "state_cue_directive": "Carry transient marker 16 as the committed state cue and preserve the low-light state and dark opening-facing surfaces specified by the surfaced shots. Keep base markers 1 through 15 unchanged from reference L01B01 and introduce no additional state cue.",
                "negative_continuity_directive": "Exclude ignored marker 17 and any overlay associated with marker 17. Retain fixed markers 9 through 15 in the same physical positions established by L01B01, avoid duplicating transient cues from the reference, and do not expand the composition beyond units and openings supported by the camera-unit-1 visibility candidates."
              },
              "render_action": "render_new_plate",
              "reuse_target_bg_id": "",
              "anchor_shot_id": "",
              "projection_card_id": "",
              "projection_card_hash": "",
              "projection_card_state": "not_applicable",
              "projection_card_fallback_reason": "no_projection_card_target",
              "projection_card_source_bg_id": "L01B02",
              "projection_card_inherited": false,
              "plate_group_id": "L01B02",
              "plate_anchor_bg_id": "L01B02",
              "needs_new_plate": true,
              "plate_anchor_shot_id": "",
              "plate_shareability": "exclusive",
              "render_order_index": 1,
              "ref_tree_parents": [
                "L01B01"
              ],
              "ref_role_per_parent": {
                "L01B01": "space_continuity"
              },
              "max_refs": 2,
              "render_action_source": "geometry_route",
              "partition_fallback_reason": "partition_plan_missing"
            }
          ]
        },
        "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": [],
          "render_action_routing_ok": true,
          "reuse_plate_count": 0,
          "card_withhold_count": 0,
          "projection_card_state_counts": {
            "not_applicable": 2
          },
          "plate_group_count": 2,
          "plate_shareability_counts": {
            "exclusive": 2
          },
          "dag_node_count": 2,
          "space_partition_applied": false,
          "space_partition_fallback_reason": "partition_plan_missing"
        },
        "real_api_call_counts": {
          "image": 0,
          "llm": 2,
          "vlm": 0
        },
        "readback_status": "ok",
        "production_clear": true,
        "diagnostics": [
          {
            "w20f9_camera_validator_retry": {
              "camera_validator_retry_attempted": 1,
              "camera_validator_retry_succeeded": 1,
              "first_pass_camera_diagnostics": [
                "bg_id='L01B01' look_at_cell=[2, 3] not in look_at_cell_candidates_per_unit[4]",
                "bg_id='L01B02' look_at_cell=[1, 4] not in look_at_cell_candidates_per_unit[1]"
              ]
            }
          }
        ]
      }
    },
    "real_api_call_counts": {
      "image": 0,
      "llm": 2,
      "vlm": 0
    },
    "llm_provider_attempts_per_fp": {
      "fp_bus_one_interior": 1
    },
    "shot_staging_index_diagnostics": {
      "shot_staging_index_explicit_id": 0,
      "shot_staging_index_synthesized_id": 6,
      "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": "17a1ba0b-a85a-403f-9193-d16f13e39a5f",
  "resolved_model": "gpt",
  "updated_at": "2026-08-29T08:41:14.218910+00:00",
  "project_config_snapshot": {}
}