For this release, I have overhauled the model in a pretty substantial way.
Each piece of the model is now derived from a base class that establishes a way for objects that inherit from it to determine their equality based on their "properties". Meaning, every app.name
or app.identifier
or any of the "dot" properties I've added to mirror the json, will be automatically used to determine equality. Furthermore, things like Versions are now comparable with each other using an absolute version (if applicable) or a combination of the version and buildVersion. This is now the defacto / required way to compare versions because it actually takes into account all the different properties.
You'll also find new optional properties for all the things like the Source about page. Properties have also been reordered around to have a default order and all non-recognized AltSource properties are now trimmed from the file by default (you can change this in the AltSourceManager save method).
These under the hood changes will make it much easier to upkeep and maintain the model with future changes while still making it very extensible. There are swaths of things to talk about, but rest assured, there are still plans to maintain and improve this project in the future.