This is what I had in mind when I proposed JSON encoding for IRC.
Standard RFC1459 chunks
RFC1459: :kaniini!~kaniini@rabbit PRIVMSG #ircv3 :hello world\r\n
This: [{}, "kaniini!~kaniini@rabbit", "PRIVMSG", "#ircv3", "hello world"]\r\n
RFC1459: ERROR :Go away\r\n
This: [{}, null, "ERROR", "Go away"]\r\n
RFC1459: CAPAB \r\n
This: [{}, null, "CAPAB"]\r\n
Tags
IRCv3.2: @tag1=a;tag2=b :[email protected] PRIVMSG #ircv3 :hello\r\n
This: [{"tag1": "a", "tag2": "b"}, "[email protected]", "PRIVMSG", "#ircv3", "hello"]\r\n
IRCv3.2: @tag1=;tag2 :Kyth JOIN #ircv3\r\n
This: [{"tag1": "", "tag2": true}, "Kyth", "JOIN", "#ircv3"]\r\n
Incidentally, this is the only type of JSON encoding we have any interest in implementing in Tethys. The stuff on bug #55 will never ever happen there, so consider that proposal DOA.
Yes, it's based on a subset of JSON. This is also a subset of YAML, too. Furthermore, I do not care about some idiot on hacker news's pet protocol, XMPP, protobuf, or any other nonsense. We will not implement any of those in Tethys, so consider those proposals DOA too. It's either RFC1459 or this, period.