changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "anyOf": [
+ {
+ "properties": {
+ "currency": {
+ "type": "string"
+ },
+ "disclaimer": {
+ "type": "string"
+ },
+ "excluded": {
+ "items": {
+ "properties": {
+ "destination": {
+ "type": "string"
+ },
+ "history_days": {
+ "type": "integer"
+ },
+ "rail": {
+ "enum": [
+ "flight",
+ "package"
+ ],
+ "type": "string"
+ },
+ "reason": {
+ "type": "string"
+ },
+ "resort_key": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "destination",
+ "rail",
+ "reason",
+ "history_days"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "generated": {
+ "description": "the OLDEST `generated` among the rows returned",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "license": {
+ "properties": {
+ "attribution": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "url",
+ "attribution"
+ ],
+ "type": "object"
+ },
+ "matched": {
+ "description": "rows before the `limit` cap",
+ "type": "integer"
+ },
+ "min_history_days": {
+ "type": "integer"
+ },
+ "opportunities": {
+ "items": {
+ "properties": {
+ "cheaper_than_pct": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "destination": {
+ "type": "string"
+ },
+ "generated": {
+ "type": "string"
+ },
+ "history_days": {
+ "type": "integer"
+ },
+ "is_series_min": {
+ "type": "boolean"
+ },
+ "latest": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "latest_cheaper_than_pct_of_days": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "latest_stale_after_days": {
+ "type": "number"
+ },
+ "measured": {
+ "properties": {
+ "days": {
+ "type": "integer"
+ },
+ "from": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "days",
+ "from",
+ "to"
+ ],
+ "type": "object"
+ },
+ "median": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "min": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "party": {
+ "properties": {
+ "adults": {
+ "type": "integer"
+ },
+ "children": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "adults",
+ "children"
+ ],
+ "type": "object"
+ },
+ "rail": {
+ "enum": [
+ "flight",
+ "package"
+ ],
+ "type": "string"
+ },
+ "resort": {
+ "type": "string"
+ },
+ "resort_key": {
+ "type": "string"
+ },
+ "title": {
+ "properties": {
+ "cs": {
+ "type": "string"
+ },
+ "en": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "cs",
+ "en"
+ ],
+ "type": "object"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "destination",
+ "title",
+ "url",
+ "rail",
+ "party",
+ "latest",
+ "median",
+ "min",
+ "cheaper_than_pct",
+ "latest_cheaper_than_pct_of_days",
+ "is_series_min",
+ "history_days",
+ "measured",
+ "generated"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "schema": {
+ "type": "string"
+ },
+ "sort": {
+ "enum": [
+ "cheapest_vs_history",
+ "most_below_median"
+ ],
+ "type": "string"
+ },
+ "stale_rails": {
+ "description": "How many of the rails in scope are past their own freshness boundary on `as_of` (Europe/Prague).",
+ "properties": {
+ "as_of": {
+ "type": "string"
+ },
+ "count": {
+ "type": "integer"
+ },
+ "keys": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "of": {
+ "type": "integer"
+ },
+ "unknown": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "as_of",
+ "of",
+ "count",
+ "keys"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "schema",
+ "generated",
+ "sort",
+ "min_history_days",
+ "matched",
+ "stale_rails",
+ "opportunities",
+ "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"
+ }
+ ],
+ "type": "object"
+}