Idea is to split a"View" into a variety of interchangable components.
We start with basic versions of the interchangeable components which allow for the same behavior as current views, but QML's extensibility means that this will make the views a lot easier to tweak and customize.
Containing viewport, selection model and reaction to user input
Containing the path the items sit on and how they traverse the path
Containing the components for how to create different types of items depending on model data.
Containing the ability to create delegate instances based on the viewport state.
Separate topic, contains actual data, gets plugged into the instantiator