Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-read-only, non-idempotent, non-destructive, closed-world, so the safety profile is covered by structured data. The description adds genuinely new behavioral context: the object stays an unapproved draft until seal_invoice, and the currency/amount representation contract for downstream calls. It does not address what happens on duplicate invocation, but that is largely covered by idempotentHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.