sweeping changes

Went from an idea of read/write structure to a combination of schema
used for both reading and writing, and an extended schema used
exclusively for bonus client-side attributes.