{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://www.monocrawl.com/schemas/booking/hotel.json","title":"booking/hotel data fields","description":"Optional data supplied by this operation. Null means unknown.","type":"object","properties":{"_warnings":{"description":"Source array was empty in the reviewed captures; item fields remain unspecified.","type":["array","null"],"items":{}},"accommodation_type":{"description":"Optional accommodation type supplied by this operation. Null means unknown.","type":["string","null"]},"address":{"description":"Optional address supplied by this operation. Null means unknown.","type":["string","null"]},"available_rooms":{"description":"Optional available rooms supplied by this operation. Null means unknown.","type":["number","null"]},"breakfast_included":{"description":"Optional breakfast included supplied by this operation. Null means unknown.","type":["boolean","null"]},"breakfast_score":{"description":"Optional breakfast score supplied by this operation. Null means unknown.","type":["object","null"],"properties":{"count":{"description":"Number of records in this response, not lifetime or total matches.","type":["number","null"]},"rating":{"description":"Source rating; read its accompanying scale and vote count.","type":["number","null"]},"word":{"description":"Optional word supplied by this operation. Null means unknown.","type":["string","null"]}},"additionalProperties":true},"checkin_date":{"description":"Optional checkin date supplied by this operation. Null means unknown.","type":["string","null"]},"checkout_date":{"description":"Optional checkout date supplied by this operation. Null means unknown.","type":["string","null"]},"city":{"description":"Optional city supplied by this operation. Null means unknown.","type":["string","null"]},"closed":{"description":"Optional closed supplied by this operation. Null means unknown.","type":["boolean","null"]},"country_code":{"description":"Optional country code supplied by this operation. Null means unknown.","type":["string","null"]},"currency":{"description":"Optional currency supplied by this operation. Null means unknown.","type":["string","null"]},"destination_id":{"description":"Optional destination id supplied by this operation. Null means unknown.","type":["string","null"]},"distance_to_centre_km":{"description":"Optional distance to centre km supplied by this operation. Null means unknown.","type":["number","null"]},"district":{"description":"Optional district supplied by this operation. Null means unknown.","type":["string","null"]},"facilities":{"description":"Optional facilities supplied by this operation. Null means unknown.","type":["array","null"],"items":{"description":"Optional record supplied by this operation. Null means unknown.","type":["string","null"]}},"family_facilities":{"description":"Source array was empty in the reviewed captures; item fields remain unspecified.","type":["array","null"],"items":{}},"family_friendly":{"description":"Optional family friendly supplied by this operation. Null means unknown.","type":["boolean","null"]},"highlights":{"description":"Optional highlights supplied by this operation. Null means unknown.","type":["array","null"],"items":{"description":"Optional record supplied by this operation. Null means unknown.","type":["string","null"]}},"id":{"description":"Source identifier. Preserve the supplied type and exact value.","type":["string","null"]},"important_information":{"description":"Optional important information supplied by this operation. Null means unknown.","type":["array","null"],"items":{"description":"Optional record supplied by this operation. Null means unknown.","type":["string","null"]}},"languages_spoken":{"description":"Optional languages spoken supplied by this operation. Null means unknown.","type":["array","null"],"items":{"description":"Optional record supplied by this operation. Null means unknown.","type":["string","null"]}},"latitude":{"description":"Optional latitude supplied by this operation. Null means unknown.","type":["number","null"]},"longitude":{"description":"Optional longitude supplied by this operation. Null means unknown.","type":["number","null"]},"max_rooms_per_booking":{"description":"Optional max rooms per booking supplied by this operation. Null means unknown.","type":["number","null"]},"name":{"description":"Optional name supplied by this operation. Null means unknown.","type":["string","null"]},"offers":{"description":"Source array was empty in the reviewed captures; item fields remain unspecified.","type":["array","null"],"items":{}},"platform":{"description":"Optional platform supplied by this operation. Null means unknown.","type":["string","null"]},"postcode":{"description":"Optional postcode supplied by this operation. Null means unknown.","type":["string","null"]},"review_count":{"description":"Optional review count supplied by this operation. Null means unknown.","type":["number","null"]},"rooms":{"description":"Source array was empty in the reviewed captures; item fields remain unspecified.","type":["array","null"],"items":{}},"sold_out":{"description":"Optional sold out supplied by this operation. Null means unknown.","type":["boolean","null"]},"timezone":{"description":"Optional timezone supplied by this operation. Null means unknown.","type":["string","null"]},"top_benefits":{"description":"Optional top benefits supplied by this operation. Null means unknown.","type":["array","null"],"items":{"description":"Optional record supplied by this operation. Null means unknown.","type":["string","null"]}},"type":{"description":"Optional type supplied by this operation. Null means unknown.","type":["string","null"]},"url":{"description":"Original source URL when supplied.","type":["string","null"]},"wifi_score":{"description":"Optional wifi score supplied by this operation. Null means unknown.","type":["number","null"]}},"additionalProperties":true,"allOf":[{"anyOf":[{"required":["accommodation_type"],"properties":{"accommodation_type":{"description":"Optional accommodation type supplied by this operation. Null means unknown.","type":["string"],"minLength":1}}},{"required":["address"],"properties":{"address":{"description":"Optional address supplied by this operation. Null means unknown.","type":["string"],"minLength":1}}},{"required":["available_rooms"],"properties":{"available_rooms":{"description":"Optional available rooms supplied by this operation. Null means unknown.","type":["number"]}}},{"required":["breakfast_included"],"properties":{"breakfast_included":{"description":"Optional breakfast included supplied by this operation. Null means unknown.","type":["boolean"]}}},{"required":["breakfast_score"],"properties":{"breakfast_score":{"description":"Optional breakfast score supplied by this operation. Null means unknown.","type":["object"],"properties":{"count":{"description":"Number of records in this response, not lifetime or total matches.","type":["number","null"]},"rating":{"description":"Source rating; read its accompanying scale and vote count.","type":["number","null"]},"word":{"description":"Optional word supplied by this operation. Null means unknown.","type":["string","null"]}},"additionalProperties":true}}},{"required":["checkin_date"],"properties":{"checkin_date":{"description":"Optional checkin date supplied by this operation. Null means unknown.","type":["string"],"minLength":1}}},{"required":["checkout_date"],"properties":{"checkout_date":{"description":"Optional checkout date supplied by this operation. Null means unknown.","type":["string"],"minLength":1}}},{"required":["city"],"properties":{"city":{"description":"Optional city supplied by this operation. Null means unknown.","type":["string"],"minLength":1}}},{"required":["closed"],"properties":{"closed":{"description":"Optional closed supplied by this operation. Null means unknown.","type":["boolean"]}}},{"required":["country_code"],"properties":{"country_code":{"description":"Optional country code supplied by this operation. Null means unknown.","type":["string"],"minLength":1}}},{"required":["currency"],"properties":{"currency":{"description":"Optional currency supplied by this operation. Null means unknown.","type":["string"],"minLength":1}}},{"required":["destination_id"],"properties":{"destination_id":{"description":"Optional destination id supplied by this operation. Null means unknown.","type":["string"],"minLength":1}}},{"required":["distance_to_centre_km"],"properties":{"distance_to_centre_km":{"description":"Optional distance to centre km supplied by this operation. Null means unknown.","type":["number"]}}},{"required":["district"],"properties":{"district":{"description":"Optional district supplied by this operation. Null means unknown.","type":["string"],"minLength":1}}},{"required":["facilities"],"properties":{"facilities":{"description":"Optional facilities supplied by this operation. Null means unknown.","type":["array"],"items":{"description":"Optional record supplied by this operation. Null means unknown.","type":["string","null"]}}}},{"required":["family_facilities"],"properties":{"family_facilities":{"description":"Source array was empty in the reviewed captures; item fields remain unspecified.","type":["array"],"items":{}}}},{"required":["family_friendly"],"properties":{"family_friendly":{"description":"Optional family friendly supplied by this operation. Null means unknown.","type":["boolean"]}}},{"required":["highlights"],"properties":{"highlights":{"description":"Optional highlights supplied by this operation. Null means unknown.","type":["array"],"items":{"description":"Optional record supplied by this operation. Null means unknown.","type":["string","null"]}}}},{"required":["id"],"properties":{"id":{"description":"Source identifier. Preserve the supplied type and exact value.","type":["string"],"minLength":1}}},{"required":["important_information"],"properties":{"important_information":{"description":"Optional important information supplied by this operation. Null means unknown.","type":["array"],"items":{"description":"Optional record supplied by this operation. Null means unknown.","type":["string","null"]}}}},{"required":["languages_spoken"],"properties":{"languages_spoken":{"description":"Optional languages spoken supplied by this operation. Null means unknown.","type":["array"],"items":{"description":"Optional record supplied by this operation. Null means unknown.","type":["string","null"]}}}},{"required":["latitude"],"properties":{"latitude":{"description":"Optional latitude supplied by this operation. Null means unknown.","type":["number"]}}},{"required":["longitude"],"properties":{"longitude":{"description":"Optional longitude supplied by this operation. Null means unknown.","type":["number"]}}},{"required":["max_rooms_per_booking"],"properties":{"max_rooms_per_booking":{"description":"Optional max rooms per booking supplied by this operation. Null means unknown.","type":["number"]}}},{"required":["name"],"properties":{"name":{"description":"Optional name supplied by this operation. Null means unknown.","type":["string"],"minLength":1}}},{"required":["offers"],"properties":{"offers":{"description":"Source array was empty in the reviewed captures; item fields remain unspecified.","type":["array"],"items":{}}}},{"required":["postcode"],"properties":{"postcode":{"description":"Optional postcode supplied by this operation. Null means unknown.","type":["string"],"minLength":1}}},{"required":["review_count"],"properties":{"review_count":{"description":"Optional review count supplied by this operation. Null means unknown.","type":["number"]}}},{"required":["rooms"],"properties":{"rooms":{"description":"Source array was empty in the reviewed captures; item fields remain unspecified.","type":["array"],"items":{}}}},{"required":["sold_out"],"properties":{"sold_out":{"description":"Optional sold out supplied by this operation. Null means unknown.","type":["boolean"]}}},{"required":["timezone"],"properties":{"timezone":{"description":"Optional timezone supplied by this operation. Null means unknown.","type":["string"],"minLength":1}}},{"required":["top_benefits"],"properties":{"top_benefits":{"description":"Optional top benefits supplied by this operation. Null means unknown.","type":["array"],"items":{"description":"Optional record supplied by this operation. Null means unknown.","type":["string","null"]}}}},{"required":["url"],"properties":{"url":{"description":"Original source URL when supplied.","type":["string"],"minLength":1}}},{"required":["wifi_score"],"properties":{"wifi_score":{"description":"Optional wifi score supplied by this operation. Null means unknown.","type":["number"]}}}]}],"x-contract-version":"2026-09-22","x-validation-scope":"Required success payload structure; optional fields and source completeness remain separate.","examples":[{"_warnings":[],"accommodation_type":"example","address":"example","available_rooms":0,"breakfast_included":false,"breakfast_score":{"count":0,"rating":0,"word":"example"},"checkin_date":"2026-09-01T12:00:00Z","checkout_date":"2026-09-01T12:00:00Z","city":"example","closed":false,"country_code":"example","currency":"example","destination_id":"example","distance_to_centre_km":0,"district":"example","facilities":["example"],"family_facilities":[],"family_friendly":false,"highlights":["example"],"id":"example","important_information":["example"],"languages_spoken":["example"],"latitude":0,"longitude":0,"max_rooms_per_booking":0,"name":"example","offers":[],"platform":"example","postcode":"example","review_count":0,"rooms":[],"sold_out":false,"timezone":"example","top_benefits":["example"],"type":"example","url":"https://example.com/example","wifi_score":0}]}