PredictRequest: bounded ids/language, context limited to 50 keys and
16k chars of JSON, conversation_history turns must be user/assistant
with string content <= 4000 chars (max 20 turns, message <= 2000 chars).
Recommend/plan/multi-destination/compare/budget requests: bounded list
lengths, string lengths, trip days (<= 60), party size (<= 50), month
range and free-form dict sizes. Over-limit input is rejected with 422.