Skip to content

Commit 87c5842

Browse files
reid-spencerclaude
andcommitted
Add known options table to Options concept page
Maps each definition type to its supported options, derived from KnownOptions.scala in the riddl language module. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 32dde40 commit 87c5842

1 file changed

Lines changed: 42 additions & 2 deletions

File tree

docs/riddl/concepts/option.md

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,50 @@ adapted from a similar idea in
3030
[Simon Brown's](https://www.linkedin.com/in/simonbrownjersey/)
3131
[C4 Model For Software Architecture](https://c4model.com/#Notation).
3232

33-
Other options are specific to the kind of vital definition. See the
34-
vital definition's page for details on the options they take.
33+
Other options are specific to the kind of vital definition.
3534
Non-vital definitions do not allow options.
3635

36+
## Known Options By Definition
37+
38+
| Definition | Supported Options |
39+
|------------|-------------------|
40+
| [Adaptor](adaptor.md) | `css`, `faicon`, `kind`, `technology` |
41+
| [Application](application.md) | `css`, `faicon`, `kind`, `technology` |
42+
| [Connector](connector.md) | `kind`, `persistent`, `technology` |
43+
| [Context](context.md) | `css`, `faicon`, `gateway`, `kind`, `namespace`, `package`, `service`, `technology`, `wrapper` |
44+
| [Domain](domain.md) | `css`, `external`, `faicon`, `kind`, `namespace`, `package`, `technology` |
45+
| [Entity](entity.md) | `aggregate`, `available`, `consistent`, `css`, `event-sourced`, `faicon`, `finite-state-machine`, `kind`, `message-queue`, `technology`, `transient`, `value` |
46+
| [Epic](epic.md) | `css`, `faicon`, `kind`, `sync`, `technology` |
47+
| [Projector](projector.md) | `css`, `faicon`, `kind`, `technology` |
48+
| [Repository](repository.md) | `css`, `faicon`, `kind`, `technology` |
49+
| [Saga](saga.md) | `css`, `faicon`, `kind`, `parallel`, `sequential`, `technology` |
50+
| [Streamlet](streamlet.md) | `css`, `kind`, `technology` |
51+
52+
### Common Options
53+
54+
These options are available on most definitions:
55+
56+
- **`technology`** — Names the implementation technologies,
57+
adapted from
58+
[Simon Brown's](https://www.linkedin.com/in/simonbrownjersey/)
59+
[C4 Model](https://c4model.com/#Notation). Takes string
60+
arguments: `option is technology("Kafka")`
61+
- **`kind`** — A semantic categorization of the definition.
62+
Takes a string argument: `option is kind("device")`
63+
- **`css`** — A CSS class name for visual rendering
64+
- **`faicon`** — A Font Awesome icon name for visual rendering
65+
66+
### Notable Definition-Specific Options
67+
68+
- **Entity**: `event-sourced`, `value`, `aggregate`,
69+
`transient`, `consistent`, `available`,
70+
`finite-state-machine`, `message-queue`
71+
- **Context**: `gateway`, `service`, `wrapper`
72+
- **Domain**: `external`
73+
- **Connector**: `persistent`
74+
- **Saga**: `parallel`, `sequential`
75+
- **Epic**: `sync`
76+
3777
## Occurs In
3878

3979
[Metadata](metadata.md) blocks (`with { }`) on any

0 commit comments

Comments
 (0)