changedOutput schema / properties / feature / anyOf
Previous value: -[
- {
- "additionalProperties": true,
- "properties": {
- "address_components": {
- "additionalProperties": false,
- "description": "The same US components the formatted string is built from. Every field is source-established or absent; nothing is inferred or back-filled.",
- "properties": {
- "country_code": {
- "type": "string"
- },
- "house_number": {
- "type": "string"
- },
- "locality": {
- "type": "string"
- },
- "postal_code": {
- "type": "string"
- },
- "region_code": {
- "type": "string"
- },
- "region_name": {
- "type": "string"
- },
- "street": {
- "type": "string"
- },
- "unit": {
- "type": "string"
- }
- },
- "type": "object"
- },
- "address_evidence": {
- "additionalProperties": false,
- "description": "What THIS CANDIDATE carries, component by component — `matched` (a real value is present), `partial` (only a coarser or derived stand-in, e.g. an interpolated house number or a locality falling back to its administrative parent), `absent` (nothing). This describes the result, NOT a comparison against your query: the engine returns no per-component match data, and re-parsing your text here would mean two parsers disagreeing about the same string. Derived from the feature, never from `confidence`.",
- "properties": {
- "house_number": {
- "enum": [
- "matched",
- "partial",
- "absent"
- ],
- "type": "string"
- },
- "locality": {
- "$ref": "#/properties/feature/anyOf/0/properties/address_evidence/properties/house_number"
- },
- "postal_code": {
- "description": "Whether the candidate carries a postal code. Presence only — this states what the result has, and makes no claim about its correctness.",
- "enum": [
- "matched",
- "partial",
- "absent"
- ],
- "type": "string"
- },
- "region": {
- "$ref": "#/properties/feature/anyOf/0/properties/address_evidence/properties/house_number"
- },
- "street": {
- "$ref": "#/properties/feature/anyOf/0/properties/address_evidence/properties/house_number"
- }
- },
- "required": [
- "house_number",
- "street",
- "locality",
- "region",
- "postal_code"
- ],
- "type": "object"
- },
- "address_line1": {
- "description": "House number and street for an eligible US address result, composed from the result's own components — never parsed from the display label. Absent when the result is not a US street address.",
- "type": "string"
- },
- "address_line2": {
- "description": "Unit or suite, only when the source record carries one. A unit supplied in your request is never echoed back here.",
- "type": "string"
- },
- "confidence": {
- "type": "number"
- },
- "confidence_scope": {
- "const": "query_to_candidate",
- "description": "What `confidence` is scoped to. `query_to_candidate` means it scores how well this candidate matches the submitted query — it is NOT a probability that the place is real, that the address is correct, or that mail would arrive. Fixed value today; treat it as a closed set that may gain members.",
- "type": "string"
- },
- "cross_street_kind": {
- "enum": [
- "street",
- "route"
- ],
- "type": "string"
- },
- "cross_street_route": {
- "maxLength": 128,
- "minLength": 1,
- "type": "string"
- },
- "formatted_address": {
- "description": "Single-line US display form, e.g. `1600 Pennsylvania Avenue NW, Washington, DC 20500, USA`. The postal segment is present only when an eligible ZIP is; its absence never suppresses the street address.",
- "type": "string"
- },
- "id": {
- "type": "string"
- },
- "intersection_precision": {
- "enum": [
- "geometric_crossing",
- "tangent_intersection",
- "centroid_cluster",
- "approximate"
- ],
- "type": "string"
- },
- "intersection_type": {
- "enum": [
- "corner",
- "interchange"
- ],
- "type": "string"
- },
- "label": {
- "type": "string"
- },
- "lat": {
- "type": "number"
- },
- "layer": {
- "type": "string"
- },
- "lon": {
- "type": "number"
- },
- "method": {
- "type": "string"
- },
- "name": {
- "type": "string"
- },
- "place_type": {
- "type": "string"
- },
- "postal_code": {
- "description": "An eligible US ZIP5 normalized from the selected native result's available postal-code field; direct address-record origin is not yet guaranteed. Not checked against any postal operator's records, so a syntactically correct value can still be wrong for the address. Omitted when unavailable or unsuitable for five-digit form. US address results only. Distinct from `address_evidence.postal_code`, which is a presence STATUS rather than a value. On reverse geocoding this describes the RETURNED ADDRESS — it is not a postal assignment to the coordinate you supplied.",
- "pattern": "^[0-9]{5}$",
- "type": "string"
- },
- "postal_input_match": {
- "description": "STRUCTURED GEOCODING ONLY (`geocode_structured` / `POST /v1/search/structured`); absent from free-text geocoding. Whether the postcode YOU SUBMITTED agrees with this candidate's own postcode — `match` (same five-digit value), `conflict` (they differ), `unavailable` (no comparison was possible). This compares two values already in hand: no lookup, no external reference, and your query text is never parsed to find one. `conflict` does NOT say which side is wrong — your input may name a neighbouring area, the candidate may be a near-miss, or the record's own value may be stale; treat it as a prompt to ask a human, never as a correction to apply automatically. The candidate side counts only when its postcode came from the address record itself; one inherited from a parent area yields `unavailable` rather than a misleading verdict. `unavailable` also covers: nothing submitted, a submitted value not readable as a US five-digit code, and results cached before this field existed.",
- "enum": [
- "match",
- "conflict",
- "unavailable"
- ],
- "type": "string"
- },
- "street_kind": {
- "enum": [
- "street",
- "route"
- ],
- "type": "string"
- },
- "street_route": {
- "maxLength": 128,
- "minLength": 1,
- "type": "string"
- }
- },
- "type": "object"
- },
- {
- "type": "null"
- }
-]New value: +[
+ {
+ "additionalProperties": true,
+ "properties": {
+ "address_components": {
+ "additionalProperties": false,
+ "description": "The same US components the formatted string is built from. Every field is source-established or absent; nothing is inferred or back-filled.",
+ "properties": {
+ "country_code": {
+ "type": "string"
+ },
+ "house_number": {
+ "type": "string"
+ },
+ "locality": {
+ "type": "string"
+ },
+ "postal_code": {
+ "type": "string"
+ },
+ "region_code": {
+ "type": "string"
+ },
+ "region_name": {
+ "type": "string"
+ },
+ "street": {
+ "type": "string"
+ },
+ "unit": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "address_evidence": {
+ "additionalProperties": false,
+ "description": "What THIS CANDIDATE carries, component by component — `matched` (a real value is present), `partial` (only a coarser or derived stand-in, e.g. an interpolated house number or a locality falling back to its administrative parent), `absent` (nothing). This describes the result, NOT a comparison against your query: the engine returns no per-component match data, and re-parsing your text here would mean two parsers disagreeing about the same string. Derived from the feature, never from `confidence`.",
+ "properties": {
+ "house_number": {
+ "enum": [
+ "matched",
+ "partial",
+ "absent"
+ ],
+ "type": "string"
+ },
+ "locality": {
+ "$ref": "#/properties/feature/anyOf/0/properties/address_evidence/properties/house_number"
+ },
+ "postal_code": {
+ "description": "Whether the candidate carries a postal code. Presence only — this states what the result has, and makes no claim about its correctness.",
+ "enum": [
+ "matched",
+ "partial",
+ "absent"
+ ],
+ "type": "string"
+ },
+ "region": {
+ "$ref": "#/properties/feature/anyOf/0/properties/address_evidence/properties/house_number"
+ },
+ "street": {
+ "$ref": "#/properties/feature/anyOf/0/properties/address_evidence/properties/house_number"
+ }
+ },
+ "required": [
+ "house_number",
+ "street",
+ "locality",
+ "region",
+ "postal_code"
+ ],
+ "type": "object"
+ },
+ "address_line1": {
+ "description": "House number and street for an eligible US address result, composed from the result's own components — never parsed from the display label. Absent when the result is not a US street address.",
+ "type": "string"
+ },
+ "address_line2": {
+ "description": "Unit or suite, only when the source record carries one. A unit supplied in your request is never echoed back here.",
+ "type": "string"
+ },
+ "confidence": {
+ "type": "number"
+ },
+ "confidence_scope": {
+ "const": "query_to_candidate",
+ "description": "What `confidence` is scoped to. `query_to_candidate` means it scores how well this candidate matches the submitted query — it is NOT a probability that the place is real, that the address is correct, or that mail would arrive. Fixed value today; treat it as a closed set that may gain members.",
+ "type": "string"
+ },
+ "cross_street_kind": {
+ "enum": [
+ "street",
+ "route"
+ ],
+ "type": "string"
+ },
+ "cross_street_route": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "formatted_address": {
+ "description": "Single-line US display form, e.g. `1600 Pennsylvania Avenue NW, Washington, DC 20500, USA`. The postal segment is present only when an eligible ZIP is; its absence never suppresses the street address.",
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "intersection_precision": {
+ "enum": [
+ "geometric_crossing",
+ "tangent_intersection",
+ "centroid_cluster",
+ "approximate"
+ ],
+ "type": "string"
+ },
+ "intersection_type": {
+ "enum": [
+ "corner",
+ "interchange"
+ ],
+ "type": "string"
+ },
+ "label": {
+ "type": "string"
+ },
+ "lat": {
+ "type": "number"
+ },
+ "layer": {
+ "type": "string"
+ },
+ "lon": {
+ "type": "number"
+ },
+ "method": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "place_type": {
+ "type": "string"
+ },
+ "postal_code": {
+ "description": "An eligible US ZIP5 read from the selected result's own postal-code field. While origin enforcement is active this field is emitted ONLY when the engine stamped the value as coming from the address record itself (`source_record` provenance); a value inherited from a parent area, or a result cached before that evidence existed, is omitted rather than emitted without provenance — so an absent ZIP under enforcement means \"not proven for this record\", not \"no such ZIP\". Provenance describes only WHERE the value came from. It is not a postal operator check of any kind — no certification, no address-quality rating, and no statement about whether mail would arrive — so a syntactically correct, correctly-sourced value can still be wrong for the address. Also omitted when unavailable or unsuitable for five-digit form. US address results only. Distinct from `address_evidence.postal_code`, which is a presence STATUS rather than a value. On reverse geocoding this describes the RETURNED ADDRESS — it is not a postal assignment to the coordinate you supplied.",
+ "pattern": "^[0-9]{5}$",
+ "type": "string"
+ },
+ "postal_input_match": {
+ "description": "STRUCTURED GEOCODING ONLY (`geocode_structured` / `POST /v1/search/structured`); absent from free-text geocoding. Whether the postcode YOU SUBMITTED agrees with this candidate's own postcode — `match` (same five-digit value), `conflict` (they differ), `unavailable` (no comparison was possible). This compares two values already in hand: no lookup, no external reference, and your query text is never parsed to find one. `conflict` does NOT say which side is wrong — your input may name a neighbouring area, the candidate may be a near-miss, or the record's own value may be stale; treat it as a prompt to ask a human, never as a correction to apply automatically. The candidate side counts only when its postcode came from the address record itself; one inherited from a parent area yields `unavailable` rather than a misleading verdict. `unavailable` also covers: nothing submitted, a submitted value not readable as a US five-digit code, and results cached before this field existed.",
+ "enum": [
+ "match",
+ "conflict",
+ "unavailable"
+ ],
+ "type": "string"
+ },
+ "street_kind": {
+ "enum": [
+ "street",
+ "route"
+ ],
+ "type": "string"
+ },
+ "street_route": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+]