Taxonomy
Concepts

Shape contract

Advisory mapping from DTPR icon shape primitives to the kind of fact a category holds.
Advisory, not schema-enforced. The structural schema accepts any of the four bundled shape primitives on any category. The mapping below is a design convention DTPR has used informally; the new beta documents it so authors and reviewers can reach for the same vocabulary.

Mapping

ShapeCategory kindExamples
HexagonWho, why, whataccountable, purpose, functional_modes
CircleData in motioninput_dataset, processing, output_dataset
Rounded squareData at restaccess, retention, storage
OctagonContext or guardrailsrisks_mitigation, rights

The four primitives — and how the icon compositor draws them — live in api/src/icons/shapes.ts.

How to apply it

When you propose a new category:

  • Pick the row above that matches the question the category answers, then use the matching shape.
  • If the proposed category does not fit any row, treat that as a signal that the category may not be coherent — revise the scope before picking a shape.
  • The shape is part of structural identity; changing a category's shape after authoring breaks pre-baked icon URLs that consumers may have cached.

Why advisory

The structural schema cannot tell whether a category is "data in motion" or "data at rest" — that is a content decision the author makes. Documenting the contract here keeps category-shape choices coherent across releases without forcing a structural taxonomy that would limit future categories.

See also