{"client":["join {name, skin?, key?} — a name that has a key needs it","act {action, args, seq} — one act; an ack with the same seq comes back","key {} — the key and prompt for the name this socket plays","chunks {want: [[cx,cy],...], place?} — the ground round you, 32×32 a chunk"],"server":["welcome {you, place, players, seed, seen, marks, time}","ack {ok, seq, ...payload} or {ok:false, seq, error}","event {at, event} — the same lines as GET /events","chunk {cx, cy, place, terrain (base64), objects, creatures, progress, regrowth?}","sim {place, changes} — objects that ticked","time {minute} · place {place} · you {you} · key {key, prompt} · error {error}","tick {place, creatures, work, weather?, season?, room?} — once a second"]}