# WrNexus batteries-included: design & roadmap Goal: let users start faster with a built-in UI library, theming, i18n, and validation. Built **foundation-first** so each subsystem lands solid and tested. Order (one subsystem per turn): 1. **Theme system** ✅ done — design tokens, SSR + client, no-flash, overridable. 2. **Wire UI** (`@wrnexus/ui`) ✅ done — 17 components + layout primitives as `.wrn`, consuming theme tokens, overridable 4 ways; auto-discovered + `wrnexus eject`. 3. **Layout system** ✅ done (folded into turn 2) — layout primitives (Container, Stack, HStack, Grid, Divider, Spacer) + page layouts (`app/layout.wrn` + ``). 4. **Validation** ✅ done — one schema for both form (client) and API (server). 5. **i18n** ✅ done — translations for pages and API responses. ## 4. i18n (done) - `@wrnexus/i18n`: locales in `app/locales/.json` (nested/flat keys, `{param}` interpolation). Per request the lang resolves from the `wire-lang` cookie → Accept-Language → config default (`wrnexus.config.ts` `i18n.default`). - **Server:** `ctx.lang` + `ctx.t(key, params)` on every request (pages + API). - **Views:** `{t:key}` text sugar compiles to a `` marker; `t:="key"` translates an attribute. `translateHtml` resolves both on the final HTML (after components + layout), and `` is set (no flash). - **Switch:** `[data-wire-lang-set="es"]` (or `