what do we event want here?
- using a cli, run commands from within the root directory of a matry project
- the cli should manage everything a developer needs to parse matry code
- but what does a developer need?
- produce images and other assets from source
- parse the code to a json output
- render the json with passed-in variant values
we need a tree in several states:
- ast (this is what tree-sitter produces)
- syntax tree (this creates an adjacency list but does not resolve any expressions or take any parameters)
- bundle (this is a directory of all assets (images, fonts, etc), as well as the json syntax tree)
- render (this takes in a number of parameters to produce a final build against a target)
or does the bundle come after the render? does a render result in a bundle?
I need to get very precise on my language.
Backing up, the designer needs to be able to...
- Create multiple versions of the same tokens, with different parameters passed in. this is what I'm calling a "render."
- Automatically generate a page or website that documents the tokens. This should include the expressions (calculations) that were used to create the tokens, along with their default values.
- Render different tokens at runtime, due to either environmental assertions on page load, or to changes in application state.