Skip to main content
Glama

Find vacation homes

search_properties

Find vacation rentals, holiday homes and places to stay. Search with free-text city, region or country and guest/pool/amenity needs; use get_filters only for ambiguous destinations or exact place/area keys. Use organization with a returned organization.slug to explore all its homes, or relatedTo with a published property ID for other homes from that organization. relatedTo already includes other locations and excludes the reference home; do not repeat the search with organization merely to include other towns. Results include the organization name and browse link; offer this follow-up when relevant. Automatically shows up to six photo cards with host booking buttons; the explorer has more results. Do not claim every returned home is visible. Use optional quoteMode:exact with supplied arrival/departure/guests for host quotes, or quoteMode:estimate for a clearly dated sample stay only with supplied flexible bounds, nights and guests. Do not require dates for discovery. Quote enrichment is bounded to 2.5 seconds; follow stayQuote.estimate with get_stay_estimate for a flexible sample, or stayQuote.request with get_stay_quote for exact dates. Inspect sample assumptions, actual currency, completeness and expiry; disclose material limits not already clear in the cards. Unknown availability is not available. Budget is not a catalog filter.Price requests require a supplied party size and stay context. Exact dates use arrival/departure/guests. Flexible travel uses quoteMode:estimate with explicit estimateWindowStart/estimateWindowEnd, estimateNights and guests; resolve a supplied month into bounds and ask only for missing details before requesting or displaying any price. A brief clarification may come before catalog search; budget is optional in the same question. With sufficient inputs, complete bounded shortlisted checks without asking permission. Without these inputs, discover homes without quoteMode and show no prices in cards or prose. Never invent dates, stay length or party size. When price is requested, first inspect already-ready quotes and use displayedPropertyIds to identify the inline cards when supplied. Join pending checks for promising displayed homes before starting not_checked homes or off-screen alternatives, using the returned request or estimate. Make at most three follow-up checks in total; never check every card. A pending search quote can finish independently in the cards, so resolve selected pending checks before giving a budget conclusion. Compare confirmed available, complete stay totals in the requested currency against the budget; do not reject a supported match. When a supported budget match is found, recommend it with any material qualification; omit failed or unchecked alternatives unless a comparison is requested. If no match is confirmed and selected checks remain unresolved, say that briefly rather than claiming no home fits the budget or is available. Make status claims per returned quote evidence; never blanket-label other cards unchecked or unavailable, since they update separately. Inspect terminal ready failures and sample diagnostics internally; briefly state only material unknown price or availability, and stop unchanged retries. Catalog totals count matching published homes, never confirmed available or affordable homes. Sample diagnostic reasons describe attempted stays only, never the whole window. After displaying cards, default to 1–3 short sentences, usually under 60 words unless the traveler requests a detailed comparison: explain a helpful fit or next choice, and include only a material price/availability caveat or a necessary question. Do not repeat result counts, card facts or the home list unless the traveler asks for a textual comparison. Do not narrate tools called or not called, backend mechanics, or your process. Keep operational checks internal; disclose material uncertainty and pricing assumptions plainly when they affect the traveler’s decision. For a trip's mood, experience or visual preferences, pass the traveler's description as semantic, preserving their meaning and language. Keep destination, guests, bedrooms, pool and amenities in their structured filters. q is a literal name/location/text filter: do not duplicate the semantic description into q. Copy experiential preferences verbatim from semantic into semanticPreferences; copy essential experiential requirements with their qualifiers into semanticRequirements, without inventing needs. Keep those requirements when refining the search. Use reassessPropertyIds with semantic to reassess known homes against the current needs. Read the returned semantic.matches, assessments, coverage and limitations: similarity alone does not prove a fact, and source-based claims remain attributed. Do not infer availability from matching. If semantic search is unavailable, explain the failure; do not silently substitute a keyword search or relax requirements. Use English or neutral Latin American Spanish (tú).

Input Schema

NameRequiredDescriptionDefault
qNoSearch public property names, locations and approved introduction text.
cityNo
pageNo
poolNo
placeNoPlace key from the live filter catalog.
boundsNoMap viewport as south,west,north,east in degrees; keeps homes whose public area center is inside it. West greater than east crosses the antimeridian.
guestsNoMinimum sleeping capacity; required actual party size when requesting quote enrichment.
localeNoen
regionNo
arrivalNo
countryNo
featureNoCollection key from the filter catalog.
currencyNo
semanticNoRank indexed, eligible homes by text and photo similarity. Does not establish hard facts; no lexical fallback when unavailable.
amenitiesNoComma-separated amenity keys; every requested amenity must be explicitly present.
departureNo
quoteModeNoOptional price/availability enrichment. exact uses supplied dates and guests; estimate requires estimateWindowStart, estimateWindowEnd, estimateNights and guests for a clearly labeled sample within supplied flexible bounds. Search does not wait for every host or filter unknown homes out.
relatedToNoPublished property ID. Find other homes from its organization, same locality first, then region/country and other locations. Excludes the source property. Additional filters still combine with AND.
minBedroomsNo
minBathroomsNo
organizationNoExact organization slug returned on a property or in get_filters. Restricts results to that organization, across destinations.
estimateNightsNoSample-stay nights, required. Only with quoteMode:estimate.
estimateWindowEndNoLatest sample departure (YYYY-MM-DD), paired with estimateWindowStart. Window must fit estimateNights (required), at most 150 days.
estimateWindowStartNoEarliest sample arrival (YYYY-MM-DD), paired with estimateWindowEnd. Only with quoteMode:estimate. Preserve the traveler's flexible month or date range.
reassessPropertyIdsNoUp to four previously discussed public property IDs to reassess against this semantic request alongside fresh matches. Use when refining or comparing earlier suggestions. This reserves comparison slots only: current factual filters, indexed source ownership and every essential requirement still apply. It does not keep an old recommendation or establish fit. Omit for a new search without earlier candidates to reassess.
semanticPreferencesNoIndividual experiential preferences, each copied verbatim from semantic. Interpret the traveler in context: separate requested preferences without adding needs. Keep related words together when they describe one room, view or relationship. These are questions to assess, not property facts; omit for factual-only searches.
semanticRequirementsNoEssential trip requirements, each copied verbatim from semantic with all relationship and provenance qualifiers. Every one must have source-backed support before a home is returned. Preserve these from the conversation; ordinary preferences belong in semanticPreferences. Omit when no essential experiential requirements were stated. Interpret semanticRequirements as conditions the accommodation or its setting must satisfy. Preserve essential support for the traveler's primary activity and access needs, including when expressed indirectly. Preserve the traveler's complete context in semantic. When the traveler states an explicit offering condition together with their own plans, circumstances or reasons, copy the complete offering condition as the essential; do not create an additional standalone proof obligation for the traveler's plan or circumstance. Keep any context necessary to understand the condition, its scope and relationships. Do not broaden a specific access requirement into proof of every aspect of the trip, and do not drop an actual offering condition because it is motivated by a traveler's circumstances. When a circumstance leaves the required accommodation or access condition ambiguous, ask one short clarifying question before searching; do not submit the circumstance itself as a property-proof requirement. If the offering condition itself is ambiguous, clarify it in the real conversation instead of inventing a stricter condition.

Output Schema

NameRequiredDescriptionDefault
pageYes
totalYes
localeYes
nextPageYes
pageSizeYes
semanticNo
relatedToYes
missingIdsNo
propertiesYes
organizationYes
displayedPropertyIdsNoProperty IDs in the initial inline photo cards, in display order; the explorer can display more homes. Only supplied for ChatGPT search_properties; prioritize their pending quote follow-ups.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedOutput schema / properties / semantic / properties / matches / items / properties / assessment / properties / essentialNeeds / items / properties / basis / enum
      Previous value: -[
      -  "source_claim",
      -  "observed_visual"
      -]New value: +[
      +  "source_claim",
      +  "observed_visual",
      +  "photo_description",
      +  "nearby_places"
      +]
    • changedOutput schema / properties / semantic / properties / matches / items / properties / assessment / properties / references / items / properties / basis / enum
      Previous value: -[
      -  "source_claim",
      -  "observed_visual"
      -]New value: +[
      +  "source_claim",
      +  "observed_visual",
      +  "photo_description",
      +  "nearby_places"
      +]
  2. Changed5 schema fields changed
    • addedInput schema / properties / reassessPropertyIds
      Added value: +{
      +  "description": "Up to four previously discussed public property IDs to reassess against this semantic request alongside fresh matches. Use when refining or comparing earlier suggestions. This reserves comparison slots only: current factual filters, indexed source ownership and every essential requirement still apply. It does not keep an old recommendation or establish fit. Omit for a new search without earlier candidates to reassess.",
      +  "items": {
      +    "maxLength": 160,
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  "maxItems": 4,
      +  "minItems": 1,
      +  "type": "array"
      +}
    • addedInput schema / properties / semantic
      Added value: +{
      +  "description": "Rank indexed, eligible homes by text and photo similarity. Does not establish hard facts; no lexical fallback when unavailable.",
      +  "maxLength": 4000,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / semanticPreferences
      Added value: +{
      +  "description": "Individual experiential preferences, each copied verbatim from semantic. Interpret the traveler in context: separate requested preferences without adding needs. Keep related words together when they describe one room, view or relationship. These are questions to assess, not property facts; omit for factual-only searches.",
      +  "items": {
      +    "maxLength": 350,
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  "maxItems": 8,
      +  "minItems": 1,
      +  "type": "array"
      +}
    • addedInput schema / properties / semanticRequirements
      Added value: +{
      +  "description": "Essential trip requirements, each copied verbatim from semantic with all relationship and provenance qualifiers. Every one must have source-backed support before a home is returned. Preserve these from the conversation; ordinary preferences belong in semanticPreferences. Omit when no essential experiential requirements were stated. Interpret semanticRequirements as conditions the accommodation or its setting must satisfy. Preserve essential support for the traveler's primary activity and access needs, including when expressed indirectly. Preserve the traveler's complete context in semantic. When the traveler states an explicit offering condition together with their own plans, circumstances or reasons, copy the complete offering condition as the essential; do not create an additional standalone proof obligation for the traveler's plan or circumstance. Keep any context necessary to understand the condition, its scope and relationships. Do not broaden a specific access requirement into proof of every aspect of the trip, and do not drop an actual offering condition because it is motivated by a traveler's circumstances. When a circumstance leaves the required accommodation or access condition ambiguous, ask one short clarifying question before searching; do not submit the circumstance itself as a property-proof requirement. If the offering condition itself is ambiguous, clarify it in the real conversation instead of inventing a stricter condition.",
      +  "items": {
      +    "maxLength": 350,
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  "maxItems": 8,
      +  "minItems": 1,
      +  "type": "array"
      +}
    • addedOutput schema / properties / semantic
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "comparison": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "assessedCount": {
      +          "maximum": 60,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "candidateCount": {
      +          "maximum": 60,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "missingCount": {
      +          "maximum": 60,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "poorFitCount": {
      +          "maximum": 60,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "possibleFitCount": {
      +          "maximum": 60,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "rejectedCount": {
      +          "maximum": 60,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "requirements": {
      +          "description": "When comparison.requirements is present, use its per-requirement counts to explain the actual evidence gap. Counts summarize this bounded comparison, not the whole inventory: different homes can support different requirements, so individual support counts do not establish a home satisfying them all. Unknown means unresolved; unavailableCount means no usable current assessment, including rejected, missing or changed source evidence. Do not describe a requirement as wholly unsupported when its supportedCount is positive, and do not show an excluded home merely because it supports one requirement.",
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "contradictedCount": {
      +                "maximum": 60,
      +                "minimum": 0,
      +                "type": "integer"
      +              },
      +              "requirement": {
      +                "maxLength": 350,
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "supportedCount": {
      +                "maximum": 60,
      +                "minimum": 0,
      +                "type": "integer"
      +              },
      +              "unavailableCount": {
      +                "maximum": 60,
      +                "minimum": 0,
      +                "type": "integer"
      +              },
      +              "unknownCount": {
      +                "maximum": 60,
      +                "minimum": 0,
      +                "type": "integer"
      +              }
      +            },
      +            "required": [
      +              "requirement",
      +              "supportedCount",
      +              "contradictedCount",
      +              "unknownCount",
      +              "unavailableCount"
      +            ],
      +            "type": "object"
      +          },
      +          "maxItems": 8,
      +          "minItems": 1,
      +          "type": "array"
      +        },
      +        "unknownCount": {
      +          "maximum": 60,
      +          "minimum": 0,
      +          "type": "integer"
      +        }
      +      },
      +      "required": [
      +        "candidateCount",
      +        "assessedCount",
      +        "possibleFitCount",
      +        "poorFitCount",
      +        "unknownCount",
      +        "rejectedCount",
      +        "missingCount"
      +      ],
      +      "type": "object"
      +    },
      +    "eligibleCount": {
      +      "maximum": 9007199254740991,
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "indexedCount": {
      +      "maximum": 9007199254740991,
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "indexedEligibleCount": {
      +      "maximum": 9007199254740991,
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "limitations": {
      +      "items": {
      +        "maxLength": 500,
      +        "type": "string"
      +      },
      +      "maxItems": 12,
      +      "type": "array"
      +    },
      +    "matches": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "assessment": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "essentialNeeds": {
      +                "items": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "basis": {
      +                      "enum": [
      +                        "source_claim",
      +                        "observed_visual"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "evidenceIds": {
      +                      "items": {
      +                        "type": "string"
      +                      },
      +                      "maxItems": 6,
      +                      "type": "array"
      +                    },
      +                    "requirement": {
      +                      "maxLength": 350,
      +                      "minLength": 1,
      +                      "type": "string"
      +                    },
      +                    "scope": {
      +                      "enum": [
      +                        "unit",
      +                        "private_outdoor",
      +                        "shared",
      +                        "any"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "space": {
      +                      "enum": [
      +                        "living",
      +                        "kitchen",
      +                        "dining",
      +                        "bedroom",
      +                        "bathroom",
      +                        "outdoor",
      +                        "pool",
      +                        "other",
      +                        "unknown"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "state": {
      +                      "enum": [
      +                        "supported",
      +                        "contradicted",
      +                        "unknown"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "evidenceIds",
      +                    "scope",
      +                    "space",
      +                    "basis",
      +                    "requirement",
      +                    "state"
      +                  ],
      +                  "type": "object"
      +                },
      +                "maxItems": 8,
      +                "type": "array"
      +              },
      +              "provisional": {
      +                "const": true,
      +                "type": "boolean"
      +              },
      +              "references": {
      +                "items": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "basis": {
      +                      "enum": [
      +                        "source_claim",
      +                        "observed_visual"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "evidenceIds": {
      +                      "items": {
      +                        "type": "string"
      +                      },
      +                      "maxItems": 6,
      +                      "minItems": 1,
      +                      "type": "array"
      +                    },
      +                    "limitations": {
      +                      "maxLength": 500,
      +                      "type": "string"
      +                    },
      +                    "role": {
      +                      "enum": [
      +                        "fit",
      +                        "contrast"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "scope": {
      +                      "enum": [
      +                        "unit",
      +                        "private_outdoor",
      +                        "shared",
      +                        "any"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "space": {
      +                      "enum": [
      +                        "living",
      +                        "kitchen",
      +                        "dining",
      +                        "bedroom",
      +                        "bathroom",
      +                        "outdoor",
      +                        "pool",
      +                        "other",
      +                        "unknown"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "text": {
      +                      "maxLength": 500,
      +                      "minLength": 1,
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "role",
      +                    "text",
      +                    "evidenceIds",
      +                    "scope",
      +                    "space",
      +                    "basis",
      +                    "limitations"
      +                  ],
      +                  "type": "object"
      +                },
      +                "maxItems": 4,
      +                "type": "array"
      +              },
      +              "unconfirmedNeeds": {
      +                "items": {
      +                  "maxLength": 500,
      +                  "type": "string"
      +                },
      +                "maxItems": 8,
      +                "type": "array"
      +              },
      +              "verdict": {
      +                "const": "possible_fit",
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "verdict",
      +              "references",
      +              "unconfirmedNeeds",
      +              "provisional"
      +            ],
      +            "type": "object"
      +          },
      +          "evidence": {
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "id": {
      +                  "maxLength": 240,
      +                  "type": "string"
      +                },
      +                "kind": {
      +                  "enum": [
      +                    "text",
      +                    "image"
      +                  ],
      +                  "type": "string"
      +                },
      +                "quote": {
      +                  "type": "string"
      +                },
      +                "scope": {
      +                  "maxLength": 160,
      +                  "type": "string"
      +                },
      +                "url": {
      +                  "format": "uri",
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "id",
      +                "kind",
      +                "url",
      +                "scope"
      +              ],
      +              "type": "object"
      +            },
      +            "maxItems": 2,
      +            "type": "array"
      +          },
      +          "limitations": {
      +            "items": {
      +              "maxLength": 500,
      +              "type": "string"
      +            },
      +            "maxItems": 12,
      +            "type": "array"
      +          },
      +          "propertyId": {
      +            "maxLength": 160,
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "score": {
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "propertyId",
      +          "score",
      +          "evidence",
      +          "limitations"
      +        ],
      +        "type": "object"
      +      },
      +      "maxItems": 100,
      +      "type": "array"
      +    },
      +    "model": {
      +      "enum": [
      +        "google/embeddinggemma-2"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "model",
      +    "indexedCount",
      +    "eligibleCount",
      +    "indexedEligibleCount",
      +    "matches",
      +    "limitations"
      +  ],
      +  "type": "object"
      +}
  3. Changed1 schema field changed
    • addedOutput schema / properties / displayedPropertyIds
      Added value: +{
      +  "description": "Property IDs in the initial inline photo cards, in display order; the explorer can display more homes. Only supplied for ChatGPT search_properties; prioritize their pending quote follow-ups.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "maxItems": 6,
      +  "type": "array"
      +}
  4. Changed2 schema fields changed
    • changedInput schema / properties / currency / enum
      Previous value: -[
      -  "USD",
      -  "EUR",
      -  "GBP",
      -  "CRC",
      -  "MXN",
      -  "COP",
      -  "PEN",
      -  "BRL"
      -]New value: +[
      +  "USD",
      +  "EUR",
      +  "GBP",
      +  "CRC",
      +  "MXN",
      +  "COP",
      +  "PEN",
      +  "BRL",
      +  "AUD"
      +]
    • changedOutput schema / properties / properties / items / 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"
      +  }
      +]
  5. Changed6 schema fields changed
    • changedInput schema / properties / estimateNights / description
      Previous value: -"Sample-stay nights, default 7. Only with quoteMode:estimate."New value: +"Sample-stay nights, required. Only with quoteMode:estimate."
    • addedInput schema / properties / estimateWindowEnd
      Added value: +{
      +  "description": "Latest sample departure (YYYY-MM-DD), paired with estimateWindowStart. Window must fit estimateNights (required), at most 150 days.",
      +  "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"
      +}
    • addedInput schema / properties / estimateWindowStart
      Added value: +{
      +  "description": "Earliest sample arrival (YYYY-MM-DD), paired with estimateWindowEnd. Only with quoteMode:estimate. Preserve the traveler's flexible month or date range.",
      +  "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"
      +}
    • changedInput schema / properties / guests / description
      Previous value: -"Minimum sleeping capacity."New value: +"Minimum sleeping capacity; required actual party size when requesting quote enrichment."
    • changedInput schema / properties / quoteMode / description
      Previous value: -"Optional price/availability enrichment. exact uses supplied dates and guests; estimate uses a clearly labeled future sample stay. Search does not wait for every host or filter unknown homes out."New value: +"Optional price/availability enrichment. exact uses supplied dates and guests; estimate requires estimateWindowStart, estimateWindowEnd, estimateNights and guests for a clearly labeled sample within supplied flexible bounds. Search does not wait for every host or filter unknown homes out."
    • changedOutput schema / properties / properties / items / 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"
      -      },
      -      "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"
      +            ],
      +            "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"
      +  }
      +]
  6. Changed6 schema fields changed
    • addedInput schema / properties / arrival
      Added value: +{
      +  "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"
      +}
    • addedInput schema / properties / currency
      Added value: +{
      +  "enum": [
      +    "USD",
      +    "EUR",
      +    "GBP",
      +    "CRC",
      +    "MXN",
      +    "COP",
      +    "PEN",
      +    "BRL"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / departure
      Added value: +{
      +  "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"
      +}
    • addedInput schema / properties / estimateNights
      Added value: +{
      +  "description": "Sample-stay nights, default 7. Only with quoteMode:estimate.",
      +  "maximum": 30,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / quoteMode
      Added value: +{
      +  "description": "Optional price/availability enrichment. exact uses supplied dates and guests; estimate uses a clearly labeled future sample stay. Search does not wait for every host or filter unknown homes out.",
      +  "enum": [
      +    "exact",
      +    "estimate"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / properties / items / properties / stayQuote
      Added value: +{
      +  "oneOf": [
      +    {
      +      "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"
      +        },
      +        "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"
      +    }
      +  ]
      +}
  7. Changed1 schema field changed
    • addedOutput schema / properties / properties / items / properties / enquiryUrl
      Added value: +{
      +  "type": "string"
      +}
  8. Changed8 schema fields changed
    • addedInput schema / properties / organization
      Added value: +{
      +  "default": "",
      +  "description": "Exact organization slug returned on a property or in get_filters. Restricts results to that organization, across destinations.",
      +  "maxLength": 160,
      +  "type": "string"
      +}
    • addedInput schema / properties / relatedTo
      Added value: +{
      +  "default": "",
      +  "description": "Published property ID. Find other homes from its organization, same locality first, then region/country and other locations. Excludes the source property. Additional filters still combine with AND.",
      +  "maxLength": 160,
      +  "type": "string"
      +}
    • addedOutput schema / properties / organization
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "canonicalUrl": {
      +          "type": "string"
      +        },
      +        "name": {
      +          "type": "string"
      +        },
      +        "slug": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "name",
      +        "slug",
      +        "canonicalUrl"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / properties / items / properties / organization
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "canonicalUrl": {
      +          "type": "string"
      +        },
      +        "name": {
      +          "type": "string"
      +        },
      +        "slug": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "name",
      +        "slug",
      +        "canonicalUrl"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / properties / items / properties / relatedPropertiesUrl
      Added value: +{
      +  "type": "string"
      +}
    • changedOutput schema / properties / properties / items / required
      Previous value: -[
      -  "id",
      -  "name",
      -  "place",
      -  "amenities",
      -  "canonicalUrl"
      -]New value: +[
      +  "organization",
      +  "relatedPropertiesUrl",
      +  "id",
      +  "name",
      +  "place",
      +  "amenities",
      +  "canonicalUrl"
      +]
    • addedOutput schema / properties / relatedTo
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "properties",
      -  "locale",
      -  "total",
      -  "page",
      -  "pageSize",
      -  "nextPage"
      -]New value: +[
      +  "properties",
      +  "locale",
      +  "organization",
      +  "relatedTo",
      +  "total",
      +  "page",
      +  "pageSize",
      +  "nextPage"
      +]
  9. Changed16 schema fields changed
    • addedInput schema / properties / bounds
      Added value: +{
      +  "default": "",
      +  "description": "Map viewport as south,west,north,east in degrees; keeps homes whose public area center is inside it. West greater than east crosses the antimeridian.",
      +  "maxLength": 80,
      +  "pattern": "^$|^-?\\d{1,3}(\\.\\d{1,6})?(,-?\\d{1,3}(\\.\\d{1,6})?){3}$",
      +  "type": "string"
      +}
    • changedOutput schema / properties / nextPage / anyOf
      Previous value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "maximum": 9007199254740991,
      +    "minimum": -9007199254740991,
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / page / maximum
      Added value: +9007199254740991
    • addedOutput schema / properties / page / minimum
      Added value: +-9007199254740991
    • changedOutput schema / properties / page / type
      Previous value: -"number"New value: +"integer"
    • addedOutput schema / properties / pageSize / maximum
      Added value: +9007199254740991
    • addedOutput schema / properties / pageSize / minimum
      Added value: +-9007199254740991
    • changedOutput schema / properties / pageSize / type
      Previous value: -"number"New value: +"integer"
    • addedOutput schema / properties / properties / items / properties / amenities
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / properties / items / properties / canonicalUrl
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / properties / items / properties / constraint
      Added value: +{
      +  "maxLength": 160,
      +  "type": "string"
      +}
    • addedOutput schema / properties / properties / items / properties / summary
      Added value: +{
      +  "maxLength": 240,
      +  "type": "string"
      +}
    • changedOutput schema / properties / properties / items / required
      Previous value: -[
      -  "id",
      -  "name",
      -  "place"
      -]New value: +[
      +  "id",
      +  "name",
      +  "place",
      +  "amenities",
      +  "canonicalUrl"
      +]
    • addedOutput schema / properties / total / maximum
      Added value: +9007199254740991
    • addedOutput schema / properties / total / minimum
      Added value: +-9007199254740991
    • changedOutput schema / properties / total / type
      Previous value: -"number"New value: +"integer"
  10. First observed

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations (readOnlyHint=false, openWorldHint=true) by disclosing that at most six photo cards are auto-rendered while the explorer shows more, that quote enrichment is bounded to 2.5 seconds, that unresolved quotes resolve independently, and that unknown availability must not be reported as unavailable. These are meaningful side-effect and result-shape traits an agent could not infer from the annotations or output schema alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single unstructured block of roughly 700 words that mixes tool selection, pricing policy, response-style rules, and semantic-search instructions with heavy repetition ('budget is not a catalog filter', 'never invent dates', status-claim rules restated several times). Front-loading exists only in the first sentence; the remainder must be linearly parsed, and much of it is conversational policy rather than tool definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 27-parameter search with quote enrichment, semantic ranking, and an output schema, the description covers the critical edge cases: no dates required for discovery, budget not a filter, bounded follow-up checks, and the rule that catalog totals are not availability counts. Minor gaps remain, such as pagination behavior for the page parameter (max 1000), but nothing essential to correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 27 parameters at 59% schema coverage, the description meaningfully compensates for the semantic layer: it explains q as a literal name/location filter that must not duplicate semantic text, how to copy preferences into semanticPreferences vs semanticRequirements, and the exact/estimate quoteMode contract. It leaves several simpler parameters (page, locale, currency, feature, minBedrooms) to the schema, which is acceptable since they are self-describing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence states a specific verb and resource ('Find vacation rentals, holiday homes and places to stay') and names the searchable dimensions (city, region, country, guests, pool, amenities). It also distinguishes itself from get_filters early. The purpose is clear, but it gets diluted by the hundreds of words of policy that follow, so the agent must work to extract the core identity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit routing guidance is given for nearly every alternative: get_filters only for ambiguous destinations or exact place/area keys, organization with a returned slug vs relatedTo with a published property ID, and a warning not to repeat the search with organization merely to include other towns. It also states when to use quoteMode:exact vs estimate and the conditions under which no quote should be requested at all.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources