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 described, and annotations carry the safety profile. The description covers scope, precondition, exclusion, and fallback tool, which is close to complete for a mutation of this size, with the only real gap being parameter-level detail on invoiceId/lineId/description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.