Agreed. Human readability is extremely important when it comes to third party integrations. Also schema flexibility is advantageous. Since you can't fully trust data from the other side, it's quite pointless to try to build type constraints into a data communication format itself as data validation will need to be done on the receiving end regardless... Same amount of effort defining schemas for JSON as Protobuf... But JSON doesn't try to combine the two aspects so there is more flexibility in terms of what validation library to use to enforce the schemas. Also binary format doesn't provide any inherent performance gains as if often claimed... JSON strings are binary behind the scenes too and most engines are really good at efficiently processing strings.