> using something with a solid schema that handles field names and types and gives you some way to find out when it's not even there [...] ex: protobuf
In proto3 all fields are optional, and have default values, so it becomes impossible to detect the absence of data unless you explicitly encode an empty/null state in your values.