I totally agree on adding a user API that encapsulates the protocol. However, this current API is basically a one-for-one mapping to the PB protocol. That's what I find very strange about all this. I don't expect anything to change for this PR but I just have this hunch we can do better than simply wrapping the PB generated structs with our own that are basically identical. Just food for thought.