Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false, idempotentHint=false, destructiveHint=false; the description goes well beyond them: each call mints a new 7-day link usable on any device, the link reflects the basket state at open time, an empty basket returns an error, the assistant never sees payment details, and no order is placed until the customer pays on-site. That is exactly the behavioral context an agent needs before invoking a non-idempotent flow.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.