Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true and idempotentHint=true, but the description goes further by naming the concrete side effects: it 'may waive the deposit, mark it paid, or move a payment date.' That tells the agent exactly which downstream state (matching waive_deposit, mark_deposit_paid, move_payment_date) can be touched, which annotations alone cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.