feat(participation): add opt-out and role status
Release / release (push) Successful in 2m15s
CI / build (push) Successful in 58s

This commit is contained in:
dmg
2026-08-14 22:55:43 -04:00
parent a195658be4
commit 96c0c0014c
22 changed files with 542 additions and 33 deletions
@@ -2,7 +2,7 @@
type: User Story
title: "US-011: Inform players and manage participation"
description: Tell players their current place in the game and let unassigned players opt out.
status: backlog
status: done
---
# US-011: Inform players and manage participation
@@ -11,15 +11,15 @@ As a **player**, I want to understand my status and control my eligibility so th
## Acceptance criteria
- [ ] On join, a player is told the game status and their role, class, subclass, abilities, and relevant cooldowns.
- [ ] An unassigned opted-in player is told that they are eligible and shown the opt-out command.
- [ ] An opted-out player is told when they may opt back in.
- [ ] An unassigned player can opt out through a command.
- [ ] Opting out removes an ordinary class or Follower assignment immediately; the Tyrant and Vigilante must relinquish through a safe role command before opting out.
- [ ] Opted-out players cannot be randomly selected, recruited, or assigned a class.
- [ ] A player cannot opt back in until seven days have elapsed by default.
- [ ] The opt-out duration is configurable, uses unpaused elapsed time, and survives restart.
- [ ] Participation commands are idempotent and clearly report current status and remaining time.
- [x] On join, a player is told the game status and their role, class, subclass, abilities, and relevant cooldowns.
- [x] An unassigned opted-in player is told that they are eligible and shown the opt-out command.
- [x] An opted-out player is told when they may opt back in.
- [x] An unassigned player can opt out through a command.
- [x] Opting out removes an ordinary class or Follower assignment immediately; the Tyrant and Vigilante must relinquish through a safe role command before opting out.
- [x] Opted-out players cannot be randomly selected, recruited, or assigned a class.
- [x] A player cannot opt back in until seven days have elapsed by default.
- [x] The opt-out duration is configurable, uses unpaused elapsed time, and survives restart.
- [x] Participation commands are idempotent and clearly report current status and remaining time.
## Related