I'll need to parse the JSON from a string, however, which means a stream
abstraction for being able to read from a string(or just a raw
bytestream). Guess I'll have to reimplement that away...
This code _really_ isn't good. I've spotted some fun racing happen and
leak of some JSON(somehow?) without timeout, and I've been trying to
spend the last several days trying to fix that.
The good news is that, with some endpoint spoofing, you can actually
_try_ this with a Matrix client(dev.cinny.in for example).
I might consider rewriting this pastacode, considering the issues noted
above in favour of a better design, with less odds of this.
The code is still ugly(still waiting for j2s to support some things
before I can actually get *somewhere* with the schemas, which is my main
complaint), and it's definitely not spec-compliant, but it now means you
can actually see diffs in rooms you joined from the timeline!