The primary node types described here are optional, except for nt:base, which is required. Every node in the repository must be of at least this type. Any custom, implementation-specific primary node types must be subtypes of nt:base.
nt:version and nt:versionHistory are required for versioning support.
nt:nodeType, nt:propertyDefinition and nt:childNodeDefinition are required if storage of node type definitions in the repository content itself is supported.