This library aims to make the updating of JSON formats or contents, while keeping backward compatibility, as painless as possible. The way this is achieved is through versioning and defined migration functions to migrate older (or newer) versions to the one used.
The library mainly consists of two classes:
SafeJSON a: Defines the version of a and if (and how) it is migratable.
Migrate a: Defines the data type (MigrateFrom a) that can be migrated to a and how to migrate from that type.
Using these two classes, JSON serialized data types will stay parsable, even after format changes.