Core collection and dialect registration live in @spacedevin/deck — see
package DECK_EXTENSION.md
(@spacedevin/deck/extension) and host boot in DeckIds.tish (@spacedevin/deck-synths).
Deckard registers:
| Dialect ids | Parser | Audio engine | Spec shape |
|---|---|---|---|
patch, modular, synth |
PatchGraph.tish |
Patch.tish |
{ nodes, conns, envs, dur } on generatorSpec.graph |
matrixFm, matrix_fm |
MatrixFmGraph.tish |
MatrixFm.tish |
operators, mod matrix, filters, routes (schema project-v2.json $defs/matrixFmGraph) |
Until registered, parseGenBlock returns { kind, tplHeaderId, version: 1, raw } only.
Macros are named patch templates registered via registerBuiltinMacros (BuiltinMacros.tish / MacroVoice.tish). A gen <macroName> expands to a gen_block patch at load.
Simple plugins read generatorParams; matrixFm and patch read generatorSpec.graph (each falls back if the graph is empty).
Line-level dialect syntax (nodes, op/mod/route, …): package DECK_EXTENSION.md (also @spacedevin/deck/extension after install).