The vocabulary you author with, grouped by what it describes.
The domain — the nouns and the facts.
entity— an aggregate: its fields, relationships, indexes, and isolation.object/value/enum— the value vocabulary entities are built from.spec— a named, reusable validation rule a field opts into (e.g.specs [Sku]).event— a fact an aggregate emits when it changes.
The application — the verbs and the flows.
command— a write (create / update / delete), with rule guards and set-clauses.query— a read, single-shot or a paginated, filterable list.use_case— a multi-step flow expressed as a state machine.subscription— an event-driven reaction to a published fact.policy— a reusable authorization rule referenced by commands and queries.
The architecture overlay — the structural and flow views.
system— a capability node: what it composes into, depends on, costs, and the capabilities itprovides.capability— a named thing the platform can do; a system provides it, a business_process step requires it.actor— a persona that uses the system.business_process— one goal-directed flow: the steps an actor walks, forking on outcome.journey— a persona's arc, composing whole business processes into one end-to-end experience.
The surface — how it is reached.
routes— the HTTP endpoints, and the auth posture they carry.
The seam — the one boundary out of the language.
bespoke— a typed reference to hand-written code, for the rare logic that cannot be declared (see Why Vishwakarma is not a programming language).
Everything else — the SQL, the migrations, the wire types, the validators, the client hooks — is generated from these. The vocabulary above is nearly the whole language; there is a raw escape hatch for constructs the language cannot yet express, but it is treated as a gap to close, and in practice it is almost never used.