Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses that the digest is stable, uses SHA-256, and requires no account or payment. It does not mention whether content is canonicalized before hashing, whether tool_use_id is included in the digest, or any size or rate limits, but for a simple utility the core behavior is at least surfaced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.