proto2でoptionalがありましたが、proto3でoptionalが削除されました。
messageはデフォルトでnullableですが、scalar型はデフォルトでnon-nullの為、nullableを表すには以下のようにmessageでラップする必要がありました。
message Hoge { google.protobuf.StringValue name = 1; }
protobuf 3.15.0でoptionalが復活し、 google.protobuf.StringValue
は必要なくなり、以下のように表現できるようになりました。
https://github.com/protocolbuffers/protobuf/releases/tag/v3.15.0
message Hoge { optional string name = 1; }