**User-facing** - Click button in Main Menu / Escape Menu to open Menu depending on linking state - Unlinked? Start the process <img width="454" height="269" alt="Image" src="https://github.com/user-attachments/assets/e82cd569-6892-411d-ac74-44ce1e03d8f0" /> - Linked? Display state and allow unlinking. <img width="442" height="239" alt="Image" src="https://github.com/user-attachments/assets/92507f1d-4b44-4490-8c90-c4a8bfed22f6" /> - Discord: `/link <auth_code>` to proceed with linking - Optionally: If invoked without arguments, open one of those fancy Discord interaction dialogs to prompt for the auth code. **Linking Implementation** - A new API endpoint is added to the SS14 Admin API at `Content.Server/Administration/ServerApi.cs` - POST `/discord/actions/link` ```json { "auth_code": "A1B2C3", "discord_id": 12345678901234567890 } ```` 1. Upon linking request, SS14 server generates auth code and holds in in memory with corresponding player GUID until invalidation. 1. The bot sends an authenticated request to the above endpoint upon `/link` invocation. 1. The server receives the request and checks the code. If code is valid, write to database.
User-facing
/link <auth_code>to proceed with linkingLinking Implementation
Content.Server/Administration/ServerApi.cs/discord/actions/link{ "auth_code": "A1B2C3", "discord_id": 12345678901234567890 }/linkinvocation.