`required` was removed due to the challenges it introduces in designing backwards-compatible API changes[1].
[1] https://github.com/protocolbuffers/protobuf/issues/2497#issu...
[1] https://github.com/protocolbuffers/protobuf/issues/2497#issu...
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.