Files
STCourses/overlays/systemic-design/stcourse.yaml
T
2026-10-30 02:52:24 +01:00

111 lines
4.2 KiB
YAML

schema: 1
id: systemic-design
title: Systemic Design
pitch: Learn to build a rule-driven game engine by writing the systems that make its rules compose.
visibility: public
gating: sequential
root: /home/user/systemic-design-course
tracks:
- { id: rust, label: Rust }
- { id: ts, label: TypeScript }
mentor: mentor/SKILL.md
source: { kind: authored }
modules:
- id: m00
title: "The Rewrite Trap"
lessons:
- id: m00-lesson
title: "The Rewrite Trap"
type: text
file: "course/00-rewrite-trap/lesson.md"
- id: m01
title: "Handles and order of play"
lessons:
- id: m01-lesson
title: "Handles and order of play"
type: text
file: "course/01-handles/lesson.md"
localCommand: "node tools/start-module.mjs 01 <your-workspace>"
- { id: m01-scenarios, title: Scenarios, type: text, file: "course/01-handles/scenarios.md" }
- id: m02
title: "The action queue, depth-first"
lessons:
- id: m02-lesson
title: "The action queue, depth-first"
type: text
file: "course/02-action-queue/lesson.md"
localCommand: "node tools/start-module.mjs 02 <your-workspace>"
- { id: m02-scenarios, title: Scenarios, type: text, file: "course/02-action-queue/scenarios.md" }
- id: m03
title: "Deferred death"
lessons:
- id: m03-lesson
title: "Deferred death"
type: text
file: "course/03-death-step/lesson.md"
localCommand: "node tools/start-module.mjs 03 <your-workspace>"
- { id: m03-scenarios, title: Scenarios, type: text, file: "course/03-death-step/scenarios.md" }
- id: m04
title: "Interceptors and \"trigger twice\""
lessons:
- id: m04-lesson
title: "Interceptors and \"trigger twice\""
type: text
file: "course/04-interceptors/lesson.md"
localCommand: "node tools/start-module.mjs 04 <your-workspace>"
- { id: m04-scenarios, title: Scenarios, type: text, file: "course/04-interceptors/scenarios.md" }
- id: m05
title: "Behavior as data and Assemble"
lessons:
- id: m05-lesson
title: "Behavior as data and Assemble"
type: text
file: "course/05-assemble/lesson.md"
localCommand: "node tools/start-module.mjs 05 <your-workspace>"
- { id: m05-scenarios, title: Scenarios, type: text, file: "course/05-assemble/scenarios.md" }
- id: m06
title: "Grid, lexer and parser"
lessons:
- id: m06-lesson
title: "Grid, lexer and parser"
type: text
file: "course/06-parser/lesson.md"
localCommand: "node tools/start-module.mjs 06 <your-workspace>"
- { id: m06-scenarios, title: Scenarios, type: text, file: "course/06-parser/scenarios.md" }
- id: m07
title: "Resolving rules: NOT, identity, meta-nouns"
lessons:
- id: m07-lesson
title: "Resolving rules: NOT, identity, meta-nouns"
type: text
file: "course/07-rule-resolution/lesson.md"
localCommand: "node tools/start-module.mjs 07 <your-workspace>"
- { id: m07-scenarios, title: Scenarios, type: text, file: "course/07-rule-resolution/scenarios.md" }
- id: m08
title: "Push chains: validate, then commit"
lessons:
- id: m08-lesson
title: "Push chains: validate, then commit"
type: text
file: "course/08-push-chains/lesson.md"
localCommand: "node tools/start-module.mjs 08 <your-workspace>"
- { id: m08-scenarios, title: Scenarios, type: text, file: "course/08-push-chains/scenarios.md" }
- id: m09
title: "The turn pipeline"
lessons:
- id: m09-lesson
title: "The turn pipeline"
type: text
file: "course/09-turn-pipeline/lesson.md"
localCommand: "node tools/start-module.mjs 09 <your-workspace>"
- { id: m09-scenarios, title: Scenarios, type: text, file: "course/09-turn-pipeline/scenarios.md" }
- id: m10
title: "SpellGrid"
lessons:
- id: m10-lesson
title: "SpellGrid"
type: text
file: "course/10-spellgrid/lesson.md"
localCommand: "node tools/start-module.mjs 10 <your-workspace>"
- { id: m10-scenarios, title: Scenarios, type: text, file: "course/10-spellgrid/scenarios.md" }