v0.3 Plan
Status: Released to npm as
@yangyus8/emotile@0.3.0.
Goal
Make Emotile usable outside the library.
v0.3 should turn the v0.2 expression runtime into a small integration toolkit: theme-aware output, SVG export, CLI workflows, machine-readable schema, and examples that help downstream users inspect real results.
Scope
External theme / palette runtime
- Add a theme object passed alongside expressions or frames.
- Prefer external palette input over embedding theme data in
EmotileExpression. - Keep the expression schema unchanged.
- Keep semantic colors (
primary,accent,shadow,transparent) as the internal renderer contract.
SVG renderer
- Convert
PixelFrameto an SVG string. - Keep output pure data: no DOM, Canvas, browser runtime, GPU, native dependency, or filesystem side effect.
- Support simple options such as pixel size, palette mapping, and optional background.
- Convert
Lightweight CLI
- Provide command-line workflows for
validate,repair,preview, andrender svg. - Use Node built-ins and existing package APIs first.
- Avoid large CLI frameworks and runtime dependencies.
- Provide command-line workflows for
JSON Schema export
- Export the current Emotile expression JSON Schema for agent structured output.
- Match the existing expression format and validation guarantees.
- Do not bump or alter the expression schema as part of this work.
Gallery examples
- Add readable examples that show composable expressions and motion behavior.
- Include theme/SVG outputs when those features exist.
- Do not create a preset expression catalog or complete preset IDs such as
happy_01.
Suggested Build Order
- Theme / palette runtime.
- SVG renderer.
- Lightweight CLI.
- JSON Schema export.
- Gallery examples.
The CLI can render SVG after the SVG renderer exists. Gallery examples should be last so they can demonstrate the completed v0.3 surface.
Non-Goals
- Desktop pet runtime.
- Canvas or browser runtime.
- Visual editor.
- PNG / GIF native export.
- Live2D.
- Large dependencies.
- Preset expression catalog.
- Expression-embedded theme field.
- Schema version bump.
Acceptance Themes
- Emotile remains platform-independent.
- Runtime APIs stay deterministic and pure-data.
- Agent-facing inputs remain validated, normalized, and repairable.
- Renderer changes must not weaken schema guarantees.
- New docs must stay consistent across README, docs, specs, and Chinese docs where applicable.