feat(model): add node and link glossary definitions
This commit is contained in:
48
src/model/glossary.ts
Normal file
48
src/model/glossary.ts
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
/**
|
||||||
|
* UI glossary (F11, G4) — one-line definitions of the language, surfaced where a
|
||||||
|
* newcomer meets each term: as palette tooltips before placing, and in the
|
||||||
|
* gloss-on-selection panel after.
|
||||||
|
*
|
||||||
|
* CONTEXT.md is the authority for the vocabulary; these are deliberately terser
|
||||||
|
* (a tooltip can't hold the full entry with its `Avoid:` clauses). Keep them in
|
||||||
|
* sync with CONTEXT.md by hand — there's no test runner yet to assert it; when
|
||||||
|
* one lands, a check that every `NodeKind` has an entry and each `term` matches a
|
||||||
|
* CONTEXT.md heading would close the drift gap.
|
||||||
|
*/
|
||||||
|
import type { NodeKind } from "./types"
|
||||||
|
|
||||||
|
export interface GlossEntry {
|
||||||
|
/** The canonical term, verbatim from CONTEXT.md. */
|
||||||
|
term: string
|
||||||
|
/** A one-sentence gloss, distilled from the CONTEXT.md definition. */
|
||||||
|
short: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export const NODE_GLOSSARY: Record<NodeKind, GlossEntry> = {
|
||||||
|
stock: {
|
||||||
|
term: "Stock",
|
||||||
|
short:
|
||||||
|
"An accumulation that holds a quantity over time — the system's memory. Only Flows can change it.",
|
||||||
|
},
|
||||||
|
flow: {
|
||||||
|
term: "Flow",
|
||||||
|
short:
|
||||||
|
"A rate that moves quantity into or out of a Stock — the only element that can change one.",
|
||||||
|
},
|
||||||
|
converter: {
|
||||||
|
term: "Converter",
|
||||||
|
short:
|
||||||
|
"A stateless helper value, recomputed each instant from its inputs (or a fixed constant).",
|
||||||
|
},
|
||||||
|
cloud: {
|
||||||
|
term: "Source / Sink",
|
||||||
|
short:
|
||||||
|
"The model boundary on an open Flow end — where quantity comes from (Source) or goes (Sink).",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
export const INFO_LINK_GLOSS: GlossEntry = {
|
||||||
|
term: "Information Link",
|
||||||
|
short:
|
||||||
|
"Carries one element's value to a Flow or Converter — influence only, never quantity; its sign is its Polarity.",
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user