I've ironed out most of the kinks, but the GWT unit test still fails because we're forced to do some sneaky things with java.io.Reader/Writer. I think it will all work when compiled to JavaScript, so I need to check it in a real project.