Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly, idempotent, non-destructive, open-world), so the bar is lower — yet the description adds real behavioral context: what is returned (canonical fields, resolved entities, CPV labels, cross-source lifecycle chain) and a subtle trap that `commitment_ada` is a pointer, not a chain edge, and must be resolved externally. This is exactly the kind of non-obvious behavior that prevents wrong invocations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.