Architecture decision records
| # | Decision | Status |
|---|---|---|
| 0001 | Keep the source / view / key / metadata model; clean-room implementation | accepted, amended |
| 0002 | All contracts in @astrolabe/core, manifest as the only per-type schema |
accepted |
| 0003 | Content format 1: <astl-doc>, <astl-page>, child elements instead of JSON attributes |
accepted |
| 0004 | String answers, slots, three scoring rules, flag semantics | accepted |
| 0005 | Two first-class usage modes: HTML with answers, HTML + backend | accepted |
| 0006 | Editor-agnostic authoring kit; no WYSIWYG engine in any package | accepted, amended |
| 0007 | Lit custom elements, shadow DOM per element, no answer logic in the player | accepted |
| 0008 | Own ICU MessageFormat 1 subset; UI locale and content language kept apart | accepted |
| 0009 | TypeScript 7, pnpm 12 with a release-age guard, Vitest browser mode, Biome | accepted |
| 0010 | Components, element versions, presentation variants, host-registered style templates | accepted, amended |
| 0011 | One install with everything on (the astrolabe umbrella), <astl-editor> on TipTap, lazy elements, options replace defaults |
accepted, amended |