Sure, but all that comes at the huge disadvantage of throwing away the ability for someone to just grab a JSON library and access your data adhoc. Now you have to fiddle with stripping away tildes and cache references and such.<p>At the same time, I don&#x27;t see how you can do anything sensible with Transit except throw it in to a hashmap&#x2F;dict alongside runtime type information. This is natural for dynamic languages, but, without a schema, you&#x27;re left to write you&#x27;re still left to write your own error-prone structural validation, and can&#x27;t fully leverage the efficiency of static languages. MsgPack has this problem as well.<p>Optimising the JSON representation just doesn&#x27;t seem worth it to me. Avro for example encodes enums by exposing the  type names as JSON keys. It sucks, and it&#x27;s something I&#x27;d change, but at the end of the day you&#x27;re building on a poor transport. Caching reminds me a lot of DNS label compression, or a poor mans preset zlib dictionary.