Kenton Varda, the author of Protocol Buffers, ended up saying in a blogpost a while back that ``required`` was a feature he wishes he could take back from the stack.

Plus, the validations that you get are incredibly unfriendly if a required field is missing, which means that the user wouldn't really be able to act on an error message from the deserializer.