addedOutput schema / properties / proposals
Added value: +{
+ "description": "The proposal ledger (#365): per batch, how many shapes are still pending, how many the estimator accepted, whether it was withdrawn, and which batch new commits attach to (current). Present only when a proposal exists",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "accepted": {
+ "description": "Shapes from the batch the estimator already accepted — ink, outside every agent verb",
+ "type": "integer"
+ },
+ "current": {
+ "const": true,
+ "description": "New agent commits attach to this batch",
+ "type": "boolean"
+ },
+ "label": {
+ "type": "string"
+ },
+ "pending": {
+ "description": "Shapes attached to the batch and not yet affirmed by a human",
+ "type": "integer"
+ },
+ "proposal_id": {
+ "type": "string"
+ },
+ "rationale": {
+ "type": "string"
+ },
+ "withdrawn": {
+ "const": true,
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "proposal_id",
+ "label",
+ "rationale",
+ "pending",
+ "accepted"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+}
addedOutput schema / properties / proposed_condition_edits
Added value: +{
+ "description": "Pending condition-edit diffs (#365) beside the current knobs. The rows above are the CURRENT values — nothing changes until the estimator accepts. Present only when any are pending",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "condition": {
+ "type": "string"
+ },
+ "condition_id": {
+ "type": "string"
+ },
+ "current": {
+ "additionalProperties": true,
+ "description": "The condition's knobs as they stand — what every total above is computed from",
+ "properties": {
+ "finish_tag": {
+ "type": "string"
+ },
+ "height_ft": {
+ "type": "number"
+ },
+ "multiplier": {
+ "type": "number"
+ },
+ "roll_setup": {
+ "anyOf": [
+ {
+ "additionalProperties": true,
+ "properties": {},
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "waste_pct": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "proposal_id": {
+ "type": "string"
+ },
+ "proposed": {
+ "additionalProperties": true,
+ "description": "Only the fields that would change",
+ "properties": {
+ "finish_tag": {
+ "$ref": "#/properties/proposed_condition_edits/items/properties/current/properties/finish_tag"
+ },
+ "height_ft": {
+ "$ref": "#/properties/proposed_condition_edits/items/properties/current/properties/height_ft"
+ },
+ "multiplier": {
+ "$ref": "#/properties/proposed_condition_edits/items/properties/current/properties/multiplier"
+ },
+ "roll_setup": {
+ "$ref": "#/properties/proposed_condition_edits/items/properties/current/properties/roll_setup"
+ },
+ "waste_pct": {
+ "$ref": "#/properties/proposed_condition_edits/items/properties/current/properties/waste_pct"
+ }
+ },
+ "type": "object"
+ },
+ "proposed_at": {
+ "type": "string"
+ },
+ "rationale": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "proposal_id",
+ "condition",
+ "condition_id",
+ "current",
+ "proposed",
+ "rationale",
+ "proposed_at"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+}
addedOutput schema / properties / shared_floor_sf
Added value: +{
+ "description": "Scope collision (#366): floor claimed by more than one shape across the whole takeoff, counted once per cell (Σ areas − union), in SF through each sheet's scale. Has to read 0 before a total means anything — scope_duplicates names the pairs",
+ "type": "number"
+}
addedOutput schema / properties / shared_floor_unmeasured
Added value: +{
+ "description": "Floor shapes the collision check could not measure (unscaled sheet, degenerate ring) — left OUT of shared_floor_sf rather than counted as zero; present only when any",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "reason": {
+ "type": "string"
+ },
+ "shape_id": {
+ "type": "string"
+ },
+ "sheet_id": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "shape_id",
+ "sheet_id",
+ "reason"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+}
changedOutput schema / required
Previous value: -[
- "conditions",
- "totals"
-]New value: +[
+ "conditions",
+ "totals",
+ "shared_floor_sf"
+]