Lists the codes an APIError carries, one per HTTP status. The
backend's APIException derives its code from the status it is given, and
the frontend shows the message without reading the code.
BAD_REQUEST: string
UNAUTHORIZED: string
FORBIDDEN: string
NOT_FOUND: string
Also answers for what exists but the caller may not see.
CONFLICT: string
RATE_LIMITED: string
SERVER_ERROR: string
BAD_GATEWAY: string
Answers when another site, such as Bandcamp or YouTube, failed us.
Carried by the backend's APIException, and sent in an APIError.
APIErrorCode[keyof APIErrorCode]