changedOutput schema / anyOf
Previous value: -[
- {
- "properties": {
- "currency": {
- "type": "string"
- },
- "destination": {
- "properties": {
- "key": {
- "type": "string"
- },
- "slug": {
- "type": "string"
- },
- "title": {
- "properties": {
- "cs": {
- "type": "string"
- },
- "en": {
- "type": "string"
- }
- },
- "required": [
- "cs",
- "en"
- ],
- "type": "object"
- }
- },
- "required": [
- "key",
- "slug",
- "title"
- ],
- "type": "object"
- },
- "disclaimer": {
- "type": "string"
- },
- "generated": {
- "type": "string"
- },
- "license": {
- "properties": {
- "attribution": {
- "type": "string"
- },
- "id": {
- "type": "string"
- },
- "url": {
- "type": "string"
- }
- },
- "required": [
- "id",
- "url",
- "attribution"
- ],
- "type": "object"
- },
- "rails": {
- "items": {
- "properties": {
- "arrivals": {
- "description": "arrival airports RECORDED; covers_all_published_prices is false",
- "type": "object"
- },
- "latest_stale_after_days": {
- "description": "this rail's own freshness boundary, in days after measured.to",
- "type": "number"
- },
- "measured": {
- "properties": {
- "days": {
- "type": "integer"
- },
- "from": {
- "type": "string"
- },
- "to": {
- "type": "string"
- }
- },
- "required": [
- "days",
- "from",
- "to"
- ],
- "type": "object"
- },
- "origins": {
- "description": "departure-airport CLUSTER; covers_all_published_prices is false",
- "type": "object"
- },
- "party": {
- "properties": {
- "adults": {
- "type": "integer"
- },
- "children": {
- "type": "integer"
- }
- },
- "required": [
- "adults",
- "children"
- ],
- "type": "object"
- },
- "price_covers": {
- "description": "what the money buys - airfare only, or a package as offered",
- "type": "object"
- },
- "rail": {
- "enum": [
- "flight",
- "package"
- ],
- "type": "string"
- },
- "regime_breaks": {
- "description": "[from, to] date spans where the series was not comparable",
- "type": "array"
- },
- "resort": {
- "type": "string"
- },
- "resort_key": {
- "type": "string"
- },
- "searched": {
- "description": "the search mode (and fixed dates, where there are any) the series was collected under",
- "type": "object"
- },
- "stats": {
- "properties": {
- "basis": {
- "type": "string"
- },
- "cheaper_than_pct": {
- "type": [
- "number",
- "null"
- ]
- },
- "is_series_max": {
- "type": "boolean"
- },
- "is_series_min": {
- "type": "boolean"
- },
- "latest": {
- "type": [
- "number",
- "null"
- ]
- },
- "median": {
- "type": [
- "number",
- "null"
- ]
- },
- "min": {
- "type": [
- "number",
- "null"
- ]
- }
- },
- "required": [
- "basis"
- ],
- "type": "object"
- }
- },
- "required": [
- "rail",
- "party",
- "price_covers",
- "measured",
- "stats"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "resolved_from": {
- "description": "Present when the caller named a RESORT key; the answer is its parent destination.",
- "properties": {
- "asked": {
- "type": "string"
- },
- "resort": {
- "type": [
- "string",
- "null"
- ]
- },
- "resort_key": {
- "type": "string"
- }
- },
- "required": [
- "asked",
- "resort_key",
- "resort"
- ],
- "type": "object"
- },
- "schema": {
- "type": "string"
- },
- "url": {
- "type": "string"
- }
- },
- "required": [
- "schema",
- "generated",
- "destination",
- "url",
- "currency",
- "license",
- "rails",
- "disclaimer"
- ],
- "type": "object"
- },
- {
- "description": "tool-level failure, returned with isError: true",
- "properties": {
- "error": {
- "additionalProperties": true,
- "properties": {
- "code": {
- "type": "string"
- },
- "message": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message"
- ],
- "type": "object"
- }
- },
- "required": [
- "error"
- ],
- "type": "object"
- }
-]New value: +[
+ {
+ "properties": {
+ "country": {
+ "description": "the one country page this city belongs to, where the catalogue names exactly one",
+ "type": "string"
+ },
+ "currency": {
+ "type": "string"
+ },
+ "destination": {
+ "properties": {
+ "key": {
+ "type": "string"
+ },
+ "slug": {
+ "type": "string"
+ },
+ "title": {
+ "properties": {
+ "cs": {
+ "type": "string"
+ },
+ "en": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "cs",
+ "en"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "key",
+ "slug",
+ "title"
+ ],
+ "type": "object"
+ },
+ "disclaimer": {
+ "type": "string"
+ },
+ "generated": {
+ "type": "string"
+ },
+ "license": {
+ "properties": {
+ "attribution": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "url",
+ "attribution"
+ ],
+ "type": "object"
+ },
+ "other_parties_in_country": {
+ "description": "parties a `related` page publishes and this destination does not - e.g. a solo series on a city of this country",
+ "items": {
+ "properties": {
+ "destinations": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "party": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "party",
+ "destinations"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "rails": {
+ "items": {
+ "properties": {
+ "arrivals": {
+ "description": "arrival airports RECORDED; covers_all_published_prices is false",
+ "type": "object"
+ },
+ "latest_stale_after_days": {
+ "description": "this rail's own freshness boundary, in days after measured.to",
+ "type": "number"
+ },
+ "measured": {
+ "properties": {
+ "days": {
+ "type": "integer"
+ },
+ "from": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "days",
+ "from",
+ "to"
+ ],
+ "type": "object"
+ },
+ "origins": {
+ "description": "departure-airport CLUSTER; covers_all_published_prices is false",
+ "type": "object"
+ },
+ "party": {
+ "properties": {
+ "adults": {
+ "type": "integer"
+ },
+ "children": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "adults",
+ "children"
+ ],
+ "type": "object"
+ },
+ "price_covers": {
+ "description": "what the money buys - airfare only, or a package as offered",
+ "type": "object"
+ },
+ "rail": {
+ "enum": [
+ "flight",
+ "package"
+ ],
+ "type": "string"
+ },
+ "regime_breaks": {
+ "description": "[from, to] date spans where the series was not comparable",
+ "type": "array"
+ },
+ "resort": {
+ "type": "string"
+ },
+ "resort_key": {
+ "type": "string"
+ },
+ "searched": {
+ "description": "the search mode (and fixed dates, where there are any) the series was collected under, and `stay_nights` {from, to}: how long a trip each point prices - the flight and package rails of one destination can differ",
+ "type": "object"
+ },
+ "stats": {
+ "properties": {
+ "basis": {
+ "type": "string"
+ },
+ "cheaper_than_pct": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "is_series_max": {
+ "type": "boolean"
+ },
+ "is_series_min": {
+ "type": "boolean"
+ },
+ "latest": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "median": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "min": {
+ "type": [
+ "number",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "basis"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "rail",
+ "party",
+ "price_covers",
+ "measured",
+ "stats"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "related": {
+ "description": "the other tracked pages in the same country (a country lists its cities); a party or rail missing here may exist on one of them",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "resolved_from": {
+ "description": "Present when the caller named a RESORT key; the answer is its parent destination.",
+ "properties": {
+ "asked": {
+ "type": "string"
+ },
+ "resort": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "resort_key": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "asked",
+ "resort_key",
+ "resort"
+ ],
+ "type": "object"
+ },
+ "same_airport_as": {
+ "description": "pages whose flight rail lands at an airport this one records - measured from a different departure cluster (see `origins`), so their numbers differ for a reason",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "schema": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "schema",
+ "generated",
+ "destination",
+ "url",
+ "currency",
+ "license",
+ "related",
+ "rails",
+ "disclaimer"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "tool-level failure, returned with isError: true",
+ "properties": {
+ "error": {
+ "additionalProperties": true,
+ "properties": {
+ "code": {
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "code",
+ "message"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "error"
+ ],
+ "type": "object"
+ }
+]