API reference
The HTTP API the dashboard uses.
The dashboard is a client of this API, generated from the same OpenAPI contract as the server's handlers.
Sessions
Sign in at /auth/discord/login; Invarn sets an invarn_session cookie. Every request that changes
something must also send an X-Invarn header, which a form on another site can't send.
Previews
Operations that change Discord take ?preview=true: they answer with the lines describing what they
would do, and change nothing.
Errors
Every error is a Problem: a stable code and a message written for people, which the dashboard
shows as is.