Devlog

These are my daily notes and internal conversations during development. They may be helpful to understand the larger context of decisions that were made, and how I learned and explored while building.

Devlog < 2023 < March < 8

| by date | | thread: collect |

During an object tree execution, we step through the commands, (potentially recursively) render all of its arguments, and then run the command. Inside a string, we need commands to access strings, switches, and object values, the ability to traverse group links from objects, and to run iterators. Some tricky parts are: how do we potentially hold multiple layers of “object” in the context when iterators are nested? how do we choose object/group combinations to traverse?

The root of this problem, I think, is that we sometimes want to be explicit, and sometimes want to be implicit about which objects we’re referencing. If we just have multiple layers of “object” in our context, then searching for an object’s value would just go up the context chain, and any duplicate value name would overwrite a lower level one. I think this is okay. Since we don’t have any object types, the group situation might be the same as well; we just have a list of traversable groups at each layer of the context, and if you somehow nest objects with the same group membership it gets overwritten.

| thread: collect | | by date |