Architecture decisions
Generated page
This page is generated from docs/adr by docs:collect. Edit the source, not this page.
One record per architecture decision, numbered in the order they were taken. A decision that replaces another says so in its record.
| ADR | Decision | Status | Date |
|---|---|---|---|
| 0001 | Typings are generated from vendored raw Patch files plus a hand-curated Overlay | accepted | 2026-09-23 |
| 0002 | The toolchain follows typescript-to-lua's TypeScript peer, and library tests run the compiled Lua on real Lua 5.3 | accepted | 2026-09-23 |
| 0003 | Creation throws, lookup returns undefined; the Handle registry upgrades to the more specific Wrapper | accepted | 2026-09-23 |
| 0004 | Doc comments follow TSDoc with declared custom tags, examples are included from compiled files, and library coverage is gated | accepted | 2026-09-23 |
| 0005 | The docs site runs on Docusaurus, is versioned per library release by CI, and generates the migration table from a rename map | accepted | 2026-09-23 |
| 0006 | The Template owns code, the World Editor owns data, and every library release must build the Template before it ships | accepted | 2026-09-23 |
| 0007 | Guards live in three layers, and the runtime layer sits behind one dev-mode flag | accepted | 2026-09-23 |
| 0008 | Every Wrapper covers all natives owned by its handle type, measured by a generated report, and Blizzard.j is never mirrored | accepted | 2026-09-23 |
| 0009 | Packages are versioned independently with Changesets, and each one declares the game Patch it supports | accepted | 2026-09-23 |
| 0010 | The Probe runner copies the Template's minimal pipeline instead of depending on the Template | accepted | 2026-09-29 |