Kind
Purpose
The classification a draft's place gives it — its shelf within a layer. Four kinds are the DCI artifacts a specification tree holds, read from the kind folder the document sits in; the fifth, root, is the descriptor of a layer or a stack itself, read from the filename wherever it sits. Kind is the standalone value used wherever a draft's place must be recorded or compared — on the draft itself, and in the shelf order the atlas walks.
Attributes
Kind is a scalar tagged union — every value is fully described by its kind discriminator and
there are no per-variant attributes.
- kind: is one of "data", "projection", "context", "port", "root" that places the draft on its shelf
Invariants
- Kind must be one of the five recognised classifications: "data", "projection", "context", "port", or "root".
Scenarios
Data kind
Given: kind "data" When: a Kind is created Then: the value denotes a domain concept
Root kind
Given: kind "root" When: a Kind is created Then: the value denotes the descriptor of a layer or a stack