# Product architecture

Sater keeps product-specific work behind narrow integration points:

- Product identity, protocols, data directories, and extension-gallery configuration live in `product.json`.
- The Sater visual system is an isolated built-in extension at `extensions/sater-theme`.
- The small core theme patch selects Sater Dark by default and supplies matching bootstrap colors before extensions load.
- The Sater locale contribution owns the interface-language setting, first-run language choice, RTL shell direction, and code-surface direction boundary.
- Approved brand assets live under `resources/sater`; generated platform icons remain in Code - OSS's standard resource paths.
- Further Arabic behavior should use the isolated locale boundary first, Monaco changes second, and wider workbench/core changes only where platform abstractions cannot express the required behavior.

Every Sater-owned integration point and its expected merge risk is recorded in [`docs/UPSTREAM.md`](https://github.com/qentrah/sater/blob/main/docs/UPSTREAM.md). Brand color roles are recorded in [`docs/DESIGN_TOKENS.md`](https://github.com/qentrah/sater/blob/main/docs/DESIGN_TOKENS.md).