{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://www.monocrawl.com/schemas/booking/hotel-review-scores.json","title":"booking/hotel-review-scores 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":{}},"bands":{"description":"Optional bands supplied by this operation. Null means unknown.","type":["array","null"],"items":{"description":"Optional record 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"]},"from":{"description":"Optional from supplied by this operation. Null means unknown.","type":["number","null"]},"percent":{"description":"Optional percent supplied by this operation. Null means unknown.","type":["number","null"]},"to":{"description":"Optional to supplied by this operation. Null means unknown.","type":["number","null"]},"word":{"description":"Optional word supplied by this operation. Null means unknown.","type":["string","null"]}},"additionalProperties":true}},"by_traveller_type":{"description":"Optional by traveller type supplied by this operation. Null means unknown.","type":["array","null"],"items":{"description":"Optional record 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"]},"questions":{"description":"Optional questions supplied by this operation. Null means unknown.","type":["array","null"],"items":{"description":"Optional record supplied by this operation. Null means unknown.","type":["object","null"],"properties":{},"additionalProperties":true}},"score":{"description":"Optional score supplied by this operation. Null means unknown.","type":["number","null"]},"since_year":{"description":"Optional since year supplied by this operation. Null means unknown.","type":["number","null"]},"traveller_type":{"description":"Optional traveller type supplied by this operation. Null means unknown.","type":["string","null"]}},"additionalProperties":true}},"distribution":{"description":"Optional distribution supplied by this operation. Null means unknown.","type":["array","null"],"items":{"description":"Optional record 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"]},"percent":{"description":"Optional percent supplied by this operation. Null means unknown.","type":["number","null"]},"score":{"description":"Optional score supplied by this operation. Null means unknown.","type":["number","null"]}},"additionalProperties":true}},"hotel_id":{"description":"Optional hotel id supplied by this operation. Null means unknown.","type":["string","null"]},"platform":{"description":"Optional platform supplied by this operation. Null means unknown.","type":["string","null"]},"type":{"description":"Optional type supplied by this operation. Null means unknown.","type":["string","null"]}},"additionalProperties":true,"allOf":[{"anyOf":[{"required":["bands"],"properties":{"bands":{"description":"Optional bands supplied by this operation. Null means unknown.","type":["array"],"items":{"description":"Optional record 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"]},"from":{"description":"Optional from supplied by this operation. Null means unknown.","type":["number","null"]},"percent":{"description":"Optional percent supplied by this operation. Null means unknown.","type":["number","null"]},"to":{"description":"Optional to supplied by this operation. Null means unknown.","type":["number","null"]},"word":{"description":"Optional word supplied by this operation. Null means unknown.","type":["string","null"]}},"additionalProperties":true}}}},{"required":["by_traveller_type"],"properties":{"by_traveller_type":{"description":"Optional by traveller type supplied by this operation. Null means unknown.","type":["array"],"items":{"description":"Optional record 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"]},"questions":{"description":"Optional questions supplied by this operation. Null means unknown.","type":["array","null"],"items":{"description":"Optional record supplied by this operation. Null means unknown.","type":["object","null"],"properties":{},"additionalProperties":true}},"score":{"description":"Optional score supplied by this operation. Null means unknown.","type":["number","null"]},"since_year":{"description":"Optional since year supplied by this operation. Null means unknown.","type":["number","null"]},"traveller_type":{"description":"Optional traveller type supplied by this operation. Null means unknown.","type":["string","null"]}},"additionalProperties":true}}}},{"required":["distribution"],"properties":{"distribution":{"description":"Optional distribution supplied by this operation. Null means unknown.","type":["array"],"items":{"description":"Optional record 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"]},"percent":{"description":"Optional percent supplied by this operation. Null means unknown.","type":["number","null"]},"score":{"description":"Optional score supplied by this operation. Null means unknown.","type":["number","null"]}},"additionalProperties":true}}}},{"required":["hotel_id"],"properties":{"hotel_id":{"description":"Optional hotel id supplied by this operation. Null means unknown.","type":["string"],"minLength":1}}}]}],"x-contract-version":"2026-09-22","x-validation-scope":"Required success payload structure; optional fields and source completeness remain separate.","examples":[{"_warnings":[],"bands":[{"count":0,"from":0,"percent":0,"to":0,"word":"example"}],"by_traveller_type":[{"count":0,"questions":[{}],"score":0,"since_year":0,"traveller_type":"example"}],"distribution":[{"count":0,"percent":0,"score":0}],"hotel_id":"example","platform":"example","type":"example"}]}