The model should be fairly straightforward to implement:
[x] Data classes to represent the relevant concepts in the app (tasks, projects, etc.). In the case that these need to reference other objects (ex. projects will have a list of tasks) this should be done via identifiers (GUID strings preferably) instead of direct references, to facilitate serialization and reduce coupling.
[x] Manager classes that operate on the data classes; the viewmodels will call methods on them to make changes to data. These will need to linked to the data providers once implemented ( #4 )
Prerequisite: #2
The model should be fairly straightforward to implement: