Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses UTF-8-only input, that decoding is strict base64 (implying rejection of invalid input), the exclusions, the cost (1000 atomic USDC), and the auth requirement. It does not describe error behavior or the exact output shape, but the operational constraints an agent must know before invoking are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.