Changelog entry
Alliance leadership elections (P3.2C)
2026-03-24
- Alliance leaders can now open a formal **leadership election** via `POST /api/alliances/[id]/elections`.
- Two election methods supported: **Plurality** (most votes wins with tie-break by seniority) and **Instant-runoff ranked-choice** (candidates ranked; lowest eliminated each round).
- Elections run in two phases: **Nomination** (members nominate candidates) followed by **Voting** (members cast ballots).
- Elections can be triggered manually by the leader, automatically when the leader is inactive for a configurable number of ticks, or on a recurring cycle.
- The tick engine resolves elections when their voting window closes, transferring leadership to the winner and logging a `LeaderElectionConcluded` event.