Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful behavior beyond that: it rejects missing IDs and will not fabricate discounts, totals, orders or delivery guarantees — a real constraint on what the agent can rely on. It says nothing about the shape or size of the returned comparison, which is the remaining behavioral gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.