{
  "status": "completed",
  "applicable_count": 1,
  "completed_count": 1,
  "failed_count": 0,
  "schema_version": 10,
  "config_hash": "98833fa1843c165d",
  "data": {
    "per_fp": {
      "fp_repair_shop_main": {
        "fp_id": "fp_repair_shop_main",
        "shot_aware_bg_render_plan_status": "ok",
        "graph": {
          "nodes": [
            {
              "bg_id": "L01B02",
              "node_index": 0,
              "mode": "fp_seeded_anchor",
              "is_dwelling_identity_anchor": true,
              "rationale": "L01B02 is an allowed clean-anchor fallback candidate and establishes the dwelling identity from the base floor plan. Its consuming shot commits a view from unit 2 toward unit 1, centered on base marker 6 while retaining marker 7 as an upper-frame structural anchor and transient markers 8 and 9 as shot state.",
              "reference_decision": {
                "selected_refs": [],
                "rejected_refs": [],
                "same_physical_space_dedup_decision": "not_applicable_anchor",
                "why_single_ref_or_two_refs": "The identity anchor is rendered directly from the supplied floor plan and therefore uses no prior reference.",
                "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": 2,
                "camera_cell": [
                  5,
                  6
                ],
                "look_at_unit": 1,
                "look_at_cell": [
                  2,
                  2
                ],
                "lens_enum": "normal",
                "fov_deg": 50,
                "framing_notes": "Use neutral coverage from unit 2 toward unit 1 and base marker 6 at look-at cell [2,2], supporting the committed medium, low three-quarter composition while allowing marker 7 near the upper frame."
              },
              "render_guidance": {
                "visible_space_directive": "From camera unit 2, show the geometry-supported portion of target unit 1 around base marker 6, with supporting coverage of units 3 and 4 only where admitted by the 50-degree view; opening marker 5 and fixture marker 7 may remain visible when consistent with that cone.",
                "camera_framing_directive": "Place the camera at unit 2 cell [5,6] and aim toward unit 1 at look-at cell [2,2] with a normal 50-degree lens, giving neutral medium coverage and preserving a legible lower-frame relationship among base marker 6 and transient markers 8 and 9.",
                "subject_position_directive": "For S1_Shot1, place the committed subject in the right half at medium scale, leaning toward the action near frame center with downward attention; keep the committed hand action, marker 9, marker 8, and base marker 6 legible together without adding other subjects.",
                "state_cue_directive": "Carry transient marker 8 open on base marker 6 and transient marker 9 in its committed inverted repair state. Preserve the restrained, slightly desaturated illumination associated with fixed marker 7; no additional state cue is committed.",
                "negative_continuity_directive": "Do not introduce ignored overlay markers 10 or 11. Keep base markers 5, 6, and 7 in their floor-plan positions, do not extend the composition into units outside the camera-unit-2 view-cone support, and do not invent additional subjects or scenario-specific objects."
              },
              "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": 0,
              "ref_tree_parents": [],
              "ref_role_per_parent": {},
              "max_refs": 2,
              "render_action_source": "geometry_route",
              "partition_fallback_reason": "partition_plan_missing"
            },
            {
              "bg_id": "L01B01",
              "node_index": 1,
              "mode": "same_physical_space_view",
              "is_dwelling_identity_anchor": false,
              "rationale": "L01B01 targets the same complete marker-defined physical space as L01B02 but requires a genuinely different camera slice for S1_Shot2: the camera moves to unit 4 and looks toward unit 3 so opening marker 5 can remain behind the entering subject while the interior direction of movement stays legible. The different camera and look-at geometry warrants a new plate rather than low-delta reuse.",
              "reference_decision": {
                "selected_refs": [
                  {
                    "ref_bg_id": "L01B02",
                    "physical_space_id": "physical_space_1",
                    "space_description": "The same marker-defined physical space containing units 1 through 4 and base markers 5 through 7."
                  }
                ],
                "rejected_refs": [],
                "same_physical_space_dedup_decision": "single_same_physical_space_reference",
                "why_single_ref_or_two_refs": "One reference is sufficient because all target units and base markers belong to the same physical space; no consuming shot commits two distinct co-visible spaces.",
                "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": 4,
                "camera_cell": [
                  8,
                  4
                ],
                "look_at_unit": 3,
                "look_at_cell": [
                  3,
                  4
                ],
                "lens_enum": "normal",
                "fov_deg": 50,
                "framing_notes": "Use a chest-height-equivalent neutral view from unit 4 toward unit 3 and fixture marker 7 at [3,4], keeping opening marker 5 behind the committed midground subject."
              },
              "render_guidance": {
                "visible_space_directive": "From camera unit 4, show the geometry-supported interior portions of units 3, 1, and 2 that fall within the normal view, together with opening marker 5 behind the staged subject. Preserve base markers 6 and 7 in the same fixed positions established by L01B02 wherever they enter the cone.",
                "camera_framing_directive": "Place the camera at unit 4 cell [8,4] and aim toward unit 3 at look-at cell [3,4] with a normal 50-degree lens. Use neutral medium coverage that keeps the midground subject near center and opening marker 5 receding behind the subject rather than presenting the opening frontally.",
                "subject_position_directive": "For S1_Shot2, place the committed entering subject in the middle center at midground depth, stepping from opening marker 5 into the interior with the wet shoulder turned toward the camera and gaze angled past it toward the staged interior target. Keep the committed hand-held object beside the moving hand without aiming it at the camera.",
                "state_cue_directive": "Carry transient markers 8 and 9 in their committed states and retain the established illumination from marker 7. Opening marker 5 remains open for the staged entry, while the illumination state of the committed hand-held object remains unspecified.",
                "negative_continuity_directive": "Do not introduce ignored overlay markers 10 or 11. Preserve the fixed positions of markers 5, 6, and 7 inherited from L01B02, keep opening marker 5 behind the subject as staged, and do not add unsupported spaces, subjects, or state cues outside the unit-4 view cone."
              },
              "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": 1,
              "ref_tree_parents": [
                "L01B02"
              ],
              "ref_role_per_parent": {
                "L01B02": "space_continuity"
              },
              "max_refs": 2,
              "render_action_source": "geometry_route",
              "partition_fallback_reason": "partition_plan_missing"
            },
            {
              "bg_id": "L01B04",
              "node_index": 2,
              "mode": "same_physical_space_view",
              "is_dwelling_identity_anchor": false,
              "rationale": "L01B04 uses the same physical space and the same unit-4-to-unit-3 orientation as L01B01, but S3_Shot1 and S3_Shot2 require wider shared coverage and committed overlay markers 10 and 11. Marker 10 changes the placement of fixed marker 6 for this state, so this is a genuine layout-state change requiring a new plate rather than low-delta reuse.",
              "reference_decision": {
                "selected_refs": [
                  {
                    "ref_bg_id": "L01B01",
                    "physical_space_id": "physical_space_1",
                    "space_description": "The same marker-defined physical space viewed from unit 4 toward unit 3, including opening marker 5 and the connected interior units."
                  }
                ],
                "rejected_refs": [
                  {
                    "ref_bg_id": "L01B02",
                    "reason": "It establishes the same physical identity, but its unit-2-to-unit-1 framing is less direct than L01B01 for the committed unit-4-to-unit-3 view and opening-marker staging."
                  }
                ],
                "same_physical_space_dedup_decision": "single_same_physical_space_reference",
                "why_single_ref_or_two_refs": "A single same-space reference is sufficient because both consuming shots remain within one connected physical space; no shot commits two distinct co-visible spaces.",
                "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": 4,
                "camera_cell": [
                  8,
                  4
                ],
                "look_at_unit": 3,
                "look_at_cell": [
                  3,
                  4
                ],
                "lens_enum": "wide",
                "fov_deg": 90,
                "framing_notes": "Use broad coverage from unit 4 toward unit 3 and marker 7 at [3,4], retaining enough connected floor and opening coverage to support both the cleared-floor staging and the doorway-facing staging."
              },
              "render_guidance": {
                "visible_space_directive": "From camera unit 4, use the wide cone to cover the geometry-supported portions of units 1, 2, and 3, the connected floor around unit 3, and opening marker 5. Keep fixed marker 7 and the unchanged structural relationships from L01B01 while depicting marker 6 in the committed marker-10 state.",
                "camera_framing_directive": "Place the camera at unit 4 cell [8,4] and aim toward unit 3 at look-at cell [3,4] with a wide 90-degree lens. Use broad coverage so the lower floor, the marker-10 placement of marker 6, marker 11, and opening marker 5 can support the separate wide and medium consuming-shot crops.",
                "subject_position_directive": "For S3_Shot1, reserve the lower-left floor for the committed covered subject at marker 11 and the lower right for the committed crouched subject, with marker 6 behind them in its marker-10 placement. For S3_Shot2, reserve the middle left for the committed profile subject leaning toward opening marker 5 on the right; do not combine the subject arrangements when producing a shot-specific composite.",
                "state_cue_directive": "Carry transient marker 10 as the committed shifted placement of base marker 6 and marker 11 as the committed covered resting arrangement. Preserve restrained illumination from marker 7; for S3_Shot2, allow only the staged intermittent localized light action directed toward opening marker 5.",
                "negative_continuity_directive": "Do not redraw ignored overlay markers 8 or 9. Preserve marker 7 and all unchanged structural marker positions from L01B01, but do not copy marker 6's earlier placement over the committed marker-10 state. Avoid unsupported units beyond the wide unit-4 cone and do not invent additional subjects, objects, or state overlays."
              },
              "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": "L01B04",
              "projection_card_inherited": false,
              "plate_group_id": "L01B04",
              "plate_anchor_bg_id": "L01B04",
              "needs_new_plate": true,
              "plate_anchor_shot_id": "",
              "plate_shareability": "exclusive",
              "render_order_index": 2,
              "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": 3
          },
          "plate_group_count": 3,
          "plate_shareability_counts": {
            "exclusive": 3
          },
          "dag_node_count": 3,
          "space_partition_applied": false,
          "space_partition_fallback_reason": "partition_plan_missing"
        },
        "real_api_call_counts": {
          "image": 0,
          "llm": 1,
          "vlm": 0
        },
        "readback_status": "ok",
        "production_clear": true,
        "diagnostics": []
      }
    },
    "real_api_call_counts": {
      "image": 0,
      "llm": 1,
      "vlm": 0
    },
    "llm_provider_attempts_per_fp": {
      "fp_repair_shop_main": 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": "7e4276ad-880e-4979-950c-359fd2569834",
  "resolved_model": "gpt",
  "updated_at": "2026-08-24T19:30:47.657524+00:00",
  "project_config_snapshot": {}
}