One API for the panel, the MDT, the launcher and the bot. The full reference — every parameter and every response — lives in the API itself, which is where it cannot go stale.
It is not REST: each route takes an action parameter saying what to do, and an apikey saying who you are. GET and POST both work.
POST https://api.blixye.com/servers Content-Type: application/x-www-form-urlencoded action=list_mine&apikey=sk_...
Every route also has a .php alias, for backwards compatibility with older clients. Both forms do the same.
The same thing the panel uses internally: if the panel can do it, so can the API.
Sign in with Roblox or Discord, and the profile of whoever signs in.
Create servers, their members, ranks and configuration.
The sheets: ID, department, status and per-plan limits.
Item catalogue, categories and what each character carries.
Accounts, cards, transfers, debts, loans and taxes.
Dispatch, cases, punishments, fire and the rest of the MDT.
The in-game phone apps and their wallpapers.
What the bot reads, and the one thing the bot may write.