Coding 2024-02-12
First pass at how to represent all of this:
- There is a draft, made up of multiple documents.
- The document type can be a union if need be, but I'd like to try to come up with a protocol.
- Specific types are... let's say FictionOutline and ReferenceWork. (The latter is needed for a factual description of the neopronoun usage. That... shouldn't have character arcs.)
- For now, I want to structure the ReferenceWork pretty loosely; the current draft just has thirty-something lines of text that should appear in the preface, so I'd like to be able to just slap those into a node and call it done. Hm. Not sure how I want to set up the titles... This all seemed obvious in my head, but somehow I ended up tying my mental model into knots.
Like, if I say "the pre-processing should strip out Leo's @ directives", then I can include metadata at the topmost level and title it like that.
All right, thinking about this more... It might make sense to just work with undifferentiated node types to start with, and then work on narrowing things down as I find unique behavior/validation logic. Although I can kind of anticipate some things. Like "I want to define a bunch of metadata for each chapter, such that there is a set of key names for which any given key is either given a value by every chapter or none of them".
So, I can try working with:
- Draft
- ReferenceWork
- FictionOutline
- FictionBook
- FictionChapter
- Scene
- Summary
The next thing to figure out is where I put all of this stuff. On reflection, it probably shouldn't be in the tasks file, since I'm going to want to call it from the ninja build, so I guess I need to set up a virtual environment and requirements file for this stuff. I'll get on most of that later. Right now, I once again need to get to bed.
Good night.