Migrated to using more structured data exchange methods.

In the future, when things are ready for optimization, we'll use struct byte packing instead of json, but that'll translate easily and if it performs well like this, then it can only get better.