Reflection-based Protocol Buffers for Go