For later, it would be nice to be able to specify an `encode`/`decode` pair to allow use of other encodings besides JSON like protobuf or msgpack.