In caisy, your content model is defined by all the blueprints created in the project.
A single blueprint already exists for the assets from the caisy as a system blueprint. You can extend this blueprint but not delete itself or some of its required fields. This blueprint is mandatory for the upload and handling of assets to work. That's why this is already created and protected that way.
If you have something that should only exist once, like your primary navigation, you should make it a single blueprint. This will allow you to query this blueprint in the external GraphQL API without specifying the id of the document.
Further, the user will only be allowed to create one instance of a document or component of this blueprint.
If mutations are enabled, there will be generated three GraphQL mutations in the external API for that blueprint. A create, update and delete mutation. With these mutations, you create and modify the data of your documents or components with the external API. This feature, for example, is helpful if you have moderated content that users can submit to your app or website. A very common example would be form submissions. Storing the submitted form data and creating a document for each submitted form lets you query the form data with the external API as well. Keep in mind that all created documents will be in a draft state after creation.
There's no distinction between Components and Documents in the External API and generated types. This distinction only affects the editor's experience.
A Document is often the starting point for your queries, such as a Page, Main Navigation, Footer, etc.
A Component is a content that only has meaning when connected, like an Image with a Text component. Additionally, it's important to provide a preview of the component by uploading a screenshot (e.g., from Figma). This helps the editor choose the right component and provides a visual reference before creation.