[{"slug":"ZV-2026-1750","server_name":"stay.luxurylodgingpm.com","severity":"breaking","title":"stay.luxurylodgingpm.com: Type of pets on compare_properties changed boolean → integer|boolean.","summary":"[safe] Tool get_booking_link was added. [risky] Description of compare_properties changed (29% word delta). [breaking] Type of pets on compare_properties changed boolean → integer|boolean. [safe] Description of get_live_quote changed (7% word delta). [breaking] Type of pets on get_live_quote changed boolean → integer|boolean. [risky] Field quote was added to get_live_quote output. [breaking] Type of pets on get_live_quote changed boolean → integer. [safe] Description of get_property_details changed (17% word delta). [risky] Field accommodation_type was added to get_property_details output. [risky] Field bathroom_sharing was added to get_property_details output. [risky] Description of list_markets changed (27% word delta). [risky] Description of search_properties changed (36% word delta). [risky] Optional field accommodation_type was added to search_properties; may shift model behaviour. [risky] Optional field amenities_preferred was added to search_properties; may shift model behaviour. [risky] Optional field amenities_required was added to search_properties; may shift model behaviour. [risky] Optional field bedrooms_exact was added to search_properties; may shift model behaviour. [risky] Optional field budget was added to search_properties; may shift model behaviour. [risky] Optional field cursor was added to search_properties; may shift model behaviour. [risky] Optional field page was added to search_properties; may shift model behaviour. [risky] Optional field page_size was added to search_properties; may shift model behaviour. [risky] Optional field radius_miles was added to search_properties; may shift model behaviour. [breaking] Type of pets on search_properties changed boolean → integer|boolean. [risky] Field accommodation_type_unknown was added to search_properties output. [risky] Field amenities_unknown was added to search_properties output. [risky] Field budget_applied was added to search_properties output. [risky] Field budget_unverified was added to sear","changes":[{"kind":"tool_added","tool":"get_booking_link","detail":"Tool `get_booking_link` was added.","severity":"safe"},{"kind":"description_changed","tool":"compare_properties","after":"Compares 2 to 5 homes in one call: size, the amenities guests choose by, review counts, each home's own check-in time, deposit and pet policy, and with dates, availability and the stay total for each, for a guest deciding between specific homes. Each home carries `accommodation_type` and `bathroom_sharing`: a private room or shared room is not an entire home. Without dates no price is returned.","before":"Compares 2 to 5 homes in one call: size, the amenities guests choose by, review counts, each home's own check-in time, deposit and pet policy, and with dates, availability and the stay total for each, for a guest deciding between specific homes.","detail":"Description of `compare_properties` changed (29% word delta).","severity":"risky","descriptionDelta":0.28846153846153844},{"kind":"input_type_changed","path":"inputSchema.properties.pets","tool":"compare_properties","after":"integer|boolean","before":"boolean","detail":"Type of `pets` on `compare_properties` changed boolean → integer|boolean.","severity":"breaking"},{"kind":"description_changed","tool":"get_live_quote","after":"Live price for one property and one stay. stay_total includes cleaning, fees and taxes; nightly rates exclude them. Also returns the refundable deposit hold, which is separate from the total, the payment schedule, and that home's own cancellation and check-in terms. The top-level totals and cancellation are the non-refundable rate; rate_options lists every rate on offer with its own terms, total and booking_url, including a refundable rate with its free-cancellation deadline when check-in is more than 30 days away. Returns a booking_url the guest opens to complete the booking and accept the rental terms on Luxury Lodging's own site; this tool does not book or take payment. Amounts ending in _minor are integer cents in `currency`.","before":"Live price for one property and one stay. stay_total includes cleaning, fees and taxes; nightly rates exclude them. Also returns the refundable deposit hold, which is separate from the total, the payment schedule, and that home's own cancellation and check-in terms. The top-level totals and cancellation are the non-refundable rate; rate_options lists every rate on offer with its own terms, total and booking_url, including a refundable rate with its free-cancellation deadline when check-in is more than 30 days away. Returns a booking_url the guest opens to complete the booking and accept the rental terms on Luxury Lodging's own site; this tool does not book or take payment.","detail":"Description of `get_live_quote` changed (7% word delta).","severity":"safe","descriptionDelta":0.0714285714285714},{"kind":"input_type_changed","path":"inputSchema.properties.pets","tool":"get_live_quote","after":"integer|boolean","before":"boolean","detail":"Type of `pets` on `get_live_quote` changed boolean → integer|boolean.","severity":"breaking"},{"kind":"output_property_added","path":"outputSchema.properties.quote","tool":"get_live_quote","after":{"type":"object","required":["availability_status","inventory_held","checked_at","canonical_url","incomplete","missing"],"properties":{"nights":{"type":["integer","null"]},"charges":{"type":"array","items":{"type":"object","required":["type","name","amount_minor","paid_at"],"properties":{"name":{"type":"string"},"type":{"enum":["nightly","fee","tax","discount","card_fee","security_hold","adjustment"],"type":"string"},"paid_at":{"enum":["checkout","outside_checkout"],"type":"string","description":"checkout: part of the total. outside_checkout: not part of it (the security hold)."},"amount_minor":{"type":"integer"}}},"description":"Every charge, itemised. The amounts of the rows with paid_at checkout add up to total_stay_price_minor exactly; a discount row is negative."},"missing":{"type":"array","items":{"type":"string"},"description":"rent_tax_rate: the provider's fee table could not be read, so the refundable rate cannot be priced. price_breakdown: the provider sent only a total. line_items_mismatch: the itemised charges add up to more than the total."},"currency":{"type":"string","description":"ISO 4217 code, e.g. USD."},"quote_id":{"type":"string","description":"Stable id for this priced stay: the same home, dates, guests, pets, rate and total give the same id; any change gives a new one. Not a hold or a reservation."},"timezone":{"type":["string","null"],"description":"IANA zone of the home: the provider's own zone when it states one, otherwise the zone of the home's US state (timezone_source says which). Null when unknown."},"checked_at":{"type":"string","description":"When this quote was fetched, ISO 8601."},"expires_at":{"type":"string","description":"When the quote lapses, ISO 8601; the same instant as quote_expires_at."},"incomplete":{"type":"boolean","description":"True when a required input or tax could not be determined; missing says which."},"refundable":{"type":"boolean","description":"True when the rate this quote prices can be cancelled for a refund until its free-cancellation deadline; false for the non-refundable rate."},"tax_source":{"enum":["provider","jurisdiction_table"],"type":"string","description":"Where the tax comes from: the provider's own quote, or our verified rate table for the home's jurisdiction when the provider's quote had none. Either way the tax is collected and in the total."},"taxes_minor":{"type":["integer","null"],"minimum":0,"description":"Lodging tax."},"canonical_url":{"type":"string","description":"The home's property page, not the booking link."},"due_now_minor":{"type":"integer","minimum":0,"description":"Charged when the guest books: 50% of the total when check-in is more than 60 days away, otherwise all of it."},"card_fee_minor":{"type":["integer","null"],"minimum":0,"description":"The 3.5% card processing fee, added at checkout and included in the total."},"inventory_held":{"type":"boolean","description":"False: a quote does not hold the home."},"taxes_included":{"type":"boolean","description":"True: the total includes lodging tax, which is collected on every stay."},"discounts_minor":{"type":["integer","null"],"minimum":0,"description":"A positive amount subtracted from the total; 0 when there is none."},"due_later_minor":{"type":"integer","minimum":0,"description":"The rest, charged automatically to the same card 60 days before check-in; 0 when everything is due now."},"timezone_source":{"enum":["listing","market","unknown"],"type":"string"},"availability_status":{"enum":["available","unavailable"],"type":"string"},"optional_fees_minor":{"type":["integer","null"],"minimum":0,"description":"Fees the guest chose, the pet fee for the pets in this quote."},"cancellation_summary":{"type":"string"},"mandatory_fees_minor":{"type":["integer","null"],"minimum":0,"description":"Cleaning and every other required fee."},"cancellation_policy_id":{"enum":["non_refundable","refundable"],"type":"string","description":"The rate this quote prices; rate_options lists both."},"nightly_subtotal_minor":{"type":["integer","null"],"minimum":0,"description":"Rent for the nights before any discount, plus the refundable-rate premium when that rate is quoted."},"total_stay_price_minor":{"type":"integer","minimum":0,"description":"The whole price of the stay, equal to stay_total in cents."},"refundable_security_hold_minor":{"type":"integer","minimum":0,"description":"A refundable hold on the card on file, separate from the total. The home's own amount, or the standard hold when it states none."}},"description":"The authoritative, machine-readable quote for this stay, for the rate stay_total prices (the non-refundable rate). Amounts ending in _minor are integer cents in `currency`. total_stay_price_minor is exactly what the guest is charged in total, including taxes and the card processing fee, and the amounts add up: total_stay_price_minor = nightly_subtotal_minor + mandatory_fees_minor + optional_fees_minor + taxes_minor + card_fee_minor - discounts_minor. When available is false only availability_status, inventory_held, checked_at, canonical_url, incomplete and missing are present. The itemised _minor amounts are null only when missing includes price_breakdown."},"detail":"Field `quote` was added to `get_live_quote` output.","severity":"risky"},{"kind":"output_type_changed","path":"outputSchema.properties.pets","tool":"get_live_quote","after":"integer","before":"boolean","detail":"Type of `pets` on `get_live_quote` changed boolean → integer.","severity":"breaking"},{"kind":"description_changed","tool":"get_property_details","after":"Full detail for one property: bedrooms, capacity, amenities recorded by the property manager, photos, house rules and the real check-in, check-out, deposit and pet policies for that specific home. Location is given at neighbourhood level; the exact address is shared after booking. Guest reviews are a selection of 4- and 5-star reviews, each with its source; no average rating exists. `accommodation_type` and `bathroom_sharing` say whether the guest rents an entire home or a room: a private room or shared room is not an entire home.","before":"Full detail for one property: bedrooms, capacity, amenities recorded by the property manager, photos, house rules and the real check-in, check-out, deposit and pet policies for that specific home. Location is given at neighbourhood level; the exact address is shared after booking. Guest reviews are a selection of 4- and 5-star reviews, each with its source; no average rating exists.","detail":"Description of `get_property_details` changed (17% word delta).","severity":"safe","descriptionDelta":0.16923076923076918},{"kind":"output_property_added","path":"outputSchema.properties.accommodation_type","tool":"get_property_details","after":{"enum":["entire_home","private_room","shared_room","unknown"],"type":"string","description":"What the guest rents: an entire home, a private room in a shared building or a shared room. A private room or shared room is not an entire home. unknown means the type is not recorded for this home."},"detail":"Field `accommodation_type` was added to `get_property_details` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.bathroom_sharing","tool":"get_property_details","after":{"enum":["private","shared","unknown"],"type":"string","description":"Whether the guest has a private bathroom or shares one. unknown means it is not recorded for this home."},"detail":"Field `bathroom_sharing` was added to `get_property_details` output.","severity":"risky"},{"kind":"description_changed","tool":"list_markets","after":"Every city where Luxury Lodging has directly bookable homes, with the state or region, the country, how many homes and the largest group each can sleep. Counts are given for the city alone and for the wider area a search covers, split into whole homes and rooms. It shows whether a destination is covered, including when a guest has not named a place.","before":"Every city where Luxury Lodging has directly bookable homes, with the state or region, the country, how many homes and the largest group each can sleep. It shows whether a destination is covered, including when a guest has not named a place.","detail":"Description of `list_markets` changed (27% word delta).","severity":"risky","descriptionDelta":0.26530612244897955},{"kind":"description_changed","tool":"search_properties","after":"Searches Luxury Lodging's directly bookable vacation rentals by destination, dates, group size, bedrooms and amenities. With dates, only homes confirmed available are returned, each with a stay total that includes cleaning, fees and taxes; nightly rates exclude them. Interchangeable units of the same type are returned once, with every unit's id listed in `similar_units` so any of them can still be quoted and booked; `limit` counts those results, while `total_matching` counts the individual homes confirmed available. A busy market can hold more homes than one request can price, so `unpriced_in_time` counts matching homes whose availability was not established: they are unknown, not unavailable, and `unpriced_property_ids` lists the property_id of up to 30 of them, each of which can be priced individually with a live quote. Pet-friendly searches also report `pet_policy_unknown`: otherwise matching homes with unverified pet policies, with or without dates. While either count is above zero, the results are not the whole market; `price_all_matches`, a higher `limit`, or a narrower place covers more of it. Without dates no price is returned. Each result carries `accommodation_type` and `bathroom_sharing`: a private room or shared room is not an entire home. Optional filters cover accommodation type, exact bedrooms, required amenities and a budget; results can be paged with `cursor`, and `completeness` is partial when a matching home was left unpriced or unchecked. A query that names a known landmark or area (\"near McCormick Place\") returns homes within `radius_miles` of it, nearest first, each with `distance_miles` and `distance_type` straight_line: a direct distance, not a driving or walking route.","before":"Searches Luxury Lodging's directly bookable vacation rentals by destination, dates, group size, bedrooms and amenities. With dates, only homes confirmed available are returned, each with a stay total that includes cleaning, fees and taxes; nightly rates exclude them. Interchangeable units of the same type are returned once, with every unit's id listed in `similar_units` so any of them can still be quoted and booked; `limit` counts those results, while `total_matching` counts the individual homes confirmed available. A busy market can hold more homes than one request can price, so `unpriced_in_time` counts matching homes whose availability was not established: they are unknown, not unavailable. Pet-friendly searches also report `pet_policy_unknown`: otherwise matching homes with unverified pet policies, with or without dates. While either count is above zero, the results are not the whole market; `price_all_matches`, a higher `limit`, or a narrower place covers more of it.","detail":"Description of `search_properties` changed (36% word delta).","severity":"risky","descriptionDelta":0.35624999999999996},{"kind":"input_property_added","path":"inputSchema.properties.accommodation_type","tool":"search_properties","after":{"enum":["entire_home","private_room","shared_room"],"type":"string","description":"What the guest rents. Homes whose type is not recorded are left out and counted in accommodation_type_unknown."},"detail":"Optional field `accommodation_type` was added to `search_properties`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.amenities_preferred","tool":"search_properties","after":{"type":"array","items":{"enum":["pool","hot_tub","parking","wifi","kitchen","washer","pets"],"type":"string"},"description":"Amenities that order homes when the requested sort ties, and appear in match_reasons. Homes lacking them stay in the results."},"detail":"Optional field `amenities_preferred` was added to `search_properties`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.amenities_required","tool":"search_properties","after":{"type":"array","items":{"enum":["pool","hot_tub","parking","wifi","kitchen","washer","pets"],"type":"string"},"description":"Amenities every returned home has. A home whose amenity data is unavailable fails the filter and is counted in amenities_unknown."},"detail":"Optional field `amenities_required` was added to `search_properties`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.bedrooms_exact","tool":"search_properties","after":{"type":"integer","maximum":100,"minimum":0,"description":"Exactly this many bedrooms; 0 is a studio. Cannot be sent together with bedrooms_min."},"detail":"Optional field `bedrooms_exact` was added to `search_properties`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.budget","tool":"search_properties","after":{"type":"object","required":["amount","currency","scope"],"properties":{"scope":{"enum":["total","nightly"],"type":"string","description":"total: the whole stay, with dates. nightly: the starting nightly rate, excluding fees and taxes."},"amount":{"type":"number","maximum":1000000,"description":"The limit, in the stated currency.","exclusiveMinimum":0},"currency":{"enum":["USD"],"type":"string","description":"Only USD is supported."}},"description":"A spending limit. scope total compares amount with each home's stay total including cleaning, fees and taxes, and needs check_in and check_out. scope nightly compares it with each home's starting nightly rate, which excludes cleaning, fees and taxes. amount, currency and scope are all required.","additionalProperties":false},"detail":"Optional field `budget` was added to `search_properties`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.cursor","tool":"search_properties","after":{"type":"string","description":"The next_cursor value of the previous response, valid only with the same other inputs. Returns the page after it."},"detail":"Optional field `cursor` was added to `search_properties`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.page","tool":"search_properties","after":{"type":"integer","minimum":1,"description":"Page number, starting at 1, counted in units of page_size. Cannot be sent together with cursor."},"detail":"Optional field `page` was added to `search_properties`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.page_size","tool":"search_properties","after":{"type":"integer","maximum":20,"minimum":1,"description":"Results per page, up to 20. Takes the place of limit when both are sent."},"detail":"Optional field `page_size` was added to `search_properties`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.radius_miles","tool":"search_properties","after":{"type":"integer","maximum":25,"minimum":1,"description":"How far from a named landmark or area to search, in whole miles, 1 to 25. Homes are included by the distance they state, to the nearest half mile. Defaults to 5 for a landmark and 3 for an area. Ignored for any other place."},"detail":"Optional field `radius_miles` was added to `search_properties`; may shift model behaviour.","severity":"risky"},{"kind":"input_type_changed","path":"inputSchema.properties.pets","tool":"search_properties","after":"integer|boolean","before":"boolean","detail":"Type of `pets` on `search_properties` changed boolean → integer|boolean.","severity":"breaking"},{"kind":"output_property_added","path":"outputSchema.properties.accommodation_type_unknown","tool":"search_properties","after":{"type":"integer","description":"Otherwise matching homes left out of an accommodation_type search because no type is recorded for them. They are not confirmed to be another type. 0 when the filter was not sent."},"detail":"Field `accommodation_type_unknown` was added to `search_properties` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.amenities_unknown","tool":"search_properties","after":{"type":"integer","description":"Otherwise matching homes left out of an amenities_required search because no amenity data is available for them. They are not confirmed to lack the amenity. 0 when the filter was not sent."},"detail":"Field `amenities_unknown` was added to `search_properties` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.budget_applied","tool":"search_properties","after":{"type":"object","required":["scope","amount","currency","compared_to","includes_fees_and_taxes","note"],"properties":{"note":{"type":"string"},"scope":{"enum":["total","nightly"],"type":"string"},"amount":{"type":"number"},"currency":{"type":"string"},"compared_to":{"enum":["stay_total","from_price_per_night"],"type":"string","description":"stay_total includes cleaning, fees and taxes; from_price_per_night is a starting nightly rate that excludes them."},"homes_not_checked":{"type":"integer","description":"Matching homes the budget could not be checked against: unpriced for a total budget, no starting rate for a nightly one."},"includes_fees_and_taxes":{"type":"boolean"}},"description":"Only returned when a budget was sent: what it was compared with."},"detail":"Field `budget_applied` was added to `search_properties` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.budget_unverified","tool":"search_properties","after":{"type":"integer","description":"Otherwise matching homes left out of a nightly budget search because no starting nightly rate is on record. 0 when the budget was not sent or was a total budget."},"detail":"Field `budget_unverified` was added to `search_properties` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.budget_unverified_property_ids","tool":"search_properties","after":{"type":"array","items":{"type":"integer"},"maxItems":30,"description":"The property_id of up to 30 of the homes counted in budget_unverified; each can be priced for specific dates with a live quote."},"detail":"Field `budget_unverified_property_ids` was added to `search_properties` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.completeness","tool":"search_properties","after":{"enum":["complete","partial"],"type":"string","description":"complete: no matching home is unpriced, and none was left out for an unknown pet policy, accommodation type, amenity data, starting rate or position. partial: at least one is, so the results may omit a home that matches."},"detail":"Field `completeness` was added to `search_properties` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.distance_unknown","tool":"search_properties","after":{"type":"integer","description":"Only on a landmark or area search: otherwise matching homes left out because no position is recorded for them, so their distance is unknown. They are not confirmed to be outside the radius."},"detail":"Field `distance_unknown` was added to `search_properties` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.has_more","tool":"search_properties","after":{"type":"boolean","description":"True when more results follow this page in the same ordering, within the priced sample. Homes counted in unpriced_in_time are not part of any page and have no effect on this."},"detail":"Field `has_more` was added to `search_properties` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.next_cursor","tool":"search_properties","after":{"type":["string","null"],"description":"The value to send as cursor, with every other input unchanged, to get the next page. Null when has_more is false."},"detail":"Field `next_cursor` was added to `search_properties` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.offset","tool":"search_properties","after":{"type":"integer","description":"How many results precede this page in the full ordering."},"detail":"Field `offset` was added to `search_properties` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.page_size","tool":"search_properties","after":{"type":"integer","description":"How many results this page asked for."},"detail":"Field `page_size` was added to `search_properties` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.search_scope","tool":"search_properties","after":{"type":"object","required":["place","type"],"properties":{"type":{"enum":["all_homes","metro","state","city","nearby_or_text","landmark","area"],"type":"string","description":"metro: the metro area around the named city, within radius_miles. state: the whole state. city: homes in the named city. nearby_or_text: homes near the place or whose listing text matches it. landmark: homes within radius_miles of a named landmark, nearest first, by straight-line distance. area: the same, measured from the centre of a named area such as the South Loop."},"place":{"type":["string","null"],"description":"The place searched; null when no place was given and every home was searched."},"radius_miles":{"type":"number","description":"How far from its centre or point homes are included; given for a metro, landmark or area."}},"description":"The place actually searched and how it was read."},"detail":"Field `search_scope` was added to `search_properties` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.status","tool":"search_properties","after":{"enum":["OK","NO_MATCHES"],"type":"string","description":"NO_MATCHES: nothing matched and nothing is unknown (unpriced_in_time and pet_policy_unknown are both 0). It is a normal answer, not an error. Any other search is OK, even with no results, and unpriced_in_time and pet_policy_unknown say what is still unknown."},"detail":"Field `status` was added to `search_properties` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.unpriced_property_ids","tool":"search_properties","after":{"type":"array","items":{"type":"integer"},"maxItems":30,"description":"The property_id of up to 30 of the homes counted in unpriced_in_time; each can be priced individually with a live quote. Homes whose quote failed or timed out come first, then homes the request did not reach. A home listed here is unknown, not unavailable."},"detail":"Field `unpriced_property_ids` was added to `search_properties` output.","severity":"risky"}],"published_at":"2026-10-03T10:05:15.121Z"},{"slug":"ZV-2026-1748","server_name":"stay.luxurylodgingpm.com","severity":"breaking","title":"stay.luxurylodgingpm.com: Tool get_booking_link was removed.","summary":"[breaking] Tool get_booking_link was removed. [risky] Description of compare_properties changed (29% word delta). [breaking] Type of pets on compare_properties changed integer|boolean → boolean. [safe] Description of get_live_quote changed (7% word delta). [breaking] Type of pets on get_live_quote changed integer|boolean → boolean. [breaking] Field quote was removed from get_live_quote output; consumers reading it will break. [breaking] Type of pets on get_live_quote changed integer → boolean. [safe] Description of get_property_details changed (17% word delta). [breaking] Field bathroom_sharing was removed from get_property_details output; consumers reading it will break. [breaking] Field accommodation_type was removed from get_property_details output; consumers reading it will break. [risky] Description of list_markets changed (27% word delta). [risky] Description of search_properties changed (36% word delta). [breaking] Field page was removed from search_properties input; consumers still sending it may be rejected or silently ignored. [breaking] Field budget was removed from search_properties input; consumers still sending it may be rejected or silently ignored. [breaking] Field cursor was removed from search_properties input; consumers still sending it may be rejected or silently ignored. [breaking] Field page_size was removed from search_properties input; consumers still sending it may be rejected or silently ignored. [breaking] Field radius_miles was removed from search_properties input; consumers still sending it may be rejected or silently ignored. [breaking] Field bedrooms_exact was removed from search_properties input; consumers still sending it may be rejected or silently ignored. [breaking] Field accommodation_type was removed from search_properties input; consumers still sending it may be rejected or silently ignored. [breaking] Field amenities_required was removed from search_properties input; consumers still sending it may be rejected or silently ignor","changes":[{"kind":"tool_removed","tool":"get_booking_link","detail":"Tool `get_booking_link` was removed.","severity":"breaking"},{"kind":"description_changed","tool":"compare_properties","after":"Compares 2 to 5 homes in one call: size, the amenities guests choose by, review counts, each home's own check-in time, deposit and pet policy, and with dates, availability and the stay total for each, for a guest deciding between specific homes.","before":"Compares 2 to 5 homes in one call: size, the amenities guests choose by, review counts, each home's own check-in time, deposit and pet policy, and with dates, availability and the stay total for each, for a guest deciding between specific homes. Each home carries `accommodation_type` and `bathroom_sharing`: a private room or shared room is not an entire home. Without dates no price is returned.","detail":"Description of `compare_properties` changed (29% word delta).","severity":"risky","descriptionDelta":0.28846153846153844},{"kind":"input_type_changed","path":"inputSchema.properties.pets","tool":"compare_properties","after":"boolean","before":"integer|boolean","detail":"Type of `pets` on `compare_properties` changed integer|boolean → boolean.","severity":"breaking"},{"kind":"description_changed","tool":"get_live_quote","after":"Live price for one property and one stay. stay_total includes cleaning, fees and taxes; nightly rates exclude them. Also returns the refundable deposit hold, which is separate from the total, the payment schedule, and that home's own cancellation and check-in terms. The top-level totals and cancellation are the non-refundable rate; rate_options lists every rate on offer with its own terms, total and booking_url, including a refundable rate with its free-cancellation deadline when check-in is more than 30 days away. Returns a booking_url the guest opens to complete the booking and accept the rental terms on Luxury Lodging's own site; this tool does not book or take payment.","before":"Live price for one property and one stay. stay_total includes cleaning, fees and taxes; nightly rates exclude them. Also returns the refundable deposit hold, which is separate from the total, the payment schedule, and that home's own cancellation and check-in terms. The top-level totals and cancellation are the non-refundable rate; rate_options lists every rate on offer with its own terms, total and booking_url, including a refundable rate with its free-cancellation deadline when check-in is more than 30 days away. Returns a booking_url the guest opens to complete the booking and accept the rental terms on Luxury Lodging's own site; this tool does not book or take payment. Amounts ending in _minor are integer cents in `currency`.","detail":"Description of `get_live_quote` changed (7% word delta).","severity":"safe","descriptionDelta":0.0714285714285714},{"kind":"input_type_changed","path":"inputSchema.properties.pets","tool":"get_live_quote","after":"boolean","before":"integer|boolean","detail":"Type of `pets` on `get_live_quote` changed integer|boolean → boolean.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.quote","tool":"get_live_quote","before":{"type":"object","required":["availability_status","inventory_held","checked_at","canonical_url","incomplete","missing"],"properties":{"nights":{"type":["integer","null"]},"charges":{"type":"array","items":{"type":"object","required":["type","name","amount_minor","paid_at"],"properties":{"name":{"type":"string"},"type":{"enum":["nightly","fee","tax","discount","card_fee","security_hold","adjustment"],"type":"string"},"paid_at":{"enum":["checkout","outside_checkout"],"type":"string","description":"checkout: part of the total. outside_checkout: not part of it (the security hold)."},"amount_minor":{"type":"integer"}}},"description":"Every charge, itemised. The amounts of the rows with paid_at checkout add up to total_stay_price_minor exactly; a discount row is negative."},"missing":{"type":"array","items":{"type":"string"},"description":"rent_tax_rate: the provider's fee table could not be read, so the refundable rate cannot be priced. price_breakdown: the provider sent only a total. line_items_mismatch: the itemised charges add up to more than the total."},"currency":{"type":"string","description":"ISO 4217 code, e.g. USD."},"quote_id":{"type":"string","description":"Stable id for this priced stay: the same home, dates, guests, pets, rate and total give the same id; any change gives a new one. Not a hold or a reservation."},"timezone":{"type":["string","null"],"description":"IANA zone of the home: the provider's own zone when it states one, otherwise the zone of the home's US state (timezone_source says which). Null when unknown."},"checked_at":{"type":"string","description":"When this quote was fetched, ISO 8601."},"expires_at":{"type":"string","description":"When the quote lapses, ISO 8601; the same instant as quote_expires_at."},"incomplete":{"type":"boolean","description":"True when a required input or tax could not be determined; missing says which."},"refundable":{"type":"boolean","description":"True when the rate this quote prices can be cancelled for a refund until its free-cancellation deadline; false for the non-refundable rate."},"tax_source":{"enum":["provider","jurisdiction_table"],"type":"string","description":"Where the tax comes from: the provider's own quote, or our verified rate table for the home's jurisdiction when the provider's quote had none. Either way the tax is collected and in the total."},"taxes_minor":{"type":["integer","null"],"minimum":0,"description":"Lodging tax."},"canonical_url":{"type":"string","description":"The home's property page, not the booking link."},"due_now_minor":{"type":"integer","minimum":0,"description":"Charged when the guest books: 50% of the total when check-in is more than 60 days away, otherwise all of it."},"card_fee_minor":{"type":["integer","null"],"minimum":0,"description":"The 3.5% card processing fee, added at checkout and included in the total."},"inventory_held":{"type":"boolean","description":"False: a quote does not hold the home."},"taxes_included":{"type":"boolean","description":"True: the total includes lodging tax, which is collected on every stay."},"discounts_minor":{"type":["integer","null"],"minimum":0,"description":"A positive amount subtracted from the total; 0 when there is none."},"due_later_minor":{"type":"integer","minimum":0,"description":"The rest, charged automatically to the same card 60 days before check-in; 0 when everything is due now."},"timezone_source":{"enum":["listing","market","unknown"],"type":"string"},"availability_status":{"enum":["available","unavailable"],"type":"string"},"optional_fees_minor":{"type":["integer","null"],"minimum":0,"description":"Fees the guest chose, the pet fee for the pets in this quote."},"cancellation_summary":{"type":"string"},"mandatory_fees_minor":{"type":["integer","null"],"minimum":0,"description":"Cleaning and every other required fee."},"cancellation_policy_id":{"enum":["non_refundable","refundable"],"type":"string","description":"The rate this quote prices; rate_options lists both."},"nightly_subtotal_minor":{"type":["integer","null"],"minimum":0,"description":"Rent for the nights before any discount, plus the refundable-rate premium when that rate is quoted."},"total_stay_price_minor":{"type":"integer","minimum":0,"description":"The whole price of the stay, equal to stay_total in cents."},"refundable_security_hold_minor":{"type":"integer","minimum":0,"description":"A refundable hold on the card on file, separate from the total. The home's own amount, or the standard hold when it states none."}},"description":"The authoritative, machine-readable quote for this stay, for the rate stay_total prices (the non-refundable rate). Amounts ending in _minor are integer cents in `currency`. total_stay_price_minor is exactly what the guest is charged in total, including taxes and the card processing fee, and the amounts add up: total_stay_price_minor = nightly_subtotal_minor + mandatory_fees_minor + optional_fees_minor + taxes_minor + card_fee_minor - discounts_minor. When available is false only availability_status, inventory_held, checked_at, canonical_url, incomplete and missing are present. The itemised _minor amounts are null only when missing includes price_breakdown."},"detail":"Field `quote` was removed from `get_live_quote` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_type_changed","path":"outputSchema.properties.pets","tool":"get_live_quote","after":"boolean","before":"integer","detail":"Type of `pets` on `get_live_quote` changed integer → boolean.","severity":"breaking"},{"kind":"description_changed","tool":"get_property_details","after":"Full detail for one property: bedrooms, capacity, amenities recorded by the property manager, photos, house rules and the real check-in, check-out, deposit and pet policies for that specific home. Location is given at neighbourhood level; the exact address is shared after booking. Guest reviews are a selection of 4- and 5-star reviews, each with its source; no average rating exists.","before":"Full detail for one property: bedrooms, capacity, amenities recorded by the property manager, photos, house rules and the real check-in, check-out, deposit and pet policies for that specific home. Location is given at neighbourhood level; the exact address is shared after booking. Guest reviews are a selection of 4- and 5-star reviews, each with its source; no average rating exists. `accommodation_type` and `bathroom_sharing` say whether the guest rents an entire home or a room: a private room or shared room is not an entire home.","detail":"Description of `get_property_details` changed (17% word delta).","severity":"safe","descriptionDelta":0.16923076923076918},{"kind":"output_property_removed","path":"outputSchema.properties.bathroom_sharing","tool":"get_property_details","before":{"enum":["private","shared","unknown"],"type":"string","description":"Whether the guest has a private bathroom or shares one. unknown means it is not recorded for this home."},"detail":"Field `bathroom_sharing` was removed from `get_property_details` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.accommodation_type","tool":"get_property_details","before":{"enum":["entire_home","private_room","shared_room","unknown"],"type":"string","description":"What the guest rents: an entire home, a private room in a shared building or a shared room. A private room or shared room is not an entire home. unknown means the type is not recorded for this home."},"detail":"Field `accommodation_type` was removed from `get_property_details` output; consumers reading it will break.","severity":"breaking"},{"kind":"description_changed","tool":"list_markets","after":"Every city where Luxury Lodging has directly bookable homes, with the state or region, the country, how many homes and the largest group each can sleep. It shows whether a destination is covered, including when a guest has not named a place.","before":"Every city where Luxury Lodging has directly bookable homes, with the state or region, the country, how many homes and the largest group each can sleep. Counts are given for the city alone and for the wider area a search covers, split into whole homes and rooms. It shows whether a destination is covered, including when a guest has not named a place.","detail":"Description of `list_markets` changed (27% word delta).","severity":"risky","descriptionDelta":0.26530612244897955},{"kind":"description_changed","tool":"search_properties","after":"Searches Luxury Lodging's directly bookable vacation rentals by destination, dates, group size, bedrooms and amenities. With dates, only homes confirmed available are returned, each with a stay total that includes cleaning, fees and taxes; nightly rates exclude them. Interchangeable units of the same type are returned once, with every unit's id listed in `similar_units` so any of them can still be quoted and booked; `limit` counts those results, while `total_matching` counts the individual homes confirmed available. A busy market can hold more homes than one request can price, so `unpriced_in_time` counts matching homes whose availability was not established: they are unknown, not unavailable. Pet-friendly searches also report `pet_policy_unknown`: otherwise matching homes with unverified pet policies, with or without dates. While either count is above zero, the results are not the whole market; `price_all_matches`, a higher `limit`, or a narrower place covers more of it.","before":"Searches Luxury Lodging's directly bookable vacation rentals by destination, dates, group size, bedrooms and amenities. With dates, only homes confirmed available are returned, each with a stay total that includes cleaning, fees and taxes; nightly rates exclude them. Interchangeable units of the same type are returned once, with every unit's id listed in `similar_units` so any of them can still be quoted and booked; `limit` counts those results, while `total_matching` counts the individual homes confirmed available. A busy market can hold more homes than one request can price, so `unpriced_in_time` counts matching homes whose availability was not established: they are unknown, not unavailable, and `unpriced_property_ids` lists the property_id of up to 30 of them, each of which can be priced individually with a live quote. Pet-friendly searches also report `pet_policy_unknown`: otherwise matching homes with unverified pet policies, with or without dates. While either count is above zero, the results are not the whole market; `price_all_matches`, a higher `limit`, or a narrower place covers more of it. Without dates no price is returned. Each result carries `accommodation_type` and `bathroom_sharing`: a private room or shared room is not an entire home. Optional filters cover accommodation type, exact bedrooms, required amenities and a budget; results can be paged with `cursor`, and `completeness` is partial when a matching home was left unpriced or unchecked. A query that names a known landmark or area (\"near McCormick Place\") returns homes within `radius_miles` of it, nearest first, each with `distance_miles` and `distance_type` straight_line: a direct distance, not a driving or walking route.","detail":"Description of `search_properties` changed (36% word delta).","severity":"risky","descriptionDelta":0.35624999999999996},{"kind":"input_property_removed","path":"inputSchema.properties.page","tool":"search_properties","before":{"type":"integer","minimum":1,"description":"Page number, starting at 1, counted in units of page_size. Cannot be sent together with cursor."},"detail":"Field `page` was removed from `search_properties` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"input_property_removed","path":"inputSchema.properties.budget","tool":"search_properties","before":{"type":"object","required":["amount","currency","scope"],"properties":{"scope":{"enum":["total","nightly"],"type":"string","description":"total: the whole stay, with dates. nightly: the starting nightly rate, excluding fees and taxes."},"amount":{"type":"number","maximum":1000000,"description":"The limit, in the stated currency.","exclusiveMinimum":0},"currency":{"enum":["USD"],"type":"string","description":"Only USD is supported."}},"description":"A spending limit. scope total compares amount with each home's stay total including cleaning, fees and taxes, and needs check_in and check_out. scope nightly compares it with each home's starting nightly rate, which excludes cleaning, fees and taxes. amount, currency and scope are all required.","additionalProperties":false},"detail":"Field `budget` was removed from `search_properties` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"input_property_removed","path":"inputSchema.properties.cursor","tool":"search_properties","before":{"type":"string","description":"The next_cursor value of the previous response, valid only with the same other inputs. Returns the page after it."},"detail":"Field `cursor` was removed from `search_properties` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"input_property_removed","path":"inputSchema.properties.page_size","tool":"search_properties","before":{"type":"integer","maximum":20,"minimum":1,"description":"Results per page, up to 20. Takes the place of limit when both are sent."},"detail":"Field `page_size` was removed from `search_properties` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"input_property_removed","path":"inputSchema.properties.radius_miles","tool":"search_properties","before":{"type":"integer","maximum":25,"minimum":1,"description":"How far from a named landmark or area to search, in whole miles, 1 to 25. Homes are included by the distance they state, to the nearest half mile. Defaults to 5 for a landmark and 3 for an area. Ignored for any other place."},"detail":"Field `radius_miles` was removed from `search_properties` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"input_property_removed","path":"inputSchema.properties.bedrooms_exact","tool":"search_properties","before":{"type":"integer","maximum":100,"minimum":0,"description":"Exactly this many bedrooms; 0 is a studio. Cannot be sent together with bedrooms_min."},"detail":"Field `bedrooms_exact` was removed from `search_properties` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"input_property_removed","path":"inputSchema.properties.accommodation_type","tool":"search_properties","before":{"enum":["entire_home","private_room","shared_room"],"type":"string","description":"What the guest rents. Homes whose type is not recorded are left out and counted in accommodation_type_unknown."},"detail":"Field `accommodation_type` was removed from `search_properties` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"input_property_removed","path":"inputSchema.properties.amenities_required","tool":"search_properties","before":{"type":"array","items":{"enum":["pool","hot_tub","parking","wifi","kitchen","washer","pets"],"type":"string"},"description":"Amenities every returned home has. A home whose amenity data is unavailable fails the filter and is counted in amenities_unknown."},"detail":"Field `amenities_required` was removed from `search_properties` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"input_property_removed","path":"inputSchema.properties.amenities_preferred","tool":"search_properties","before":{"type":"array","items":{"enum":["pool","hot_tub","parking","wifi","kitchen","washer","pets"],"type":"string"},"description":"Amenities that order homes when the requested sort ties, and appear in match_reasons. Homes lacking them stay in the results."},"detail":"Field `amenities_preferred` was removed from `search_properties` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"input_type_changed","path":"inputSchema.properties.pets","tool":"search_properties","after":"boolean","before":"integer|boolean","detail":"Type of `pets` on `search_properties` changed integer|boolean → boolean.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.offset","tool":"search_properties","before":{"type":"integer","description":"How many results precede this page in the full ordering."},"detail":"Field `offset` was removed from `search_properties` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.status","tool":"search_properties","before":{"enum":["OK","NO_MATCHES"],"type":"string","description":"NO_MATCHES: nothing matched and nothing is unknown (unpriced_in_time and pet_policy_unknown are both 0). It is a normal answer, not an error. Any other search is OK, even with no results, and unpriced_in_time and pet_policy_unknown say what is still unknown."},"detail":"Field `status` was removed from `search_properties` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.has_more","tool":"search_properties","before":{"type":"boolean","description":"True when more results follow this page in the same ordering, within the priced sample. Homes counted in unpriced_in_time are not part of any page and have no effect on this."},"detail":"Field `has_more` was removed from `search_properties` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.page_size","tool":"search_properties","before":{"type":"integer","description":"How many results this page asked for."},"detail":"Field `page_size` was removed from `search_properties` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.next_cursor","tool":"search_properties","before":{"type":["string","null"],"description":"The value to send as cursor, with every other input unchanged, to get the next page. Null when has_more is false."},"detail":"Field `next_cursor` was removed from `search_properties` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.completeness","tool":"search_properties","before":{"enum":["complete","partial"],"type":"string","description":"complete: no matching home is unpriced, and none was left out for an unknown pet policy, accommodation type, amenity data, starting rate or position. partial: at least one is, so the results may omit a home that matches."},"detail":"Field `completeness` was removed from `search_properties` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.search_scope","tool":"search_properties","before":{"type":"object","required":["place","type"],"properties":{"type":{"enum":["all_homes","metro","state","city","nearby_or_text","landmark","area"],"type":"string","description":"metro: the metro area around the named city, within radius_miles. state: the whole state. city: homes in the named city. nearby_or_text: homes near the place or whose listing text matches it. landmark: homes within radius_miles of a named landmark, nearest first, by straight-line distance. area: the same, measured from the centre of a named area such as the South Loop."},"place":{"type":["string","null"],"description":"The place searched; null when no place was given and every home was searched."},"radius_miles":{"type":"number","description":"How far from its centre or point homes are included; given for a metro, landmark or area."}},"description":"The place actually searched and how it was read."},"detail":"Field `search_scope` was removed from `search_properties` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.budget_applied","tool":"search_properties","before":{"type":"object","required":["scope","amount","currency","compared_to","includes_fees_and_taxes","note"],"properties":{"note":{"type":"string"},"scope":{"enum":["total","nightly"],"type":"string"},"amount":{"type":"number"},"currency":{"type":"string"},"compared_to":{"enum":["stay_total","from_price_per_night"],"type":"string","description":"stay_total includes cleaning, fees and taxes; from_price_per_night is a starting nightly rate that excludes them."},"homes_not_checked":{"type":"integer","description":"Matching homes the budget could not be checked against: unpriced for a total budget, no starting rate for a nightly one."},"includes_fees_and_taxes":{"type":"boolean"}},"description":"Only returned when a budget was sent: what it was compared with."},"detail":"Field `budget_applied` was removed from `search_properties` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.distance_unknown","tool":"search_properties","before":{"type":"integer","description":"Only on a landmark or area search: otherwise matching homes left out because no position is recorded for them, so their distance is unknown. They are not confirmed to be outside the radius."},"detail":"Field `distance_unknown` was removed from `search_properties` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.amenities_unknown","tool":"search_properties","before":{"type":"integer","description":"Otherwise matching homes left out of an amenities_required search because no amenity data is available for them. They are not confirmed to lack the amenity. 0 when the filter was not sent."},"detail":"Field `amenities_unknown` was removed from `search_properties` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.budget_unverified","tool":"search_properties","before":{"type":"integer","description":"Otherwise matching homes left out of a nightly budget search because no starting nightly rate is on record. 0 when the budget was not sent or was a total budget."},"detail":"Field `budget_unverified` was removed from `search_properties` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.unpriced_property_ids","tool":"search_properties","before":{"type":"array","items":{"type":"integer"},"maxItems":30,"description":"The property_id of up to 30 of the homes counted in unpriced_in_time; each can be priced individually with a live quote. Homes whose quote failed or timed out come first, then homes the request did not reach. A home listed here is unknown, not unavailable."},"detail":"Field `unpriced_property_ids` was removed from `search_properties` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.accommodation_type_unknown","tool":"search_properties","before":{"type":"integer","description":"Otherwise matching homes left out of an accommodation_type search because no type is recorded for them. They are not confirmed to be another type. 0 when the filter was not sent."},"detail":"Field `accommodation_type_unknown` was removed from `search_properties` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.budget_unverified_property_ids","tool":"search_properties","before":{"type":"array","items":{"type":"integer"},"maxItems":30,"description":"The property_id of up to 30 of the homes counted in budget_unverified; each can be priced for specific dates with a live quote."},"detail":"Field `budget_unverified_property_ids` was removed from `search_properties` output; consumers reading it will break.","severity":"breaking"}],"published_at":"2026-10-03T08:01:15.914Z"},{"slug":"ZV-2026-1729","server_name":"stay.luxurylodgingpm.com","severity":"breaking","title":"stay.luxurylodgingpm.com: Type of pets on compare_properties changed boolean → integer|boolean.","summary":"[breaking] Type of pets on compare_properties changed boolean → integer|boolean. [breaking] Type of pets on get_live_quote changed boolean → integer|boolean. [breaking] Type of pets on get_live_quote changed boolean → integer. [breaking] Type of pets on search_properties changed boolean → integer|boolean. [risky] Field status was added to search_properties output.","changes":[{"kind":"input_type_changed","path":"inputSchema.properties.pets","tool":"compare_properties","after":"integer|boolean","before":"boolean","detail":"Type of `pets` on `compare_properties` changed boolean → integer|boolean.","severity":"breaking"},{"kind":"input_type_changed","path":"inputSchema.properties.pets","tool":"get_live_quote","after":"integer|boolean","before":"boolean","detail":"Type of `pets` on `get_live_quote` changed boolean → integer|boolean.","severity":"breaking"},{"kind":"output_type_changed","path":"outputSchema.properties.pets","tool":"get_live_quote","after":"integer","before":"boolean","detail":"Type of `pets` on `get_live_quote` changed boolean → integer.","severity":"breaking"},{"kind":"input_type_changed","path":"inputSchema.properties.pets","tool":"search_properties","after":"integer|boolean","before":"boolean","detail":"Type of `pets` on `search_properties` changed boolean → integer|boolean.","severity":"breaking"},{"kind":"output_property_added","path":"outputSchema.properties.status","tool":"search_properties","after":{"enum":["OK","NO_MATCHES"],"type":"string","description":"NO_MATCHES: nothing matched and nothing is unknown (unpriced_in_time and pet_policy_unknown are both 0). It is a normal answer, not an error. Any other search is OK, even with no results, and unpriced_in_time and pet_policy_unknown say what is still unknown."},"detail":"Field `status` was added to `search_properties` output.","severity":"risky"}],"published_at":"2026-10-02T19:26:16.600Z"},{"slug":"ZV-2026-1583","server_name":"stay.luxurylodgingpm.com","severity":"breaking","title":"stay.luxurylodgingpm.com: Field stay_total was removed from get_live_quote output; consumers reading it will break.","summary":"[safe] Description of compare_properties changed (17% word delta). [risky] Description of get_availability changed (33% word delta). [risky] Description of get_live_quote changed (52% word delta). [breaking] Field stay_total was removed from get_live_quote output; consumers reading it will break. [breaking] Field rate_options was removed from get_live_quote output; consumers reading it will break. [breaking] Field payment_schedule was removed from get_live_quote output; consumers reading it will break. [risky] Description of get_property_details changed (31% word delta). [safe] Description of list_markets changed (17% word delta). [risky] Description of search_properties changed (27% word delta).","changes":[{"kind":"description_changed","tool":"compare_properties","after":"Compare 2 to 5 homes in one call: size, the amenities guests choose by, review counts, each home's own check-in time, deposit and pet policy, and with dates, availability and the stay total for each. Use it when a guest is deciding between homes.","before":"Compares 2 to 5 homes in one call: size, the amenities guests choose by, review counts, each home's own check-in time, deposit and pet policy, and with dates, availability and the stay total for each, for a guest deciding between specific homes.","detail":"Description of `compare_properties` changed (17% word delta).","severity":"safe","descriptionDelta":0.16666666666666663},{"kind":"description_changed","tool":"get_availability","after":"Open and blocked nights for one property over a date range of up to 93 days, with its minimum stay. Use this to suggest alternative dates; use get_live_quote to confirm and price a specific stay.","before":"Open and blocked nights for one property over a date range of up to 93 days, with its minimum stay. It shows which alternative dates are open; it does not price or confirm a stay.","detail":"Description of `get_availability` changed (33% word delta).","severity":"risky","descriptionDelta":0.33333333333333337},{"kind":"description_changed","tool":"get_live_quote","after":"Live price for one property and one stay, including cleaning, fees and taxes, plus the refundable deposit hold and that home's cancellation and check-in terms. Returns a booking_url the guest opens to complete the booking and accept the rental terms on Luxury Lodging's own site. State the total, never the nightly rate alone, and never promise a refund.","before":"Live price for one property and one stay. stay_total includes cleaning, fees and taxes; nightly rates exclude them. Also returns the refundable deposit hold, which is separate from the total, the payment schedule, and that home's own cancellation and check-in terms. The top-level totals and cancellation are the non-refundable rate; rate_options lists every rate on offer with its own terms, total and booking_url, including a refundable rate with its free-cancellation deadline when check-in is more than 30 days away. Returns a booking_url the guest opens to complete the booking and accept the rental terms on Luxury Lodging's own site; this tool does not book or take payment.","detail":"Description of `get_live_quote` changed (52% word delta).","severity":"risky","descriptionDelta":0.5238095238095238},{"kind":"output_property_removed","path":"outputSchema.properties.stay_total","tool":"get_live_quote","before":{"type":["number","null"],"description":"The price of the stay, including cleaning, fees and taxes. Nightly rates exclude them."},"detail":"Field `stay_total` was removed from `get_live_quote` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.rate_options","tool":"get_live_quote","before":{"type":"array","items":{"type":"object","required":["plan","stay_total","total_due_now","cancellation","booking_url"],"properties":{"plan":{"enum":["non_refundable","refundable"],"type":"string"},"stay_total":{"type":"number"},"booking_url":{"type":"string"},"cancellation":{"type":"string","description":"This rate's terms."},"total_due_now":{"type":"number"},"price_breakdown":{"type":"object"},"payment_schedule":{"type":"object"},"free_cancel_until":{"type":"string","description":"Refundable rate only. The last instant, in UTC, the stay can be cancelled for a full refund."}}},"description":"Every rate on offer for this stay. The first is the non-refundable rate (the same totals as the top level). When check-in is more than 30 days away a refundable rate follows: 8% more on the nightly subtotal, taxed as rent, cancellable for a full refund of everything paid until free_cancel_until. Each rate has its own booking_url."},"detail":"Field `rate_options` was removed from `get_live_quote` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.payment_schedule","tool":"get_live_quote","before":{"type":"object","properties":{"plan":{"enum":["full","deposit"],"type":"string"},"balance":{"type":"number"},"due_at_booking":{"type":"number"},"balance_charged_on":{"type":"string"}},"description":"When the guest pays. plan 'deposit': due_at_booking now and the balance charged automatically to the same card on balance_charged_on (60 days before check-in). plan 'full': everything at booking."},"detail":"Field `payment_schedule` was removed from `get_live_quote` output; consumers reading it will break.","severity":"breaking"},{"kind":"description_changed","tool":"get_property_details","after":"Full detail for one property: bedrooms, capacity, amenities recorded by the property manager, photos, house rules and the real check-in, check-out, deposit and pet policies for that specific home. Location is given at neighbourhood level; the exact address is shared after booking.","before":"Full detail for one property: bedrooms, capacity, amenities recorded by the property manager, photos, house rules and the real check-in, check-out, deposit and pet policies for that specific home. Location is given at neighbourhood level; the exact address is shared after booking. Guest reviews are a selection of 4- and 5-star reviews, each with its source; no average rating exists.","detail":"Description of `get_property_details` changed (31% word delta).","severity":"risky","descriptionDelta":0.31481481481481477},{"kind":"description_changed","tool":"list_markets","after":"Every city where Luxury Lodging has directly bookable homes, with the state or region, the country, how many homes and the largest group each can sleep. Use it when a guest has not named a place, or to check whether a destination is covered before searching.","before":"Every city where Luxury Lodging has directly bookable homes, with the state or region, the country, how many homes and the largest group each can sleep. It shows whether a destination is covered, including when a guest has not named a place.","detail":"Description of `list_markets` changed (17% word delta).","severity":"safe","descriptionDelta":0.1707317073170732},{"kind":"description_changed","tool":"search_properties","after":"Search Luxury Lodging's directly bookable vacation rentals by destination, dates, group size, bedrooms and amenities. With dates, only homes confirmed available are returned. Interchangeable units of the same type are returned once, with every unit's id listed in `similar_units` so any of them can still be quoted and booked; `limit` counts those results, while `total_matching` counts the individual homes confirmed available. A busy market can hold more than one request can price, so `unpriced_in_time` counts matching homes whose availability was never established: they are unknown, not unavailable. Pet-friendly searches also report `pet_policy_unknown`: otherwise matching homes with unverified policies, including without dates. Never tell a guest a place has nothing when either unknown count is above zero -- set `price_all_matches` to check the whole market, raise `limit`, narrow the place, or quote a specific home. Always quote the stay total from get_live_quote rather than the nightly rate.","before":"Searches Luxury Lodging's directly bookable vacation rentals by destination, dates, group size, bedrooms and amenities. With dates, only homes confirmed available are returned, each with a stay total that includes cleaning, fees and taxes; nightly rates exclude them. Interchangeable units of the same type are returned once, with every unit's id listed in `similar_units` so any of them can still be quoted and booked; `limit` counts those results, while `total_matching` counts the individual homes confirmed available. A busy market can hold more homes than one request can price, so `unpriced_in_time` counts matching homes whose availability was not established: they are unknown, not unavailable. Pet-friendly searches also report `pet_policy_unknown`: otherwise matching homes with unverified pet policies, with or without dates. While either count is above zero, the results are not the whole market; `price_all_matches`, a higher `limit`, or a narrower place covers more of it.","detail":"Description of `search_properties` changed (27% word delta).","severity":"risky","descriptionDelta":0.2661290322580645}],"published_at":"2026-09-29T08:02:13.168Z"},{"slug":"ZV-2026-1494","server_name":"stay.luxurylodgingpm.com","severity":"breaking","title":"stay.luxurylodgingpm.com: Field stay_total was removed from get_live_quote output; consumers reading it will break.","summary":"[safe] Description of compare_properties changed (17% word delta). [risky] Description of get_availability changed (33% word delta). [risky] Description of get_live_quote changed (43% word delta). [breaking] Field stay_total was removed from get_live_quote output; consumers reading it will break. [breaking] Field payment_schedule was removed from get_live_quote output; consumers reading it will break. [risky] Description of get_property_details changed (31% word delta). [safe] Description of list_markets changed (17% word delta). [risky] Description of search_properties changed (27% word delta).","changes":[{"kind":"description_changed","tool":"compare_properties","after":"Compare 2 to 5 homes in one call: size, the amenities guests choose by, review counts, each home's own check-in time, deposit and pet policy, and with dates, availability and the stay total for each. Use it when a guest is deciding between homes.","before":"Compares 2 to 5 homes in one call: size, the amenities guests choose by, review counts, each home's own check-in time, deposit and pet policy, and with dates, availability and the stay total for each, for a guest deciding between specific homes.","detail":"Description of `compare_properties` changed (17% word delta).","severity":"safe","descriptionDelta":0.16666666666666663},{"kind":"description_changed","tool":"get_availability","after":"Open and blocked nights for one property over a date range of up to 93 days, with its minimum stay. Use this to suggest alternative dates; use get_live_quote to confirm and price a specific stay.","before":"Open and blocked nights for one property over a date range of up to 93 days, with its minimum stay. It shows which alternative dates are open; it does not price or confirm a stay.","detail":"Description of `get_availability` changed (33% word delta).","severity":"risky","descriptionDelta":0.33333333333333337},{"kind":"description_changed","tool":"get_live_quote","after":"Live price for one property and one stay, including cleaning, fees and taxes, plus the refundable deposit hold and that home's cancellation and check-in terms. Returns a booking_url the guest opens to complete the booking and accept the rental terms on Luxury Lodging's own site. State the total, never the nightly rate alone, and never promise a refund.","before":"Live price for one property and one stay. stay_total includes cleaning, fees and taxes; nightly rates exclude them. Also returns the refundable deposit hold, which is separate from the total, the payment schedule, and that home's own cancellation and check-in terms, which are the only refund terms that apply. Returns a booking_url the guest opens to complete the booking and accept the rental terms on Luxury Lodging's own site; this tool does not book or take payment.","detail":"Description of `get_live_quote` changed (43% word delta).","severity":"risky","descriptionDelta":0.42647058823529416},{"kind":"output_property_removed","path":"outputSchema.properties.stay_total","tool":"get_live_quote","before":{"type":["number","null"],"description":"The price of the stay, including cleaning, fees and taxes. Nightly rates exclude them."},"detail":"Field `stay_total` was removed from `get_live_quote` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.payment_schedule","tool":"get_live_quote","before":{"type":"object","properties":{"plan":{"enum":["full","deposit"],"type":"string"},"balance":{"type":"number"},"due_at_booking":{"type":"number"},"balance_charged_on":{"type":"string"}},"description":"When the guest pays. plan 'deposit': due_at_booking now and the balance charged automatically to the same card on balance_charged_on (60 days before check-in). plan 'full': everything at booking."},"detail":"Field `payment_schedule` was removed from `get_live_quote` output; consumers reading it will break.","severity":"breaking"},{"kind":"description_changed","tool":"get_property_details","after":"Full detail for one property: bedrooms, capacity, amenities recorded by the property manager, photos, house rules and the real check-in, check-out, deposit and pet policies for that specific home. Location is given at neighbourhood level; the exact address is shared after booking.","before":"Full detail for one property: bedrooms, capacity, amenities recorded by the property manager, photos, house rules and the real check-in, check-out, deposit and pet policies for that specific home. Location is given at neighbourhood level; the exact address is shared after booking. Guest reviews are a selection of 4- and 5-star reviews, each with its source; no average rating exists.","detail":"Description of `get_property_details` changed (31% word delta).","severity":"risky","descriptionDelta":0.31481481481481477},{"kind":"description_changed","tool":"list_markets","after":"Every city where Luxury Lodging has directly bookable homes, with the state or region, the country, how many homes and the largest group each can sleep. Use it when a guest has not named a place, or to check whether a destination is covered before searching.","before":"Every city where Luxury Lodging has directly bookable homes, with the state or region, the country, how many homes and the largest group each can sleep. It shows whether a destination is covered, including when a guest has not named a place.","detail":"Description of `list_markets` changed (17% word delta).","severity":"safe","descriptionDelta":0.1707317073170732},{"kind":"description_changed","tool":"search_properties","after":"Search Luxury Lodging's directly bookable vacation rentals by destination, dates, group size, bedrooms and amenities. With dates, only homes confirmed available are returned. Interchangeable units of the same type are returned once, with every unit's id listed in `similar_units` so any of them can still be quoted and booked; `limit` counts those results, while `total_matching` counts the individual homes confirmed available. A busy market can hold more than one request can price, so `unpriced_in_time` counts matching homes whose availability was never established: they are unknown, not unavailable. Pet-friendly searches also report `pet_policy_unknown`: otherwise matching homes with unverified policies, including without dates. Never tell a guest a place has nothing when either unknown count is above zero -- set `price_all_matches` to check the whole market, raise `limit`, narrow the place, or quote a specific home. Always quote the stay total from get_live_quote rather than the nightly rate.","before":"Searches Luxury Lodging's directly bookable vacation rentals by destination, dates, group size, bedrooms and amenities. With dates, only homes confirmed available are returned, each with a stay total that includes cleaning, fees and taxes; nightly rates exclude them. Interchangeable units of the same type are returned once, with every unit's id listed in `similar_units` so any of them can still be quoted and booked; `limit` counts those results, while `total_matching` counts the individual homes confirmed available. A busy market can hold more homes than one request can price, so `unpriced_in_time` counts matching homes whose availability was not established: they are unknown, not unavailable. Pet-friendly searches also report `pet_policy_unknown`: otherwise matching homes with unverified pet policies, with or without dates. While either count is above zero, the results are not the whole market; `price_all_matches`, a higher `limit`, or a narrower place covers more of it.","detail":"Description of `search_properties` changed (27% word delta).","severity":"risky","descriptionDelta":0.2661290322580645}],"published_at":"2026-09-27T08:04:15.082Z"},{"slug":"ZV-2026-1383","server_name":"stay.luxurylodgingpm.com","severity":"breaking","title":"stay.luxurylodgingpm.com: Field pet_policy_unknown was removed from search_properties output; consumers reading it will break.","summary":"[safe] Description of search_properties changed (13% word delta). [breaking] Field pet_policy_unknown was removed from search_properties output; consumers reading it will break.","changes":[{"kind":"description_changed","tool":"search_properties","after":"Search Luxury Lodging's directly bookable vacation rentals by destination, dates, group size, bedrooms and amenities. With dates, only homes confirmed available are returned. Interchangeable units of the same type are returned once, with every unit's id listed in `similar_units` so any of them can still be quoted and booked; `limit` counts those results, while `total_matching` counts the individual homes confirmed available. A busy market can hold more than one request can price, so `unpriced_in_time` counts matching homes whose availability was never established: they are unknown, not unavailable. Never tell a guest a place has nothing when that number is above zero -- set `price_all_matches` to check the whole market, raise `limit`, narrow the place, or quote a specific home. Always quote the stay total from get_live_quote rather than the nightly rate.","before":"Search Luxury Lodging's directly bookable vacation rentals by destination, dates, group size, bedrooms and amenities. With dates, only homes confirmed available are returned. Interchangeable units of the same type are returned once, with every unit's id listed in `similar_units` so any of them can still be quoted and booked; `limit` counts those results, while `total_matching` counts the individual homes confirmed available. A busy market can hold more than one request can price, so `unpriced_in_time` counts matching homes whose availability was never established: they are unknown, not unavailable. Pet-friendly searches also report `pet_policy_unknown`: otherwise matching homes with unverified policies, including without dates. Never tell a guest a place has nothing when either unknown count is above zero -- set `price_all_matches` to check the whole market, raise `limit`, narrow the place, or quote a specific home. Always quote the stay total from get_live_quote rather than the nightly rate.","detail":"Description of `search_properties` changed (13% word delta).","severity":"safe","descriptionDelta":0.13157894736842102},{"kind":"output_property_removed","path":"outputSchema.properties.pet_policy_unknown","tool":"search_properties","before":{"type":"integer","description":"Otherwise matching homes omitted from a pet-friendly search because their pet policy is unknown, not confirmed to prohibit pets. Applies with or without dates; included in unpriced_in_time when dated. A positive count means the pet-friendly inventory is incomplete."},"detail":"Field `pet_policy_unknown` was removed from `search_properties` output; consumers reading it will break.","severity":"breaking"}],"published_at":"2026-09-24T07:21:13.932Z"},{"slug":"ZV-2026-1350","server_name":"stay.luxurylodgingpm.com","severity":"breaking","title":"stay.luxurylodgingpm.com: Field note was removed from compare_properties output; consumers reading it will break.","summary":"[breaking] Field note was removed from compare_properties output; consumers reading it will break. [breaking] Field homes was removed from compare_properties output; consumers reading it will break. [breaking] Field compared was removed from compare_properties output; consumers reading it will break. [breaking] Field dates_checked was removed from compare_properties output; consumers reading it will break. [breaking] Field note was removed from get_availability output; consumers reading it will break. [breaking] Field end_date was removed from get_availability output; consumers reading it will break. [breaking] Field open_dates was removed from get_availability output; consumers reading it will break. [breaking] Field start_date was removed from get_availability output; consumers reading it will break. [breaking] Field nights_open was removed from get_availability output; consumers reading it will break. [breaking] Field property_id was removed from get_availability output; consumers reading it will break. [breaking] Field blocked_dates was removed from get_availability output; consumers reading it will break. [breaking] Field minimum_nights was removed from get_availability output; consumers reading it will break. [breaking] Field nights_blocked was removed from get_availability output; consumers reading it will break. [breaking] Field name was removed from get_live_quote output; consumers reading it will break. [breaking] Field note was removed from get_live_quote output; consumers reading it will break. [breaking] Field pets was removed from get_live_quote output; consumers reading it will break. [breaking] Field guests was removed from get_live_quote output; consumers reading it will break. [breaking] Field nights was removed from get_live_quote output; consumers reading it will break. [breaking] Field reason was removed from get_live_quote output; consumers reading it will break. [breaking] Field check_in was removed from get_live_quote output; consumers readin","changes":[{"kind":"output_property_removed","path":"outputSchema.properties.note","tool":"compare_properties","before":{"type":"string"},"detail":"Field `note` was removed from `compare_properties` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.homes","tool":"compare_properties","before":{"type":"array","items":{"type":"object","required":["property_id","booking_url"],"properties":{"city":{"type":"string"},"name":{"type":"string"},"state":{"type":["string","null"]},"nights":{"type":["integer","null"]},"reason":{"type":"string"},"sleeps":{"type":["integer","null"]},"pet_fee":{"type":["number","null"]},"bedrooms":{"type":["number","null"]},"available":{"type":"boolean","description":"Only present when dates were given. A reason of not_checked means this home's availability could not be read, not that it is booked."},"bathrooms":{"type":["number","null"]},"highlights":{"type":"array","items":{"type":"string"},"description":"Up to three short phrases an agent can repeat when recommending the home."},"stay_total":{"type":"number"},"booking_url":{"type":"string"},"detail_note":{"type":"string"},"property_id":{"type":"integer"},"check_out_by":{"type":"string"},"pets_allowed":{"type":"boolean"},"review_count":{"type":"integer","description":"How many 4- and 5-star reviews this home has. Never present this as, or derive, an average rating."},"avg_per_night":{"type":"number"},"check_in_from":{"type":"string"},"neighbourhood":{"type":["string","null"],"description":"Neighbourhood-level location only; the exact address is shared after booking."},"top_amenities":{"type":"array","items":{"type":"string"}},"review_sources":{"type":"array","items":{"type":"string"},"description":"Which platforms those reviews came from."},"details_available":{"type":"boolean","description":"Only present, and only false, when this home's record could not be loaded. Such a row carries no name, place, amenity or review fields at all -- read detail_note, and call get_property_details for it again."},"stay_total_display":{"type":"string"},"from_price_per_night":{"type":["number","null"]},"security_deposit_hold":{"type":["number","null"]}}}},"detail":"Field `homes` was removed from `compare_properties` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.compared","tool":"compare_properties","before":{"type":"integer"},"detail":"Field `compared` was removed from `compare_properties` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.dates_checked","tool":"compare_properties","before":{"type":"boolean"},"detail":"Field `dates_checked` was removed from `compare_properties` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.note","tool":"get_availability","before":{"type":"string"},"detail":"Field `note` was removed from `get_availability` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.end_date","tool":"get_availability","before":{"type":"string"},"detail":"Field `end_date` was removed from `get_availability` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.open_dates","tool":"get_availability","before":{"type":"array","items":{"type":"string"},"description":"YYYY-MM-DD nights that are open. They still have to satisfy minimum stay and arrival rules."},"detail":"Field `open_dates` was removed from `get_availability` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.start_date","tool":"get_availability","before":{"type":"string"},"detail":"Field `start_date` was removed from `get_availability` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.nights_open","tool":"get_availability","before":{"type":"integer"},"detail":"Field `nights_open` was removed from `get_availability` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.property_id","tool":"get_availability","before":{"type":"integer"},"detail":"Field `property_id` was removed from `get_availability` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.blocked_dates","tool":"get_availability","before":{"type":"array","items":{"type":"string"}},"detail":"Field `blocked_dates` was removed from `get_availability` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.minimum_nights","tool":"get_availability","before":{"type":["number","null"]},"detail":"Field `minimum_nights` was removed from `get_availability` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.nights_blocked","tool":"get_availability","before":{"type":"integer"},"detail":"Field `nights_blocked` was removed from `get_availability` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.name","tool":"get_live_quote","before":{"type":"string"},"detail":"Field `name` was removed from `get_live_quote` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.note","tool":"get_live_quote","before":{"type":"string"},"detail":"Field `note` was removed from `get_live_quote` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.pets","tool":"get_live_quote","before":{"type":"boolean"},"detail":"Field `pets` was removed from `get_live_quote` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.guests","tool":"get_live_quote","before":{"type":"integer"},"detail":"Field `guests` was removed from `get_live_quote` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.nights","tool":"get_live_quote","before":{"type":["integer","null"]},"detail":"Field `nights` was removed from `get_live_quote` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.reason","tool":"get_live_quote","before":{"type":"string","description":"Why the stay cannot be booked. Only present when available is false."},"detail":"Field `reason` was removed from `get_live_quote` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.check_in","tool":"get_live_quote","before":{"type":"string"},"detail":"Field `check_in` was removed from `get_live_quote` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.currency","tool":"get_live_quote","before":{"type":"string"},"detail":"Field `currency` was removed from `get_live_quote` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.available","tool":"get_live_quote","before":{"type":"boolean"},"detail":"Field `available` was removed from `get_live_quote` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.check_out","tool":"get_live_quote","before":{"type":"string"},"detail":"Field `check_out` was removed from `get_live_quote` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.quoted_at","tool":"get_live_quote","before":{"type":"string"},"detail":"Field `quoted_at` was removed from `get_live_quote` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.booking_url","tool":"get_live_quote","before":{"type":"string"},"detail":"Field `booking_url` was removed from `get_live_quote` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.property_id","tool":"get_live_quote","before":{"type":"integer"},"detail":"Field `property_id` was removed from `get_live_quote` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.cancellation","tool":"get_live_quote","before":{"type":"string","description":"This home's terms. Never promise a refund beyond what this says."},"detail":"Field `cancellation` was removed from `get_live_quote` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.check_out_by","tool":"get_live_quote","before":{"type":"string"},"detail":"Field `check_out_by` was removed from `get_live_quote` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.check_in_from","tool":"get_live_quote","before":{"type":"string"},"detail":"Field `check_in_from` was removed from `get_live_quote` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.total_display","tool":"get_live_quote","before":{"type":"string"},"detail":"Field `total_display` was removed from `get_live_quote` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.total_due_now","tool":"get_live_quote","before":{"type":["number","null"],"description":"Everything the guest pays at booking, including cleaning, fees and taxes. State this, never the nightly rate alone."},"detail":"Field `total_due_now` was removed from `get_live_quote` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.maximum_nights","tool":"get_live_quote","before":{"type":["number","null"]},"detail":"Field `maximum_nights` was removed from `get_live_quote` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.minimum_nights","tool":"get_live_quote","before":{"type":["number","null"]},"detail":"Field `minimum_nights` was removed from `get_live_quote` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.price_breakdown","tool":"get_live_quote","before":{"type":["object","null"],"properties":{"taxes":{"type":["number","null"],"description":"Lodging tax. Always collected and always included in the total."},"total":{"type":["number","null"]},"pet_fee":{"type":["number","null"]},"discount":{"type":["number","null"]},"other_fees":{"type":["number","null"]},"cleaning_fee":{"type":["number","null"]},"extra_guest_fee":{"type":["number","null"]},"nightly_subtotal":{"type":["number","null"]},"card_processing_fee":{"type":["number","null"]}}},"detail":"Field `price_breakdown` was removed from `get_live_quote` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.quote_expires_at","tool":"get_live_quote","before":{"type":"string","description":"After this the total must be re-quoted before it is given to a guest."},"detail":"Field `quote_expires_at` was removed from `get_live_quote` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.security_deposit_hold","tool":"get_live_quote","before":{"type":["number","null"],"description":"A refundable hold, not part of total_due_now."},"detail":"Field `security_deposit_hold` was removed from `get_live_quote` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.beds","tool":"get_property_details","before":{"type":["number","null"]},"detail":"Field `beds` was removed from `get_property_details` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.name","tool":"get_property_details","before":{"type":"string"},"detail":"Field `name` was removed from `get_property_details` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.alias","tool":"get_property_details","before":{"type":["string","null"]},"detail":"Field `alias` was removed from `get_property_details` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.photos","tool":"get_property_details","before":{"type":"array","items":{"type":"string"}},"detail":"Field `photos` was removed from `get_property_details` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.sleeps","tool":"get_property_details","before":{"type":["integer","null"]},"detail":"Field `sleeps` was removed from `get_property_details` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.bedrooms","tool":"get_property_details","before":{"type":["number","null"]},"detail":"Field `bedrooms` was removed from `get_property_details` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.location","tool":"get_property_details","before":{"type":"object","required":["city","country"],"properties":{"city":{"type":"string"},"state":{"type":["string","null"]},"country":{"type":"string"},"neighbourhood":{"type":["string","null"],"description":"Neighbourhood-level location only; the exact address is shared after booking."}}},"detail":"Field `location` was removed from `get_property_details` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.policies","tool":"get_property_details","before":{"type":"object","required":["check_in_from","check_out_by","cancellation","security_deposit_hold","pets_allowed","policies_source"],"properties":{"pet_fee":{"type":["number","null"]},"quiet_hours":{"type":["object","null"],"required":["from","to"],"properties":{"to":{"type":"string"},"from":{"type":"string"}}},"cancellation":{"type":"string"},"check_out_by":{"type":"string"},"pets_allowed":{"type":"boolean"},"check_in_from":{"type":"string"},"check_in_until":{"type":["string","null"]},"minimum_nights":{"type":["number","null"]},"policies_source":{"enum":["provider","portfolio-default"],"type":"string"},"security_deposit_hold":{"type":"number","description":"A refundable hold, not part of the total charged at booking."}},"description":"This home's own policies, not portfolio defaults, when policies_source is \"provider\"."},"detail":"Field `policies` was removed from `get_property_details` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.amenities","tool":"get_property_details","before":{"type":"array","items":{"type":"string"}},"detail":"Field `amenities` was removed from `get_property_details` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.bathrooms","tool":"get_property_details","before":{"type":["number","null"]},"detail":"Field `bathrooms` was removed from `get_property_details` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.booking_url","tool":"get_property_details","before":{"type":"string"},"detail":"Field `booking_url` was removed from `get_property_details` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.description","tool":"get_property_details","before":{"type":["string","null"]},"detail":"Field `description` was removed from `get_property_details` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.house_rules","tool":"get_property_details","before":{"type":"array","items":{"type":"string"}},"detail":"Field `house_rules` was removed from `get_property_details` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.property_id","tool":"get_property_details","before":{"type":"integer"},"detail":"Field `property_id` was removed from `get_property_details` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.guest_reviews","tool":"get_property_details","before":{"type":"object","required":["selection","reviews"],"properties":{"reviews":{"type":"array","items":{"type":"object","required":["source"],"properties":{"text":{"type":["string","null"]},"stars":{"type":["number","null"]},"source":{"type":"string","description":"The platform the review was left on. Always name it when quoting the review."},"published":{"type":["string","null"]}}}},"selection":{"type":"string"}},"description":"A selection of 4- and 5-star reviews, not a summary of every review. No overall or average rating is implied or available."},"detail":"Field `guest_reviews` was removed from `get_property_details` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.property_type","tool":"get_property_details","before":{"type":["string","null"]},"detail":"Field `property_type` was removed from `get_property_details` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.support_email","tool":"get_property_details","before":{"type":"string"},"detail":"Field `support_email` was removed from `get_property_details` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.amenities_source","tool":"get_property_details","before":{"enum":["provider","unavailable"],"type":"string"},"detail":"Field `amenities_source` was removed from `get_property_details` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.common_questions","tool":"get_property_details","before":{"type":"array","items":{"type":"object","required":["question","answer"],"properties":{"answer":{"type":"string"},"question":{"type":"string"}}}},"detail":"Field `common_questions` was removed from `get_property_details` output; consumers reading it will break.","severity":"breaking"},{"kind":"description_changed","tool":"list_markets","after":"Every city where Luxury Lodging has directly bookable homes, with how many homes and the largest group each can sleep. Use it when a guest has not named a place, or to check whether a destination is covered before searching.","before":"Every city where Luxury Lodging has directly bookable homes, with the state or region, the country, how many homes and the largest group each can sleep. Use it when a guest has not named a place, or to check whether a destination is covered before searching.","detail":"Description of `list_markets` changed (8% word delta).","severity":"safe","descriptionDelta":0.07692307692307687},{"kind":"output_property_removed","path":"outputSchema.properties.note","tool":"list_markets","before":{"type":"string"},"detail":"Field `note` was removed from `list_markets` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.markets","tool":"list_markets","before":{"type":"array","items":{"type":"object","required":["city","homes","sleeps_max"],"properties":{"city":{"type":"string"},"homes":{"type":"integer"},"state":{"type":["string","null"],"description":"State, province or region as the provider files it."},"country":{"type":["string","null"],"description":"Not every destination is in the United States; two cities can share a name across countries."},"sleeps_max":{"type":"integer","description":"The largest group any single home in this market sleeps."}}}},"detail":"Field `markets` was removed from `list_markets` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.homes_count","tool":"list_markets","before":{"type":"integer"},"detail":"Field `homes_count` was removed from `list_markets` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.markets_count","tool":"list_markets","before":{"type":"integer"},"detail":"Field `markets_count` was removed from `list_markets` output; consumers reading it will break.","severity":"breaking"},{"kind":"description_changed","tool":"search_properties","after":"Search Luxury Lodging's directly bookable vacation rentals by destination, dates, group size, bedrooms and amenities. With dates, only properties actually available are returned. Always quote the stay total from get_live_quote rather than the nightly rate.","before":"Search Luxury Lodging's directly bookable vacation rentals by destination, dates, group size, bedrooms and amenities. With dates, only homes confirmed available are returned. Interchangeable units of the same type are returned once, with every unit's id listed in `similar_units` so any of them can still be quoted and booked; `limit` counts those results, while `total_matching` counts the individual homes confirmed available. A busy market can hold more than one request can price, so `unpriced_in_time` counts matching homes whose availability was never established: they are unknown, not unavailable. Never tell a guest a place has nothing when that number is above zero -- raise `limit`, narrow the place, or quote a specific home. Always quote the stay total from get_live_quote rather than the nightly rate.","detail":"Description of `search_properties` changed (67% word delta).","severity":"risky","descriptionDelta":0.6734693877551021},{"kind":"output_property_removed","path":"outputSchema.properties.matches","tool":"search_properties","before":{"type":"integer","description":"How many results this response carries."},"detail":"Field `matches` was removed from `search_properties` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.properties","tool":"search_properties","before":{"type":"array","items":{"type":"object","required":["property_id","name","city","top_amenities","review_count","review_sources","highlights","booking_url"],"properties":{"city":{"type":"string"},"name":{"type":"string"},"photo":{"type":["string","null"]},"state":{"type":["string","null"]},"nights":{"type":"integer"},"sleeps":{"type":["integer","null"]},"bedrooms":{"type":["number","null"]},"bathrooms":{"type":["number","null"]},"highlights":{"type":"array","items":{"type":"string"},"description":"Up to three short phrases an agent can repeat when recommending the home."},"stay_total":{"type":"number","description":"Total for the requested dates including cleaning, fees and taxes. Only present when dates were given and the home was priced."},"booking_url":{"type":"string","description":"Where the guest completes the booking on Luxury Lodging's own site."},"property_id":{"type":"integer"},"review_count":{"type":"integer","description":"How many 4- and 5-star reviews this home has. Never present this as, or derive, an average rating."},"avg_per_night":{"type":"number","description":"stay_total divided by nights. A derived figure; quote the total, not this."},"neighbourhood":{"type":["string","null"],"description":"Neighbourhood-level location only; the exact address is shared after booking."},"property_type":{"type":["string","null"]},"similar_units":{"type":"object","required":["count","note","property_ids"],"properties":{"note":{"type":"string"},"count":{"type":"integer"},"property_ids":{"type":"array","items":{"type":"integer"}}},"description":"Only present when interchangeable units of this type exist; any of these ids can be quoted and booked."},"top_amenities":{"type":"array","items":{"type":"string"}},"review_sources":{"type":"array","items":{"type":"string"},"description":"Which platforms those reviews came from."},"stay_total_display":{"type":"string"},"from_price_per_night":{"type":["number","null"],"description":"Starting nightly rate, not a stay total. Absent dates, this is all that is known."},"avg_per_night_display":{"type":"string"}}}},"detail":"Field `properties` was removed from `search_properties` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.dates_checked","tool":"search_properties","before":{"type":"boolean","description":"False means availability is unknown and every price is a starting nightly rate."},"detail":"Field `dates_checked` was removed from `search_properties` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.total_matching","tool":"search_properties","before":{"type":"integer","description":"How many individual homes matched, counting every interchangeable unit."},"detail":"Field `total_matching` was removed from `search_properties` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.unpriced_in_time","tool":"search_properties","before":{"type":"integer","description":"Matching homes whose availability was never established for these dates, because the request ran out of budget or did not reach them. They are unknown, not unavailable — raise `limit`, narrow the place, or use get_live_quote."},"detail":"Field `unpriced_in_time` was removed from `search_properties` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.availability_note","tool":"search_properties","before":{"type":"string"},"detail":"Field `availability_note` was removed from `search_properties` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.searched_location","tool":"search_properties","before":{"type":["string","null"]},"detail":"Field `searched_location` was removed from `search_properties` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_removed","path":"outputSchema.properties.total_matching_groups","tool":"search_properties","before":{"type":"integer","description":"How many distinct unit types matched."},"detail":"Field `total_matching_groups` was removed from `search_properties` output; consumers reading it will break.","severity":"breaking"}],"published_at":"2026-09-23T09:36:16.692Z"}]