Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: it discloses that this is a mutating, asynchronous operation that creates a submission record, returns only a submission_id, and requires polling submission_get for grades. It also explains that results stream live into the teacher's editor, which the non-idempotent/create semantics alone would not convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.