Generalize type recursion, since it turns out I have a use case after all. Improve map handling. Add type registration and versioning
Check for mismatched structs during encoding and decoding. Turn some type code back on