diff --git a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md index ddc6e6e4..979245a6 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md +++ b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md @@ -65,9 +65,10 @@ names the principle that settles it, and is cited as "design 47 G A-n". one mesh-sdk constructor, `views.NewStdioWriter`, generic as the writer is,, which fills `Publish` from the module's own event publish and `Listen` from its subscription; no module writes that adapter. The tool runner's own finding writer (mesh-tools' first views) hands in `Publish` and `Listen` from its bus connection, in its one place. -- **A-17** (§461, A-16; principle 7) `findings-asked` is always the seat `mesh-conditions`' event, so the writer names it - with that seat, `mesh-conditions.findings-asked`, as a constant of mesh-sdk, in Go and TypeScript alike; no module - supplies it. +- **A-17** (§461, A-16; ADR 0613 §5, principle 7; corrected) `findings-asked` is always the seat `mesh-conditions`' event, + but a seat's name and contract are mesh-contracts' (ADR 0613 §5), so mesh-sdk names no seat: the writer takes the + subject it hears in one config field `Asked`, which each module fills from the generated `mesh-conditions` contract's + own constant (`SubjectFindingsAsked`), in Go and TypeScript alike. - **A-18** (§587, §305; principle 7) What G retires leaves no trace: the gate's record type drops the `remove` operation and `OpRemove` (§587: a removal is no operation), and its `table`, `recheck` and `close` go with their handlers and tools (§305). `checks` goes too, as §431 retires it with the merge states; the check is the runner's now (G-2).