Charting Architecture
Prox OS does not build a chart engine. It maintains OS-native chart shells,
Scope
Prox OS does not build a chart engine. It maintains OS-native chart shells, theme mapping, chart contract adapters, and Storybook examples that can sit on top of proven chart libraries.
Engine Policy
| Engine | Role | Current package use |
|---|---|---|
| Apache ECharts | Default engine for rich dashboards, dense interactions, and broad chart coverage. | EChartsPanel |
| Vega-Lite | Portable, AI-readable chart specification for generated or shared chart definitions. | VegaLitePanel |
| Recharts | Lightweight React dashboard option for small cards and simple trend visuals. | RechartsMiniChart |
| Custom | Future escape hatch for app-specific or remote visualization surfaces. | Contract only |
ECharts is the default because it covers the widest chart surface without Prox OS becoming a chart engine maintainer. Vega-Lite is important because a compact JSON spec is easy for AI agents, docs, and portable app packages to inspect. Recharts remains useful for simple React-native dashboard cards.
Contract Connection
@prox-os/data-contract defines:
type OsChartEngine = 'echarts' | 'vega-lite' | 'recharts' | 'custom'OsChartSpec stores the engine name, optional datasetId, metadata, and a
neutral spec object. @prox-os/data-viz interprets that spec for Storybook
and early app surfaces, while apps can still pass engine-native options when
they need deeper control.
Theme Mapping
@prox-os/data-viz reads --os-* design tokens at runtime and keeps fallback
colors centralized in theme.ts. Chart adapters should not hardcode large
palettes inside components. When design tokens evolve, data-viz should map
semantic chart colors from the token layer rather than duplicating a design
system.
Future Custom Chart Apps
Future user or community chart apps can run as local modules, iframe apps, remote modules, or external apps. The shell should discover the app through a manifest. The app owns its internal chart route and rendering engine. Prox OS provides the contract, runtime context, permissions, and theme hints.
Non-goals
- No custom chart renderer.
- No forced single chart library for every app.
- No production analytics backend in this package.
- No chart export service until the platform owns real file/output policies.