There are multiple options for this.
1) You could have an internal data structure and have a model that presents the album "view" on the data and models that present the card "view" of the data.
Depending on whether you can show multiple albums at the same time, you might need more than one instance of the latter.
2) Another option is to make some of the data classes themselves into models themselves, e.g. the "Album" class and the "App" class.
3) The "App" class could also be just a normal QObject derived class and have the "Album" models as a list property.
Option (1) requires separate classes for data and models, but also allows the data classes to be copyable.
I.e. more classes and thus more core, but treating data separately from the QML adapter to the data.
Options (2) and (3) need at least the "Album" class as a QAbstractListModel subclass, so a QList<Album*> as the container in "App".
When you write "all classes inherit QAbstractListModel" it looks like your chosen approach is (2), but do you also mean "Card" is a list model?
Cheers,
_
Bookmarks