📝§ Protobuf permalink by Oleksii Shmalko tags§ Programmingproto2 vs proto3avoid using required fieldsin proto3, it is impossible to distinguish absent fields from default valuesfor oneof fields, it is impossible to know if field is missing or unrecognizedno inheritance supportcalculating field sizenegative values for int32 and int64 are always 10-bytes longavoid int32/int64—use explicitly signed sint32/sint64field numbers 1–15 take 1 byte to encodewrapping fields into embedded messages might decrease their sizeupdating message types