Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does real work: it discloses the preprocessing step ('stripping non-digits first'), the short-input edge case ('four digits or fewer come back unchanged'), and a rate-limit/pricing constraint ('5 free trial calls per signed wallet'). What is missing is whether the input is validated (e.g. Luhn) and what the masked output looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.