client: API that is the minimal transport between client/server
Try to make the current client package "minimal and dumb", then wrap this in something more intelligent for logging etc. The idea for this is to ensure that it's clear where verification is (not) happening so that the APIs doesn't become hard to understand.
(If this turns out to be a bad idea we will have to iterate on it, but the above is the gist of an in-person discussion between myself and @nisse.)
Would be good to also have unit tests for this, probably by mocking the client's transport (either with gomock or just implementing your own mock of the transport interface. For the latter, see e.g. this.)