CoreData domain model
Contents
Document hierarchy
CoreData’s document model is built of documents organised in a tree.
Base abstract document type is Document. All specific document types such as Space, Folder, Project, File etc. derive from Document and are system types.
The conceptual schema below displays allowed children for each document type in the hierarchy:

Source: link.
NOTE: A user record does not belong the Document type hierarchy, it is a separate type deriving from the Django’s django.contrib.auth.User.
The document hierarchy is easier to learn when broken down into sections. Documents in a section are grouped together and serve for solving specific user task in CoreData. See CoreData document hierarchy per section below:
Document creation
The following items are used in document creation process:
System type (the types mentioned in the Document hierarchy above);
Field values provided by user.
The high-level document creation algorithm is following:

Source: link.