"Required" fields that are no longer required, and "optional" fields that are no longer optional are basically 6 of one and half a dozen of another.
I'm personally strongly in the "required" camp because at least the interface makes an attempt at giving clues to a user as to what fields are important. If everything is optional, there's no information being passed as to what is important anymore.
[1] https://github.com/protocolbuffers/protobuf/issues/2497#issu...