Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this read-only/idempotent/non-destructive, and the description adds substantial behavioral context beyond them: the full state lifecycle, the refunding and terminal failure outcomes (refunded, failed, expired), the long-poll loop semantics, and a safety rule for the payment field ('sign only if paymentCheck.safeToSend'). This is real operational context the agent needs to poll and to avoid signing an unsafe payment.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.