changedOutput schema / properties / stayQuote / oneOf
Previous value: -[
- {
- "additionalProperties": false,
- "properties": {
- "basis": {
- "const": "exact",
- "type": "string"
- },
- "quote": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "arrival": {
- "format": "date",
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
- "type": "string"
- },
- "availability": {
- "enum": [
- "available",
- "unavailable",
- "unknown"
- ],
- "type": "string"
- },
- "bookingUrl": {
- "format": "uri",
- "type": "string"
- },
- "checkedAt": {
- "format": "date-time",
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
- "type": "string"
- },
- "departure": {
- "format": "date",
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
- "type": "string"
- },
- "expiresAt": {
- "format": "date-time",
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
- "type": "string"
- },
- "guests": {
- "maximum": 9007199254740991,
- "minimum": -9007199254740991,
- "type": "integer"
- },
- "held": {
- "const": false,
- "type": "boolean"
- },
- "minimumNights": {
- "anyOf": [
- {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- {
- "type": "null"
- }
- ]
- },
- "nights": {
- "maximum": 9007199254740991,
- "minimum": -9007199254740991,
- "type": "integer"
- },
- "partyBasis": {
- "const": "all_adults",
- "type": "string"
- },
- "price": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "breakdown": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "amount": {
- "type": "number"
- },
- "label": {
- "maxLength": 160,
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "label",
- "amount"
- ],
- "type": "object"
- },
- "maxItems": 30,
- "type": "array"
- },
- "completeness": {
- "enum": [
- "total",
- "partial"
- ],
- "type": "string"
- },
- "currency": {
- "pattern": "^[A-Z]{3}$",
- "type": "string"
- },
- "taxesIncluded": {
- "anyOf": [
- {
- "type": "boolean"
- },
- {
- "type": "null"
- }
- ]
- },
- "total": {
- "minimum": 0,
- "type": "number"
- }
- },
- "required": [
- "currency",
- "total",
- "breakdown",
- "completeness",
- "taxesIncluded"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
- ]
- },
- "propertyId": {
- "type": "string"
- },
- "reason": {
- "enum": [
- "checked",
- "blocked_dates",
- "minimum_stay",
- "maximum_stay",
- "arrival_departure_rules",
- "advance_notice",
- "capacity",
- "unsupported_host",
- "browser_unconfigured",
- "upstream_unavailable",
- "date_range_unknown"
- ],
- "type": "string"
- },
- "sourceUrl": {
- "format": "uri",
- "type": "string"
- },
- "startingNightlyPrice": {
- "additionalProperties": false,
- "properties": {
- "amount": {
- "minimum": 0,
- "type": "number"
- },
- "currency": {
- "pattern": "^[A-Z]{3}$",
- "type": "string"
- }
- },
- "required": [
- "currency",
- "amount"
- ],
- "type": "object"
- }
- },
- "required": [
- "propertyId",
- "arrival",
- "departure",
- "guests",
- "nights",
- "availability",
- "reason",
- "minimumNights",
- "price",
- "checkedAt",
- "expiresAt",
- "sourceUrl",
- "bookingUrl",
- "held"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
- ]
- },
- "request": {
- "additionalProperties": false,
- "properties": {
- "arrival": {
- "format": "date",
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
- "type": "string"
- },
- "currency": {
- "enum": [
- "USD",
- "EUR",
- "GBP",
- "CRC",
- "MXN",
- "COP",
- "PEN",
- "BRL"
- ],
- "type": "string"
- },
- "departure": {
- "format": "date",
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
- "type": "string"
- },
- "execution": {
- "description": "Selected-home execution only. Default auto prefers the fast supported reader. browser requests the slower experimental quote-only agent on reviewed Stays sites; unsupported sites return unknown. Search never starts this agent.",
- "enum": [
- "auto",
- "browser"
- ],
- "type": "string"
- },
- "guests": {
- "maximum": 200,
- "minimum": 1,
- "type": "integer"
- },
- "id": {
- "maxLength": 160,
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "id",
- "arrival",
- "departure",
- "guests"
- ],
- "type": "object"
- },
- "status": {
- "enum": [
- "ready",
- "pending",
- "not_checked",
- "limited"
- ],
- "type": "string"
- }
- },
- "required": [
- "basis",
- "status",
- "request",
- "quote"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "basis": {
- "const": "sample",
- "type": "string"
- },
- "diagnostics": {
- "additionalProperties": false,
- "properties": {
- "attemptedStays": {
- "maximum": 4,
- "minimum": 0,
- "type": "integer"
- },
- "reason": {
- "description": "Last sampled observation when no dated total was selected. Applies only to attempted stays; blocked samples never establish that the whole window is sold out. Terminal unsupported_host/upstream_unavailable evidence should be explained, not retried unchanged.",
- "enum": [
- "checked",
- "blocked_dates",
- "minimum_stay",
- "maximum_stay",
- "arrival_departure_rules",
- "advance_notice",
- "capacity",
- "unsupported_host",
- "browser_unconfigured",
- "upstream_unavailable",
- "date_range_unknown"
- ],
- "type": "string"
- }
- },
- "required": [
- "attemptedStays"
- ],
- "type": "object"
- },
- "estimate": {
- "additionalProperties": false,
- "properties": {
- "currency": {
- "enum": [
- "USD",
- "EUR",
- "GBP",
- "CRC",
- "MXN",
- "COP",
- "PEN",
- "BRL"
- ],
- "type": "string"
- },
- "guests": {
- "maximum": 200,
- "minimum": 1,
- "type": "integer"
- },
- "id": {
- "maxLength": 160,
- "minLength": 1,
- "type": "string"
- },
- "nights": {
- "maximum": 30,
- "minimum": 1,
- "type": "integer"
- },
- "windowEnd": {
- "format": "date",
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
- "type": "string"
- },
- "windowStart": {
- "format": "date",
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
- "type": "string"
- }
- },
- "required": [
- "id",
- "windowStart",
- "windowEnd",
- "nights",
- "guests"
- ],
- "type": "object"
- },
- "quote": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "arrival": {
- "format": "date",
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
- "type": "string"
- },
- "availability": {
- "enum": [
- "available",
- "unavailable",
- "unknown"
- ],
- "type": "string"
- },
- "bookingUrl": {
- "format": "uri",
- "type": "string"
- },
- "checkedAt": {
- "format": "date-time",
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
- "type": "string"
- },
- "departure": {
- "format": "date",
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
- "type": "string"
- },
- "expiresAt": {
- "format": "date-time",
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
- "type": "string"
- },
- "guests": {
- "maximum": 9007199254740991,
- "minimum": -9007199254740991,
- "type": "integer"
- },
- "held": {
- "const": false,
- "type": "boolean"
- },
- "minimumNights": {
- "anyOf": [
- {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- {
- "type": "null"
- }
- ]
- },
- "nights": {
- "maximum": 9007199254740991,
- "minimum": -9007199254740991,
- "type": "integer"
- },
- "partyBasis": {
- "const": "all_adults",
- "type": "string"
- },
- "price": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "breakdown": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "amount": {
- "type": "number"
- },
- "label": {
- "maxLength": 160,
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "label",
- "amount"
- ],
- "type": "object"
- },
- "maxItems": 30,
- "type": "array"
- },
- "completeness": {
- "enum": [
- "total",
- "partial"
- ],
- "type": "string"
- },
- "currency": {
- "pattern": "^[A-Z]{3}$",
- "type": "string"
- },
- "taxesIncluded": {
- "anyOf": [
- {
- "type": "boolean"
- },
- {
- "type": "null"
- }
- ]
- },
- "total": {
- "minimum": 0,
- "type": "number"
- }
- },
- "required": [
- "currency",
- "total",
- "breakdown",
- "completeness",
- "taxesIncluded"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
- ]
- },
- "propertyId": {
- "type": "string"
- },
- "reason": {
- "enum": [
- "checked",
- "blocked_dates",
- "minimum_stay",
- "maximum_stay",
- "arrival_departure_rules",
- "advance_notice",
- "capacity",
- "unsupported_host",
- "browser_unconfigured",
- "upstream_unavailable",
- "date_range_unknown"
- ],
- "type": "string"
- },
- "sourceUrl": {
- "format": "uri",
- "type": "string"
- },
- "startingNightlyPrice": {
- "additionalProperties": false,
- "properties": {
- "amount": {
- "minimum": 0,
- "type": "number"
- },
- "currency": {
- "pattern": "^[A-Z]{3}$",
- "type": "string"
- }
- },
- "required": [
- "currency",
- "amount"
- ],
- "type": "object"
- }
- },
- "required": [
- "propertyId",
- "arrival",
- "departure",
- "guests",
- "nights",
- "availability",
- "reason",
- "minimumNights",
- "price",
- "checkedAt",
- "expiresAt",
- "sourceUrl",
- "bookingUrl",
- "held"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
- ]
- },
- "request": {
- "additionalProperties": false,
- "properties": {
- "arrival": {
- "format": "date",
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
- "type": "string"
- },
- "currency": {
- "enum": [
- "USD",
- "EUR",
- "GBP",
- "CRC",
- "MXN",
- "COP",
- "PEN",
- "BRL"
- ],
- "type": "string"
- },
- "departure": {
- "format": "date",
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
- "type": "string"
- },
- "execution": {
- "description": "Selected-home execution only. Default auto prefers the fast supported reader. browser requests the slower experimental quote-only agent on reviewed Stays sites; unsupported sites return unknown. Search never starts this agent.",
- "enum": [
- "auto",
- "browser"
- ],
- "type": "string"
- },
- "guests": {
- "maximum": 200,
- "minimum": 1,
- "type": "integer"
- },
- "id": {
- "maxLength": 160,
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "id",
- "arrival",
- "departure",
- "guests"
- ],
- "type": "object"
- },
- "status": {
- "enum": [
- "ready",
- "pending",
- "not_checked",
- "limited"
- ],
- "type": "string"
- }
- },
- "required": [
- "basis",
- "status",
- "request",
- "quote",
- "estimate"
- ],
- "type": "object"
- }
-]New value: +[
+ {
+ "additionalProperties": false,
+ "properties": {
+ "basis": {
+ "const": "exact",
+ "type": "string"
+ },
+ "quote": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "arrival": {
+ "format": "date",
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
+ "type": "string"
+ },
+ "availability": {
+ "enum": [
+ "available",
+ "unavailable",
+ "unknown"
+ ],
+ "type": "string"
+ },
+ "bookingUrl": {
+ "format": "uri",
+ "type": "string"
+ },
+ "checkedAt": {
+ "format": "date-time",
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
+ "type": "string"
+ },
+ "departure": {
+ "format": "date",
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
+ "type": "string"
+ },
+ "expiresAt": {
+ "format": "date-time",
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
+ "type": "string"
+ },
+ "guests": {
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ },
+ "held": {
+ "const": false,
+ "type": "boolean"
+ },
+ "minimumNights": {
+ "anyOf": [
+ {
+ "exclusiveMinimum": 0,
+ "maximum": 9007199254740991,
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "nights": {
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ },
+ "partyBasis": {
+ "const": "all_adults",
+ "type": "string"
+ },
+ "price": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "breakdown": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "label": {
+ "maxLength": 160,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "label",
+ "amount"
+ ],
+ "type": "object"
+ },
+ "maxItems": 30,
+ "type": "array"
+ },
+ "completeness": {
+ "enum": [
+ "total",
+ "partial"
+ ],
+ "type": "string"
+ },
+ "currency": {
+ "pattern": "^[A-Z]{3}$",
+ "type": "string"
+ },
+ "taxesIncluded": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "total": {
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "currency",
+ "total",
+ "breakdown",
+ "completeness",
+ "taxesIncluded"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "propertyId": {
+ "type": "string"
+ },
+ "reason": {
+ "enum": [
+ "checked",
+ "blocked_dates",
+ "minimum_stay",
+ "maximum_stay",
+ "arrival_departure_rules",
+ "advance_notice",
+ "capacity",
+ "unsupported_host",
+ "browser_unconfigured",
+ "upstream_unavailable",
+ "date_range_unknown"
+ ],
+ "type": "string"
+ },
+ "sourceUrl": {
+ "format": "uri",
+ "type": "string"
+ },
+ "startingNightlyPrice": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "currency": {
+ "pattern": "^[A-Z]{3}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "currency",
+ "amount"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "propertyId",
+ "arrival",
+ "departure",
+ "guests",
+ "nights",
+ "availability",
+ "reason",
+ "minimumNights",
+ "price",
+ "checkedAt",
+ "expiresAt",
+ "sourceUrl",
+ "bookingUrl",
+ "held"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "request": {
+ "additionalProperties": false,
+ "properties": {
+ "arrival": {
+ "format": "date",
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
+ "type": "string"
+ },
+ "currency": {
+ "enum": [
+ "USD",
+ "EUR",
+ "GBP",
+ "CRC",
+ "MXN",
+ "COP",
+ "PEN",
+ "BRL",
+ "AUD"
+ ],
+ "type": "string"
+ },
+ "departure": {
+ "format": "date",
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
+ "type": "string"
+ },
+ "execution": {
+ "description": "Selected-home execution only. Default auto prefers the fast supported reader. browser requests the slower experimental quote-only agent on reviewed Stays sites; unsupported sites return unknown. Search never starts this agent.",
+ "enum": [
+ "auto",
+ "browser"
+ ],
+ "type": "string"
+ },
+ "guests": {
+ "maximum": 200,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "id": {
+ "maxLength": 160,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "arrival",
+ "departure",
+ "guests"
+ ],
+ "type": "object"
+ },
+ "status": {
+ "enum": [
+ "ready",
+ "pending",
+ "not_checked",
+ "limited"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "basis",
+ "status",
+ "request",
+ "quote"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "basis": {
+ "const": "sample",
+ "type": "string"
+ },
+ "diagnostics": {
+ "additionalProperties": false,
+ "properties": {
+ "attemptedStays": {
+ "maximum": 4,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "reason": {
+ "description": "Last sampled observation when no dated total was selected. Applies only to attempted stays; blocked samples never establish that the whole window is sold out. Terminal unsupported_host/upstream_unavailable evidence should be explained, not retried unchanged.",
+ "enum": [
+ "checked",
+ "blocked_dates",
+ "minimum_stay",
+ "maximum_stay",
+ "arrival_departure_rules",
+ "advance_notice",
+ "capacity",
+ "unsupported_host",
+ "browser_unconfigured",
+ "upstream_unavailable",
+ "date_range_unknown"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "attemptedStays"
+ ],
+ "type": "object"
+ },
+ "estimate": {
+ "additionalProperties": false,
+ "properties": {
+ "currency": {
+ "enum": [
+ "USD",
+ "EUR",
+ "GBP",
+ "CRC",
+ "MXN",
+ "COP",
+ "PEN",
+ "BRL",
+ "AUD"
+ ],
+ "type": "string"
+ },
+ "guests": {
+ "maximum": 200,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "id": {
+ "maxLength": 160,
+ "minLength": 1,
+ "type": "string"
+ },
+ "nights": {
+ "maximum": 30,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "windowEnd": {
+ "format": "date",
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
+ "type": "string"
+ },
+ "windowStart": {
+ "format": "date",
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "windowStart",
+ "windowEnd",
+ "nights",
+ "guests"
+ ],
+ "type": "object"
+ },
+ "quote": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "arrival": {
+ "format": "date",
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
+ "type": "string"
+ },
+ "availability": {
+ "enum": [
+ "available",
+ "unavailable",
+ "unknown"
+ ],
+ "type": "string"
+ },
+ "bookingUrl": {
+ "format": "uri",
+ "type": "string"
+ },
+ "checkedAt": {
+ "format": "date-time",
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
+ "type": "string"
+ },
+ "departure": {
+ "format": "date",
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
+ "type": "string"
+ },
+ "expiresAt": {
+ "format": "date-time",
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
+ "type": "string"
+ },
+ "guests": {
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ },
+ "held": {
+ "const": false,
+ "type": "boolean"
+ },
+ "minimumNights": {
+ "anyOf": [
+ {
+ "exclusiveMinimum": 0,
+ "maximum": 9007199254740991,
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "nights": {
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ },
+ "partyBasis": {
+ "const": "all_adults",
+ "type": "string"
+ },
+ "price": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "breakdown": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "label": {
+ "maxLength": 160,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "label",
+ "amount"
+ ],
+ "type": "object"
+ },
+ "maxItems": 30,
+ "type": "array"
+ },
+ "completeness": {
+ "enum": [
+ "total",
+ "partial"
+ ],
+ "type": "string"
+ },
+ "currency": {
+ "pattern": "^[A-Z]{3}$",
+ "type": "string"
+ },
+ "taxesIncluded": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "total": {
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "currency",
+ "total",
+ "breakdown",
+ "completeness",
+ "taxesIncluded"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "propertyId": {
+ "type": "string"
+ },
+ "reason": {
+ "enum": [
+ "checked",
+ "blocked_dates",
+ "minimum_stay",
+ "maximum_stay",
+ "arrival_departure_rules",
+ "advance_notice",
+ "capacity",
+ "unsupported_host",
+ "browser_unconfigured",
+ "upstream_unavailable",
+ "date_range_unknown"
+ ],
+ "type": "string"
+ },
+ "sourceUrl": {
+ "format": "uri",
+ "type": "string"
+ },
+ "startingNightlyPrice": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "currency": {
+ "pattern": "^[A-Z]{3}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "currency",
+ "amount"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "propertyId",
+ "arrival",
+ "departure",
+ "guests",
+ "nights",
+ "availability",
+ "reason",
+ "minimumNights",
+ "price",
+ "checkedAt",
+ "expiresAt",
+ "sourceUrl",
+ "bookingUrl",
+ "held"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "request": {
+ "additionalProperties": false,
+ "properties": {
+ "arrival": {
+ "format": "date",
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
+ "type": "string"
+ },
+ "currency": {
+ "enum": [
+ "USD",
+ "EUR",
+ "GBP",
+ "CRC",
+ "MXN",
+ "COP",
+ "PEN",
+ "BRL",
+ "AUD"
+ ],
+ "type": "string"
+ },
+ "departure": {
+ "format": "date",
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
+ "type": "string"
+ },
+ "execution": {
+ "description": "Selected-home execution only. Default auto prefers the fast supported reader. browser requests the slower experimental quote-only agent on reviewed Stays sites; unsupported sites return unknown. Search never starts this agent.",
+ "enum": [
+ "auto",
+ "browser"
+ ],
+ "type": "string"
+ },
+ "guests": {
+ "maximum": 200,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "id": {
+ "maxLength": 160,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "arrival",
+ "departure",
+ "guests"
+ ],
+ "type": "object"
+ },
+ "status": {
+ "enum": [
+ "ready",
+ "pending",
+ "not_checked",
+ "limited"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "basis",
+ "status",
+ "request",
+ "quote",
+ "estimate"
+ ],
+ "type": "object"
+ }
+]