removedInput schema / additionalProperties
Removed value: -false
addedInput schema / properties / line
Added value: +{
+ "description": "Which line material / labor price: omitted or the main line's unit = the main line; LF / EA / SF = the condition's other line of that kind (stored in pricing.by_unit)",
+ "enum": [
+ "SF",
+ "SY",
+ "LF",
+ "EA"
+ ],
+ "type": "string"
+}
removedInput schema / properties / materials / items / additionalProperties
Removed value: -false
changedInput schema / properties / unit / description
Previous value: -"Pricing unit (default: what was measured — area, then length, then count)"New value: +"The MAIN line's pricing unit (default: what was measured — area, then length, then count)"
changedOutput schema / properties / line / anyOf
Previous value: -[
- {
- "additionalProperties": true,
- "properties": {
- "finish_tag": {
- "type": "string"
- },
- "id": {
- "type": "string"
- },
- "labor_cost": {
- "type": "number"
- },
- "labor_qty": {
- "description": "Measured quantity in the unit — no waste",
- "type": "number"
- },
- "labor_rate": {
- "description": "$ per unit; null = never entered",
- "type": [
- "number",
- "null"
- ]
- },
- "material_cost": {
- "type": "number"
- },
- "material_qty": {
- "description": "Order quantity in the unit — waste applied (EA never carries waste)",
- "type": "number"
- },
- "material_rate": {
- "description": "$ per unit; null = never entered",
- "type": [
- "number",
- "null"
- ]
- },
- "materials": {
- "items": {
- "additionalProperties": true,
- "properties": {
- "cost": {
- "type": "number"
- },
- "name": {
- "type": "string"
- },
- "price": {
- "type": [
- "number",
- "null"
- ]
- },
- "priced": {
- "type": "boolean"
- },
- "qty": {
- "type": "number"
- },
- "unit": {
- "type": "string"
- }
- },
- "required": [
- "name",
- "unit",
- "qty",
- "price",
- "cost",
- "priced"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "materials_cost": {
- "type": "number"
- },
- "missing": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "status": {
- "enum": [
- "priced",
- "partial",
- "unpriced"
- ],
- "type": "string"
- },
- "total": {
- "type": "number"
- },
- "unit": {
- "enum": [
- "SF",
- "SY",
- "LF",
- "EA"
- ],
- "type": "string"
- }
- },
- "required": [
- "id",
- "finish_tag",
- "unit",
- "material_qty",
- "labor_qty",
- "material_rate",
- "labor_rate",
- "material_cost",
- "labor_cost",
- "materials",
- "materials_cost",
- "total",
- "status",
- "missing"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
-]New value: +[
+ {
+ "additionalProperties": {},
+ "properties": {
+ "finish_tag": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "key": {
+ "description": "\"<condition id>:<unit>\" — one line per quantity kind the condition carries",
+ "type": "string"
+ },
+ "labor_cost": {
+ "type": "number"
+ },
+ "labor_qty": {
+ "description": "Measured quantity in the unit — no waste",
+ "type": "number"
+ },
+ "labor_rate": {
+ "description": "$ per unit; null = never entered",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "main": {
+ "description": "The condition's first line: priced by pricing.unit / material / labor and carrying its assembly items; the others price from pricing.by_unit[unit]",
+ "type": "boolean"
+ },
+ "material_cost": {
+ "type": "number"
+ },
+ "material_qty": {
+ "description": "Order quantity in the unit — waste applied (EA never carries waste)",
+ "type": "number"
+ },
+ "material_rate": {
+ "description": "$ per unit; null = never entered",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "materials": {
+ "items": {
+ "additionalProperties": {},
+ "properties": {
+ "cost": {
+ "type": "number"
+ },
+ "name": {
+ "type": "string"
+ },
+ "price": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "priced": {
+ "type": "boolean"
+ },
+ "qty": {
+ "type": "number"
+ },
+ "unit": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "unit",
+ "qty",
+ "price",
+ "cost",
+ "priced"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "materials_cost": {
+ "type": "number"
+ },
+ "missing": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "optional": {
+ "description": "A bordered linear run's derived line: priceable, but an empty rate is carried in the main line, never missing",
+ "type": "boolean"
+ },
+ "status": {
+ "description": "optional = an optional line nobody priced (not in unpriced)",
+ "enum": [
+ "priced",
+ "partial",
+ "unpriced",
+ "optional"
+ ],
+ "type": "string"
+ },
+ "total": {
+ "type": "number"
+ },
+ "unit": {
+ "enum": [
+ "SF",
+ "SY",
+ "LF",
+ "EA"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "finish_tag",
+ "unit",
+ "material_qty",
+ "labor_qty",
+ "material_rate",
+ "labor_rate",
+ "material_cost",
+ "labor_cost",
+ "materials",
+ "materials_cost",
+ "total",
+ "status",
+ "missing"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+]
changedOutput schema / properties / line / description
Previous value: -"The condition's estimate line after this write; null while it has no committed shapes"New value: +"The line this call priced (the main line unless `line` named another), after the write; null while it has no committed quantity of that kind"
addedOutput schema / properties / lines
Added value: +{
+ "description": "Every estimate line of the condition, main first",
+ "items": {
+ "additionalProperties": {},
+ "properties": {
+ "finish_tag": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "key": {
+ "description": "\"<condition id>:<unit>\" — one line per quantity kind the condition carries",
+ "type": "string"
+ },
+ "labor_cost": {
+ "type": "number"
+ },
+ "labor_qty": {
+ "description": "Measured quantity in the unit — no waste",
+ "type": "number"
+ },
+ "labor_rate": {
+ "description": "$ per unit; null = never entered",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "main": {
+ "description": "The condition's first line: priced by pricing.unit / material / labor and carrying its assembly items; the others price from pricing.by_unit[unit]",
+ "type": "boolean"
+ },
+ "material_cost": {
+ "type": "number"
+ },
+ "material_qty": {
+ "description": "Order quantity in the unit — waste applied (EA never carries waste)",
+ "type": "number"
+ },
+ "material_rate": {
+ "description": "$ per unit; null = never entered",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "materials": {
+ "items": {
+ "additionalProperties": {},
+ "properties": {
+ "cost": {
+ "type": "number"
+ },
+ "name": {
+ "type": "string"
+ },
+ "price": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "priced": {
+ "type": "boolean"
+ },
+ "qty": {
+ "type": "number"
+ },
+ "unit": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "unit",
+ "qty",
+ "price",
+ "cost",
+ "priced"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "materials_cost": {
+ "type": "number"
+ },
+ "missing": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "optional": {
+ "description": "A bordered linear run's derived line: priceable, but an empty rate is carried in the main line, never missing",
+ "type": "boolean"
+ },
+ "status": {
+ "description": "optional = an optional line nobody priced (not in unpriced)",
+ "enum": [
+ "priced",
+ "partial",
+ "unpriced",
+ "optional"
+ ],
+ "type": "string"
+ },
+ "total": {
+ "type": "number"
+ },
+ "unit": {
+ "enum": [
+ "SF",
+ "SY",
+ "LF",
+ "EA"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "finish_tag",
+ "unit",
+ "material_qty",
+ "labor_qty",
+ "material_rate",
+ "labor_rate",
+ "material_cost",
+ "labor_cost",
+ "materials",
+ "materials_cost",
+ "total",
+ "status",
+ "missing"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+}
changedOutput schema / properties / material_prices / items / additionalProperties
Previous value: -trueNew value: +{}
changedOutput schema / properties / pricing / additionalProperties
Previous value: -trueNew value: +{}
addedOutput schema / properties / pricing / properties / by_unit
Added value: +{
+ "additionalProperties": {
+ "additionalProperties": {},
+ "properties": {
+ "labor": {
+ "type": "number"
+ },
+ "material": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "description": "The other lines' rates, keyed by their unit",
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+}
changedOutput schema / required
Previous value: -[
- "condition",
- "condition_id",
- "pricing",
- "material_prices",
- "line"
-]New value: +[
+ "condition",
+ "condition_id",
+ "pricing",
+ "material_prices",
+ "line",
+ "lines"
+]