More WIP.
Tests are back to passing.

We're still incomplete based on the JSON changes, but at least it will be easier to tell what's broken from here.