Take your vote back (spec D143 (4)): idempotent
unvote_issueTake your vote back (spec D143 (4)): idempotent.
Removes the caller from votes.by and returns the full issue. Not having voted is a no-op (200, no new version). Same rights, write rule and errors as vote_issue; a real change writes history "unvote" and changed: ["votes"]. The body carries version like every write.
Withdraws the token user's vote (D143); idempotent. Pass the version from get_issue. Same rights and errors as vote_issue (403 for a viewer, 409 votes_disabled).
WRITE: version = from your latest read (get_issue, list_comments, list_sprints, get_doc, read_file). 409 version_conflict (details.current, details.current_version): re-read, re-apply your change, retry — never overwrite blindly; when the changes disagree, ask the user.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Spec D144: why you make this change (≤ 200 characters). Optional, but give it when you act as an agent account — it is shown in the agent's run log ("moved KJ-12 To Do → In Progress because <reason>"). board-mcp records it in `agent.run`; board-core / board-files accept it and ignore it (it never changes the file, the version or the history). | |
| version | Yes | Optimistic-lock version of the file; +1 on every write. Every write must send the version it read. | |
| issue_key | Yes | Issue key `{PROJECT}-{n}`, e.g. `KJ-101`. | |
| project_key | Yes | Project key, e.g. `KJ`. 2–10 chars, uppercase letters and digits, starts with a letter. |