Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden, and it does disclose the key state change — that a project becomes active and that subsequent calls may then omit `project`. It does not state whether the selection persists across sessions, what happens if the id is invalid or unknown, or whether an existing active selection is silently replaced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.