You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Upgrade RIDDL to 1.20.0 and document all language changes since 1.15.0
New statements: reply, require (with invariant refs), do (prompt alias).
Extended set (state refs) and let (type annotations). New options:
auto-id (entity), external (context). New aggregate use cases: graph,
table. Added validation notes throughout language reference and cheat
sheet covering the new CompletenessWarning system (1.19.0) and all
1.20.0 validation checks. Re-extracted EBNF grammar.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|`on query X`| A specific query message (use `reply` to send result) |
452
456
|`on init`| Processor initialization |
453
457
|`on term`| Processor termination |
454
458
|`on other`| Any unmatched message (catch-all) |
@@ -495,19 +499,27 @@ interactions between definitions, not full implementations.
495
499
|---|---|---|
496
500
|`send`|`send event X to outlet Y`| Route a message through an outlet or inlet (pub/sub, streaming). |
497
501
|`tell`|`tell command X to entity Y`| Send a message directly to a specific processor (point-to-point). |
502
+
|`reply`|`reply result ProductInfo`| Send a result back to a query sender without knowing their identity. Use in query handlers. |
498
503
499
504
#### Data
500
505
501
506
| Statement | Syntax | Description |
502
507
|---|---|---|
503
-
|`set`|`set field status to "Active"`| Assign a value to a state field. |
504
-
|`let`|`let total = "price * qty"`| Create a local variable binding. |
508
+
|`set`|`set field status to "Active"`| Assign a value to a state field. Also accepts a state ref: `set state X to "value"`. |
509
+
|`let`|`let total = "price * qty"`| Create a local variable binding. Optional type annotation: `let total: Decimal = "price * qty"`. |
510
+
511
+
#### Preconditions
512
+
513
+
| Statement | Syntax | Description |
514
+
|---|---|---|
515
+
|`require`|`require "amount > 0"`| Assert a precondition as a literal string. |
516
+
|`require`|`require invariant BalanceNonNegative`| Assert a precondition by referencing a named invariant. |
505
517
506
518
#### Description / Implementation
507
519
508
520
| Statement | Syntax | Description |
509
521
|---|---|---|
510
-
|`prompt`|`prompt "Calculate the total"`| Natural-language action description for implementation. |
522
+
|`prompt`/ `do`|`prompt "Calculate the total"`| Natural-language action description for implementation. `do` is an alias: `do "Calculate the total"`. |
511
523
|`error`|`error "Invalid state"`| Produce a named error. |
0 commit comments