otherwise we will be in the same place of json in terms of extension where our own types are second class citizens.
otherwise we will be in the same place of json in terms of extension where our own types are second class citizens.
Something like EDN for JSON would be cool: https://github.com/edn-format/edn
Or do you mean, you want a format that's sort of halfway between EDN and JSON?
I know it's a tool problem but I don't see the whole world embracing transit.
If this format gets adopted with extensible types we get a readable format that has what transit provides and if there's no tooling support we can still read it with standard json tools or none at all.
It brings the set of scalar types you can express in a JSON message on par with other serialization formats like Protobufs:
So you can write a schema like: {"type": "string", "format": "email"}
or: {"type": "integer", "format": "uint64"}
There's no spec for what is allowed as a "format", so you have to decide on your own values and write your own validators, but someone could come up with a standard spec for this. Swagger formally specifies some values of "format" in this document: http://swagger.io/specification/