Fix a bug and add a test
Implement deserialization using from_dict instead of __init__
Allow updating existing instances from serialized
Add support for read-only / deserialize-only fields