changedOutput schema / anyOf
Previous value: -[
- {
- "properties": {
- "calculator": {
- "properties": {
- "category": {
- "type": "string"
- },
- "description": {
- "type": "string"
- },
- "json": {
- "description": "The calculator's static API document, with its test vectors.",
- "type": "string"
- },
- "lastVerified": {
- "description": "The date the calculator's sources were last checked.",
- "type": "string"
- },
- "slug": {
- "type": "string"
- },
- "title": {
- "type": "string"
- },
- "url": {
- "description": "The calculator's page on craftquantities.com.",
- "type": "string"
- },
- "version": {
- "description": "The calculator's own version; a result names the calculator that produced it.",
- "type": "string"
- }
- },
- "required": [
- "slug",
- "title",
- "category",
- "version",
- "lastVerified",
- "url",
- "json"
- ],
- "type": "object"
- },
- "citation": {
- "properties": {
- "accessDate": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- },
- "author": {
- "type": "string"
- },
- "formats": {
- "properties": {
- "apa": {
- "type": "string"
- },
- "bibtex": {
- "type": "string"
- },
- "harvard": {
- "type": "string"
- },
- "plain": {
- "type": "string"
- }
- },
- "required": [
- "plain",
- "apa",
- "harvard",
- "bibtex"
- ],
- "type": "object"
- },
- "sourcesChecked": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- },
- "title": {
- "type": "string"
- },
- "url": {
- "type": "string"
- },
- "version": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- }
- },
- "required": [
- "author",
- "title",
- "url",
- "formats",
- "accessDate"
- ],
- "type": "object"
- },
- "engine": {
- "properties": {
- "api": {
- "type": "string"
- },
- "name": {
- "type": "string"
- },
- "version": {
- "type": "string"
- }
- },
- "required": [
- "name",
- "version",
- "api"
- ],
- "type": "object"
- },
- "inputs": {
- "description": "Every input the calculation ran on, and where each came from.",
- "items": {
- "properties": {
- "baseUnit": {
- "type": "string"
- },
- "dimension": {
- "type": "string"
- },
- "id": {
- "type": "string"
- },
- "imperial": {
- "properties": {
- "unit": {
- "type": "string"
- },
- "value": {
- "type": "number"
- }
- },
- "required": [
- "value",
- "unit"
- ],
- "type": "object"
- },
- "label": {
- "type": "string"
- },
- "metric": {
- "properties": {
- "unit": {
- "type": "string"
- },
- "value": {
- "type": "number"
- }
- },
- "required": [
- "value",
- "unit"
- ],
- "type": "object"
- },
- "option": {
- "type": "string"
- },
- "read": {
- "type": "string"
- },
- "source": {
- "enum": [
- "caller",
- "default"
- ]
- },
- "type": {
- "enum": [
- "number",
- "select"
- ]
- },
- "value": {
- "type": [
- "number",
- "string"
- ]
- }
- },
- "required": [
- "id",
- "label",
- "type",
- "value",
- "source"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "licence": {
- "properties": {
- "attribution": {
- "type": "string"
- },
- "name": {
- "type": "string"
- },
- "url": {
- "type": "string"
- }
- },
- "required": [
- "name",
- "url",
- "attribution"
- ],
- "type": "object"
- },
- "links": {
- "properties": {
- "open": {
- "description": "Opens the page on these inputs.",
- "type": "string"
- },
- "page": {
- "type": "string"
- }
- },
- "required": [
- "page",
- "open"
- ],
- "type": "object"
- },
- "market": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- },
- "notice": {
- "type": "string"
- },
- "result": {
- "properties": {
- "imperial": {
- "properties": {
- "allowance": {
- "anyOf": [
- {
- "properties": {
- "base": {
- "type": "number"
- },
- "label": {
- "type": "string"
- },
- "percent": {
- "type": "number"
- }
- },
- "type": "object"
- },
- {
- "type": "null"
- }
- ]
- },
- "breakdown": {
- "items": {
- "properties": {
- "label": {
- "type": "string"
- },
- "printed": {
- "type": "string"
- },
- "unit": {
- "type": "string"
- },
- "value": {
- "anyOf": [
- {
- "type": "number"
- },
- {
- "type": "null"
- }
- ]
- }
- },
- "required": [
- "label",
- "value",
- "unit",
- "printed"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "canonical": {
- "description": "The figure in the calculator's own unit, before the display adapter: what its test vectors pin.",
- "properties": {
- "unit": {
- "type": "string"
- },
- "value": {
- "anyOf": [
- {
- "type": "number"
- },
- {
- "type": "null"
- }
- ]
- }
- },
- "required": [
- "value",
- "unit"
- ],
- "type": "object"
- },
- "confidence": {
- "enum": [
- "high",
- "medium",
- "low"
- ]
- },
- "confidenceNote": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- },
- "isComparison": {
- "description": "The figure is set against a limit. It is not an approval.",
- "type": "boolean"
- },
- "limitations": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "printed": {
- "anyOf": [
- {
- "description": "The headline exactly as the page prints it.",
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- },
- "unit": {
- "type": "string"
- },
- "value": {
- "anyOf": [
- {
- "description": "The headline in this system; null where a rate it needs is not given.",
- "type": "number"
- },
- {
- "type": "null"
- }
- ]
- },
- "withheld": {
- "anyOf": [
- {
- "properties": {
- "missingRates": {
- "items": {
- "properties": {
- "input": {
- "type": "string"
- },
- "label": {
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- }
- },
- "type": "object"
- },
- {
- "type": "null"
- }
- ]
- }
- },
- "required": [
- "value",
- "unit",
- "printed",
- "breakdown",
- "confidence",
- "isComparison",
- "canonical"
- ],
- "type": "object"
- },
- "label": {
- "type": "string"
- },
- "metric": {
- "properties": {
- "allowance": {
- "anyOf": [
- {
- "properties": {
- "base": {
- "type": "number"
- },
- "label": {
- "type": "string"
- },
- "percent": {
- "type": "number"
- }
- },
- "type": "object"
- },
- {
- "type": "null"
- }
- ]
- },
- "breakdown": {
- "items": {
- "properties": {
- "label": {
- "type": "string"
- },
- "printed": {
- "type": "string"
- },
- "unit": {
- "type": "string"
- },
- "value": {
- "anyOf": [
- {
- "type": "number"
- },
- {
- "type": "null"
- }
- ]
- }
- },
- "required": [
- "label",
- "value",
- "unit",
- "printed"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "canonical": {
- "description": "The figure in the calculator's own unit, before the display adapter: what its test vectors pin.",
- "properties": {
- "unit": {
- "type": "string"
- },
- "value": {
- "anyOf": [
- {
- "type": "number"
- },
- {
- "type": "null"
- }
- ]
- }
- },
- "required": [
- "value",
- "unit"
- ],
- "type": "object"
- },
- "confidence": {
- "enum": [
- "high",
- "medium",
- "low"
- ]
- },
- "confidenceNote": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- },
- "isComparison": {
- "description": "The figure is set against a limit. It is not an approval.",
- "type": "boolean"
- },
- "limitations": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "printed": {
- "anyOf": [
- {
- "description": "The headline exactly as the page prints it.",
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- },
- "unit": {
- "type": "string"
- },
- "value": {
- "anyOf": [
- {
- "description": "The headline in this system; null where a rate it needs is not given.",
- "type": "number"
- },
- {
- "type": "null"
- }
- ]
- },
- "withheld": {
- "anyOf": [
- {
- "properties": {
- "missingRates": {
- "items": {
- "properties": {
- "input": {
- "type": "string"
- },
- "label": {
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- }
- },
- "type": "object"
- },
- {
- "type": "null"
- }
- ]
- }
- },
- "required": [
- "value",
- "unit",
- "printed",
- "breakdown",
- "confidence",
- "isComparison",
- "canonical"
- ],
- "type": "object"
- }
- },
- "required": [
- "label",
- "metric",
- "imperial"
- ],
- "type": "object"
- },
- "sources": {
- "items": {
- "properties": {
- "label": {
- "description": "The source as the calculator cites it.",
- "type": "string"
- },
- "references": {
- "items": {
- "properties": {
- "body": {
- "type": "string"
- },
- "document": {
- "type": "string"
- },
- "edition": {
- "type": "string"
- },
- "kind": {
- "enum": [
- "code",
- "standard"
- ]
- },
- "section": {
- "type": "string"
- }
- },
- "required": [
- "kind",
- "document"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "url": {
- "description": "Only where the calculator gives one; none is invented.",
- "type": "string"
- }
- },
- "required": [
- "label"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "system": {
- "enum": [
- "metric",
- "imperial"
- ]
- }
- },
- "required": [
- "engine",
- "calculator",
- "system",
- "inputs",
- "result",
- "sources",
- "citation",
- "links",
- "licence",
- "notice"
- ],
- "type": "object"
- },
- {
- "properties": {
- "citation": {
- "description": "The one citation line, built from the answer's own data.",
- "type": "string"
- },
- "detail": {
- "const": "summary"
- },
- "lines": {
- "description": "The result lines, as the report's table gives them.",
- "items": {
- "additionalProperties": {
- "type": "string"
- },
- "type": "object"
- },
- "type": "array"
- },
- "more": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- },
- "notes": {
- "description": "What a professional must decide, when to call one, a false-friend warning, that adoption is local: kept in every summary.",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "open": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- },
- "title": {
- "type": "string"
- },
- "tool": {
- "type": "string"
- },
- "url": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- }
- },
- "required": [
- "detail",
- "tool",
- "title",
- "lines",
- "notes",
- "citation",
- "url",
- "open",
- "more"
- ],
- "type": "object"
- }
-]New value: +[
+ {
+ "properties": {
+ "calculator": {
+ "properties": {
+ "category": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "json": {
+ "description": "The calculator's static API document, with its test vectors.",
+ "type": "string"
+ },
+ "lastVerified": {
+ "description": "The date the calculator's sources were last checked.",
+ "type": "string"
+ },
+ "slug": {
+ "type": "string"
+ },
+ "title": {
+ "type": "string"
+ },
+ "url": {
+ "description": "The calculator's page on craftquantities.com.",
+ "type": "string"
+ },
+ "version": {
+ "description": "The calculator's own version; a result names the calculator that produced it.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "slug",
+ "title",
+ "category",
+ "version",
+ "lastVerified",
+ "url",
+ "json"
+ ],
+ "type": "object"
+ },
+ "citation": {
+ "properties": {
+ "accessDate": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "author": {
+ "type": "string"
+ },
+ "formats": {
+ "properties": {
+ "apa": {
+ "type": "string"
+ },
+ "bibtex": {
+ "type": "string"
+ },
+ "harvard": {
+ "type": "string"
+ },
+ "plain": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "plain",
+ "apa",
+ "harvard",
+ "bibtex"
+ ],
+ "type": "object"
+ },
+ "sourcesChecked": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "title": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ },
+ "version": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "author",
+ "title",
+ "url",
+ "formats",
+ "accessDate"
+ ],
+ "type": "object"
+ },
+ "engine": {
+ "properties": {
+ "api": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "version",
+ "api"
+ ],
+ "type": "object"
+ },
+ "explain": {
+ "description": "Only when explain is true. Each figure is the calculator's own; no step is a formula written for the engine.",
+ "properties": {
+ "about": {
+ "type": "string"
+ },
+ "coverage": {
+ "description": "result-only: the calculator reports no figures between its inputs and its result.",
+ "enum": [
+ "intermediates",
+ "result-only"
+ ]
+ },
+ "final": {
+ "description": "The figures the answer returns, copied from it.",
+ "properties": {
+ "imperial": {
+ "properties": {
+ "printed": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "unit": {
+ "type": "string"
+ },
+ "value": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "value",
+ "unit",
+ "printed"
+ ],
+ "type": "object"
+ },
+ "metric": {
+ "properties": {
+ "printed": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "unit": {
+ "type": "string"
+ },
+ "value": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "value",
+ "unit",
+ "printed"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "metric",
+ "imperial"
+ ],
+ "type": "object"
+ },
+ "limits": {
+ "description": "What the trace does not show, and why.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "steps": {
+ "items": {
+ "properties": {
+ "imperial": {
+ "properties": {
+ "unit": {
+ "type": "string"
+ },
+ "value": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "value",
+ "unit"
+ ],
+ "type": "object"
+ },
+ "kind": {
+ "enum": [
+ "input",
+ "intermediate",
+ "result",
+ "allowance",
+ "range",
+ "rates",
+ "display"
+ ]
+ },
+ "label": {
+ "type": "string"
+ },
+ "metric": {
+ "properties": {
+ "unit": {
+ "type": "string"
+ },
+ "value": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "value",
+ "unit"
+ ],
+ "type": "object"
+ },
+ "movedBy": {
+ "description": "Input ids whose change moved this figure, measured by running compute again.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "n": {
+ "type": "integer"
+ },
+ "source": {
+ "enum": [
+ "caller",
+ "default"
+ ]
+ },
+ "system": {
+ "enum": [
+ "metric",
+ "imperial",
+ "both"
+ ]
+ },
+ "text": {
+ "description": "The step in words.",
+ "type": "string"
+ },
+ "unit": {
+ "description": "The calculator's own (base) unit for the value.",
+ "type": "string"
+ },
+ "value": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "n",
+ "kind",
+ "system",
+ "label",
+ "text"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "about",
+ "coverage",
+ "steps",
+ "final",
+ "limits"
+ ],
+ "type": "object"
+ },
+ "inputs": {
+ "description": "Every input the calculation ran on, and where each came from.",
+ "items": {
+ "properties": {
+ "baseUnit": {
+ "type": "string"
+ },
+ "dimension": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "imperial": {
+ "properties": {
+ "unit": {
+ "type": "string"
+ },
+ "value": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "value",
+ "unit"
+ ],
+ "type": "object"
+ },
+ "label": {
+ "type": "string"
+ },
+ "metric": {
+ "properties": {
+ "unit": {
+ "type": "string"
+ },
+ "value": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "value",
+ "unit"
+ ],
+ "type": "object"
+ },
+ "option": {
+ "type": "string"
+ },
+ "read": {
+ "type": "string"
+ },
+ "source": {
+ "enum": [
+ "caller",
+ "default"
+ ]
+ },
+ "type": {
+ "enum": [
+ "number",
+ "select"
+ ]
+ },
+ "value": {
+ "type": [
+ "number",
+ "string"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "label",
+ "type",
+ "value",
+ "source"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "licence": {
+ "properties": {
+ "attribution": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "url",
+ "attribution"
+ ],
+ "type": "object"
+ },
+ "links": {
+ "properties": {
+ "open": {
+ "description": "Opens the page on these inputs.",
+ "type": "string"
+ },
+ "page": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "page",
+ "open"
+ ],
+ "type": "object"
+ },
+ "market": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "notice": {
+ "type": "string"
+ },
+ "result": {
+ "properties": {
+ "imperial": {
+ "properties": {
+ "allowance": {
+ "anyOf": [
+ {
+ "properties": {
+ "base": {
+ "type": "number"
+ },
+ "label": {
+ "type": "string"
+ },
+ "percent": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "breakdown": {
+ "items": {
+ "properties": {
+ "label": {
+ "type": "string"
+ },
+ "printed": {
+ "type": "string"
+ },
+ "unit": {
+ "type": "string"
+ },
+ "value": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "label",
+ "value",
+ "unit",
+ "printed"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "canonical": {
+ "description": "The figure in the calculator's own unit, before the display adapter: what its test vectors pin.",
+ "properties": {
+ "unit": {
+ "type": "string"
+ },
+ "value": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "value",
+ "unit"
+ ],
+ "type": "object"
+ },
+ "confidence": {
+ "enum": [
+ "high",
+ "medium",
+ "low"
+ ]
+ },
+ "confidenceNote": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "isComparison": {
+ "description": "The figure is set against a limit. It is not an approval.",
+ "type": "boolean"
+ },
+ "limitations": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "printed": {
+ "anyOf": [
+ {
+ "description": "The headline exactly as the page prints it.",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "unit": {
+ "type": "string"
+ },
+ "value": {
+ "anyOf": [
+ {
+ "description": "The headline in this system; null where a rate it needs is not given.",
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "withheld": {
+ "anyOf": [
+ {
+ "properties": {
+ "missingRates": {
+ "items": {
+ "properties": {
+ "input": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "value",
+ "unit",
+ "printed",
+ "breakdown",
+ "confidence",
+ "isComparison",
+ "canonical"
+ ],
+ "type": "object"
+ },
+ "label": {
+ "type": "string"
+ },
+ "metric": {
+ "properties": {
+ "allowance": {
+ "anyOf": [
+ {
+ "properties": {
+ "base": {
+ "type": "number"
+ },
+ "label": {
+ "type": "string"
+ },
+ "percent": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "breakdown": {
+ "items": {
+ "properties": {
+ "label": {
+ "type": "string"
+ },
+ "printed": {
+ "type": "string"
+ },
+ "unit": {
+ "type": "string"
+ },
+ "value": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "label",
+ "value",
+ "unit",
+ "printed"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "canonical": {
+ "description": "The figure in the calculator's own unit, before the display adapter: what its test vectors pin.",
+ "properties": {
+ "unit": {
+ "type": "string"
+ },
+ "value": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "value",
+ "unit"
+ ],
+ "type": "object"
+ },
+ "confidence": {
+ "enum": [
+ "high",
+ "medium",
+ "low"
+ ]
+ },
+ "confidenceNote": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "isComparison": {
+ "description": "The figure is set against a limit. It is not an approval.",
+ "type": "boolean"
+ },
+ "limitations": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "printed": {
+ "anyOf": [
+ {
+ "description": "The headline exactly as the page prints it.",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "unit": {
+ "type": "string"
+ },
+ "value": {
+ "anyOf": [
+ {
+ "description": "The headline in this system; null where a rate it needs is not given.",
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "withheld": {
+ "anyOf": [
+ {
+ "properties": {
+ "missingRates": {
+ "items": {
+ "properties": {
+ "input": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "value",
+ "unit",
+ "printed",
+ "breakdown",
+ "confidence",
+ "isComparison",
+ "canonical"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "label",
+ "metric",
+ "imperial"
+ ],
+ "type": "object"
+ },
+ "sources": {
+ "items": {
+ "properties": {
+ "label": {
+ "description": "The source as the calculator cites it.",
+ "type": "string"
+ },
+ "references": {
+ "items": {
+ "properties": {
+ "body": {
+ "type": "string"
+ },
+ "document": {
+ "type": "string"
+ },
+ "edition": {
+ "type": "string"
+ },
+ "kind": {
+ "enum": [
+ "code",
+ "standard"
+ ]
+ },
+ "section": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "document"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "url": {
+ "description": "Only where the calculator gives one; none is invented.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "label"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "system": {
+ "enum": [
+ "metric",
+ "imperial"
+ ]
+ }
+ },
+ "required": [
+ "engine",
+ "calculator",
+ "system",
+ "inputs",
+ "result",
+ "sources",
+ "citation",
+ "links",
+ "licence",
+ "notice"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "citation": {
+ "description": "The one citation line, built from the answer's own data.",
+ "type": "string"
+ },
+ "detail": {
+ "const": "summary"
+ },
+ "lines": {
+ "description": "The result lines, as the report's table gives them.",
+ "items": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "more": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "notes": {
+ "description": "What a professional must decide, when to call one, a false-friend warning, that adoption is local: kept in every summary.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "open": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "title": {
+ "type": "string"
+ },
+ "tool": {
+ "type": "string"
+ },
+ "url": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "detail",
+ "tool",
+ "title",
+ "lines",
+ "notes",
+ "citation",
+ "url",
+ "open",
+ "more"
+ ],
+ "type": "object"
+ }
+]