Double you, eye - pea.
Expected phases:
- implement an entity component system (ECS) (or CES).
- see if an ECS + tradtional game loop is sufficient for these types of UI components (in order): logic, layout, looks. (inspiration: cycle.js, gamedev, PLC's)
- map entity-component-values to DOM element-attribute-values. (inspiration: a-frame)
- reverse the map from 3 (vDOM). (inspiration: react, inferno, snabbdom)
- if necessary, write a webpack loader to polish final syntax/api (hopefully not necessary)
Goals:
- data-driven
- immutable
- composable
- decomposable[1]
[1] Might be the wrong term; but the ability to easily take a thing and break it apart into smaller pieces. Or, the way things must be formed makes unforming easy.
Notes:
- consider tcomb instead of typing via symbols
- for perf, consider mori instead of merge-deep