Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=false, idempotentHint=true) only reveal that this is a non-destructive write. The description adds substantial context: it returns a fact receipt, requires polling get_media_facts, that 'failed is terminal', and that existing pending/ready facts are reused without another charge. That cost and async-state detail goes well beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.