EventId()
= 10 character event identity as string
Date()
= ISO-8601 date string, YYYY-MM-DD
Time()
= ISO-8601 time string, HH:MM
MemberStatus()
= enum 'confirm', 'waiting', or null
Number()
= standard JSON number but is not expected to ever have a decimal point
GET/POST parameter error, method specific
credentials are malformed or can't authenticate
method doesn't exist, may also indicate an event that doesn't exist since events are paths
Usually some kind of database error
List of all classes that are bookable
Self attendance status; “intent”, “waiting”, or “none”
Class time
Count of members current attendance
Member limit
[
{
date: Date(),
event: [
{ eventId: EventId(), time: Time(), selfStatus: MemberStatus(), memberCount: Number(), memberLimit: Number() },
...
]
},
...
]
Change attendance of a class event for this member, only succeeds if outside the freeze window
Translate a one-time code (SMS or email, or whatever) to a secret key that can be used forever
Get a list of all change messages; eg. upgrade from waiting
Clears all messages