The language surface

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 it provides.
  • 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.

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.