KernelModel
Represents an entity definition registered in the solution, serving as a metadata registry for all available entity schemas. Each KernelModel tracks its name, module membership, namespace, and whether it is abstract, enabling runtime introspection and schema-driven development.
6 properties
Schema
Properties
| Property | Type | Mode | Description | Required |
|---|---|---|---|---|
| name | string | calculated | Unique name of the entity Example: | Required |
| module | KernelModule | calculated | Module that this entity belongs to | Required |
| description | string | calculated | Description of the entity purpose and usage | Optional |
| namespace | string | calculated | Fully qualified namespace or path for this entity within the solution Example: | Optional |
| abstract | boolean | calculated | Whether this entity is abstract and cannot be instantiated directly | Optional |
| metadata | json | calculated | Additional entity configuration and metadata | Optional |
Examples
Example 1
{
"@type": "KernelModel",
"name": "BaseParty",
"module": {
"@type": "KernelModule",
"name": "core"
},
"description": "Abstract base for all party types (Person, Organization) defining shared properties",
"namespace": "core.BaseParty",
"abstract": true
}Example 2
{
"@type": "KernelModel",
"name": "Person",
"module": {
"@type": "KernelModule",
"name": "core"
},
"description": "Represents an individual human being with personal and contact information",
"namespace": "core.Person",
"abstract": false
}Example 3
{
"@type": "KernelModel",
"name": "Product",
"module": {
"@type": "KernelModule",
"name": "catalog"
},
"description": "Represents a sellable item in the product catalog",
"namespace": "catalog.Product",
"abstract": false
}Example 4
{
"@type": "KernelModel",
"name": "Invoice",
"module": {
"@type": "KernelModule",
"name": "billing"
},
"description": "Represents a billing document for goods or services rendered",
"namespace": "billing.Invoice",
"abstract": false
}