Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, yet the description still names the fields that drive agent behavior (digest_md, requires_action, suggested_tools, type mail.envelope, untrusted_content). Combined with annotations, an agent has everything needed to call it correctly and handle the results safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.