/unlink command — players can unlink their Discord account; admins can unlink anyone via /xdiscord unlink <player>. Unlinking removes the Discord verified role, the LuckPerms group, and the database link, and fires a new PlayerUnlinkedEvent so other modules can react.
Hardened verification codes — codes are now generated with SecureRandom; there's a configurable failed-attempt cooldown plus a max-attempts lockout to prevent code guessing, and code expiry is now consistent (code-expiry-minutes is honored exactly instead of a hardcoded value).
Config/code consistency — one-time-only, kick-after-minutes, and the new verify-cooldown-seconds defaults now match config.yml. Removed a dead verificationCodes map.
Bug fix — ConcurrentModificationException in the message/localization system that could fire on a player's first localized message command.
Discord nickname re-sync — when a linked member changes their Discord nickname, the stored name is kept up to date.
Full localization — 20 locales ship out of the box, default en_US.