Coding 2021-10-31
Looks like the Fragment API wasn't fully baked before, and it's not quite baked now.
Earlier today, I added stuff onto the prototype, focusing on the Generator classes and helpers. I got the basics done, though not tested, and I ran across a concept that I need to make sure makes sense.
The motivation is, it should be possible for a Fragment to contain Input and Output values. Input is fine, but each Output must be unique. That means that the Output needs to depend on every iteration variable used by the top-level generator helper. As such, it would help to catch errors sooner if a generator could be marked as needing to depend on every variable.
This could be accomplished with something like a maximal boolean field. Then the combining helpers could check that if one input is maximal, then the other input's keys are a subset of the maximal input. And the combined output would have the boolean or of the inputs as its maximal field. Would probably want warning helpers for invoking things, that can check if an Output is generated from a non maximal root generator, or if a maximal root generator does not generate an Output.
I don't want to keep on writing this until super late, so I'm going to wrap it for now, and think about something else to shift to for a bit.
Good night.