Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true, destructiveHint=false, readOnlyHint=false and openWorldHint=true, so the safety and repeat-call profile is covered structurally. The description adds the withdrawal semantics ('0 withdraws'), which is genuinely useful context but is also duplicated in the schema's value description, and it says nothing about what a cast does to existing votes or what state is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.