Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Even with annotations present, the description adds substantial behavioral context: transactional application, 100-operation limit, strict pointer handling, safe object properties, bounded intermediate results, per-call billing, and the recovery implication that a new requestId triggers a new billable operation. This goes well beyond the annotations and aligns with idempotentHint=true without contradicting any annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.