# Element Category Matrix

The following matrix provides a quick reference for the structural differences and capabilities of the various categories of elements within the Information System.

| Category | Topological Role | Independent Identity | Primary API Path | Context Membership | Custom Fields Allowed (Schema-Mixed) |
|---|---|:---:|:---:|:---:|:---:|
| **Context** | Logical Partition | ✅ Yes (UUID) | `/contexts` | ❌ N/A (Defines the boundary) | ❌ No |
| **Type** | Type Schema | ✅ Yes (UUID & Name) \* | `/types` | ❌ N/A (Global definition) | ❌ No |
| **Resource** | Graph Node (Hub) | ✅ Yes (UUID) | `/instances` | ✅ Yes | ❌ No (Topological extensibility only) |
| **Facet** | Graph Node (Satellite) | ✅ Yes (UUID) | `/instances` | ✅ Yes | ✅ Yes |
| **IsRelatedTo** | Graph Edge (Association) | ✅ Yes (UUID) | `/instances` | ✅ Yes | ✅ Yes |
| **ConsistsOf** | Graph Edge (Composition) | ✅ Yes (UUID) | `/instances` | ✅ Yes | ✅ Yes |
| **`Property`** | Nested Data Value | ❌ No | ❌ N/A (Embedded) | ❌ N/A (Embedded) | ✅ Yes |
| **QueryTemplate** | Stored Query Definition | ✅ Yes (UUID & Name) \* | `/query-templates` | ❌ N/A (Global definition) | ❌ No |

---

\* **UUID & Name Identity:** These elements physically possess a globally unique UUID — either supplied by the client at creation (honored if not already in use by another entity) or, if omitted, generated by the system. However, to maximize human-readability and ease of use, the REST API endpoints are designed to address them exclusively using their unique `name` field (e.g., `/types/{name}` or `/query-templates/{name}`). Clients never need to know, retrieve, or use the underlying internal UUIDs for these System Objects.
