JSON vs Protocol Buffers: Speed, Size, and Schema Tradeoffs