Part of #44 ## Tasks - [x] Create `scripts/renderers/StatCard.tsx` - [x] Replace `TextAttr`/`CardAttr` interfaces and `mountText`/`mountIcons` imperative loops with flexbox column layout - [x] Embed SVG icon assets using satori's `img` or inline `<svg>` children - [x] Handle the `peng`/`color` variants via props - [x] Make `renderStatCard` async, update `api/stats.ts` - [x] Update or add tests ## Depends on - Phase 1 (#44)
Part of #44
Tasks
scripts/renderers/StatCard.tsxTextAttr/CardAttrinterfaces andmountText/mountIconsimperative loops with flexbox column layoutimgor inline<svg>childrenpeng/colorvariants via propsrenderStatCardasync, updateapi/stats.tsDepends on