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
| Shape | Category kind | Examples |
|---|---|---|
| Hexagon | Who, why, what | accountable, purpose, functional_modes |
| Circle | Data in motion | input_dataset, processing, output_dataset |
| Rounded square | Data at rest | access, retention, storage |
| Octagon | Context or guardrails | risks_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.