This is an initial draft which is hopefully adequate for playing a
game. At this point we haven't implemented this on either client or
server side so we anticipate revisiting this after we implement and
learn any deficiences.
Thanks to Kevin Worth for designing this with me today.