📝Protobuf: updating message types

  • int32, uint32, int64, uint64, bool are all compatible (+enum)
  • sint32, sint64 are compatible
  • string, bytes are compatible (as long as bytes are valid UTF-8)
  • embedded messages are compatible with bytes (if bytes contain an encoded version of message)
  • fixed32, sfixed32, fixed64, sfixed64 are compatible
  • optional and repeated are compatible
  • moving one/multiple optional fields into oneof is safe (as long as only one of the fields is present)