changedOutput schema / anyOf
Previous value: -[
- {
- "properties": {
- "comparison": {
- "items": {
- "properties": {
- "arrivals": {
- "description": "arrival airports RECORDED; covers_all_published_prices is false",
- "type": "object"
- },
- "destination": {
- "type": "string"
- },
- "generated": {
- "type": "string"
- },
- "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"
- },
- "title": {
- "properties": {
- "cs": {
- "type": "string"
- },
- "en": {
- "type": "string"
- }
- },
- "required": [
- "cs",
- "en"
- ],
- "type": "object"
- },
- "url": {
- "type": "string"
- }
- },
- "required": [
- "destination",
- "title",
- "url",
- "generated",
- "rail",
- "party",
- "price_covers",
- "measured",
- "stats"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "comparison_rows": {
- "description": "rows, not destinations - a dual-rail destination contributes two",
- "type": "integer"
- },
- "currency": {
- "type": "string"
- },
- "disclaimer": {
- "type": "string"
- },
- "excluded": {
- "items": {
- "properties": {
- "destination": {
- "type": "string"
- },
- "generated": {
- "type": "string"
- },
- "measured": {
- "properties": {
- "days": {
- "type": "integer"
- },
- "from": {
- "type": "string"
- },
- "to": {
- "type": "string"
- }
- },
- "required": [
- "days",
- "from",
- "to"
- ],
- "type": "object"
- },
- "party": {
- "type": "string"
- },
- "rail": {
- "enum": [
- "flight",
- "package",
- "both"
- ],
- "type": "string"
- },
- "reason": {
- "type": "string"
- },
- "resort_key": {
- "type": "string"
- }
- },
- "required": [
- "destination",
- "reason"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "generated": {
- "description": "the OLDEST `generated` among the rows and dated exclusions",
- "type": [
- "string",
- "null"
- ]
- },
- "license": {
- "properties": {
- "attribution": {
- "type": "string"
- },
- "id": {
- "type": "string"
- },
- "url": {
- "type": "string"
- }
- },
- "required": [
- "id",
- "url",
- "attribution"
- ],
- "type": "object"
- },
- "min_history_days": {
- "type": "integer"
- },
- "party": {
- "type": "string"
- },
- "rail": {
- "enum": [
- "flight",
- "package",
- "both"
- ],
- "type": "string"
- },
- "schema": {
- "type": "string"
- }
- },
- "required": [
- "schema",
- "generated",
- "party",
- "rail",
- "min_history_days",
- "comparison_rows",
- "comparison",
- "excluded",
- "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": {
+ "comparison": {
+ "items": {
+ "properties": {
+ "arrivals": {
+ "description": "arrival airports RECORDED; covers_all_published_prices is false",
+ "type": "object"
+ },
+ "destination": {
+ "type": "string"
+ },
+ "generated": {
+ "type": "string"
+ },
+ "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"
+ },
+ "title": {
+ "properties": {
+ "cs": {
+ "type": "string"
+ },
+ "en": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "cs",
+ "en"
+ ],
+ "type": "object"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "destination",
+ "title",
+ "url",
+ "generated",
+ "rail",
+ "party",
+ "price_covers",
+ "measured",
+ "stats"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "comparison_rows": {
+ "description": "rows, not destinations - a dual-rail destination contributes two",
+ "type": "integer"
+ },
+ "currency": {
+ "type": "string"
+ },
+ "disclaimer": {
+ "type": "string"
+ },
+ "excluded": {
+ "items": {
+ "properties": {
+ "available_in_country": {
+ "description": "on `no_rail_for_selection`: pages in the same country that do publish the party asked",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "available_parties": {
+ "description": "on `no_rail_for_selection`: the parties this destination does publish for the rail asked",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "destination": {
+ "type": "string"
+ },
+ "generated": {
+ "type": "string"
+ },
+ "measured": {
+ "properties": {
+ "days": {
+ "type": "integer"
+ },
+ "from": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "days",
+ "from",
+ "to"
+ ],
+ "type": "object"
+ },
+ "party": {
+ "type": "string"
+ },
+ "rail": {
+ "enum": [
+ "flight",
+ "package",
+ "both"
+ ],
+ "type": "string"
+ },
+ "reason": {
+ "type": "string"
+ },
+ "resort_key": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "destination",
+ "reason"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "generated": {
+ "description": "the OLDEST `generated` among the rows and dated exclusions",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "license": {
+ "properties": {
+ "attribution": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "url",
+ "attribution"
+ ],
+ "type": "object"
+ },
+ "min_history_days": {
+ "type": "integer"
+ },
+ "no_coverage": {
+ "description": "present only when NO published rail carries the requested party: a coverage limit, distinct from an empty ranking",
+ "properties": {
+ "available_parties": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "message": {
+ "type": "string"
+ },
+ "party": {
+ "type": "string"
+ },
+ "rail": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "party",
+ "rail",
+ "available_parties",
+ "message"
+ ],
+ "type": "object"
+ },
+ "party": {
+ "type": "string"
+ },
+ "rail": {
+ "enum": [
+ "flight",
+ "package",
+ "both"
+ ],
+ "type": "string"
+ },
+ "schema": {
+ "type": "string"
+ },
+ "stay_comparison": {
+ "description": "per destination with both a flight and a package row: the trip length each series prices, and whether the two ranges overlap (`stay_comparable`); a `note` when they do not",
+ "items": {
+ "properties": {
+ "destination": {
+ "type": "string"
+ },
+ "flight_stay_nights": {
+ "type": "object"
+ },
+ "note": {
+ "type": "string"
+ },
+ "package_stay_nights": {
+ "type": "object"
+ },
+ "resort_key": {
+ "type": "string"
+ },
+ "stay_comparable": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "destination",
+ "flight_stay_nights",
+ "package_stay_nights",
+ "stay_comparable"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "schema",
+ "generated",
+ "party",
+ "rail",
+ "min_history_days",
+ "comparison_rows",
+ "comparison",
+ "excluded",
+ "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"
+ }
+]