Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Even with idempotentHint already present, the description adds concrete behavioral detail: replaying a valid confirmation is safe and returns the stored result. It also explains the meaning of status:confirmed/booked:true versus status:callback_pending/booked:false, which is crucial beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.