When applications present collections of objects, known as elements, they can only organize the elements by object type, not object meaning. This means that an application can only offer collections of classes of objects (
If objects of a particular class can be organized by meaning (e.g. flattened vs normal projects) applications must resort to defining different classes of objects. I'm no expert in OmniFocus, but I suspect that is what is happening here. By creating the
flattened project subclass of
project, the Omni folks have made it possible to have a collection of
projects organized hierarchically and a collection of projects organized into a flattened list.