Way back in my post: Coding Away, Thur. May 30 2019, I had the bright idea to make my object stage system pluggable. While there was a glimmer of an idea in that thought for pulling scenery from thin air, that wasn't good enough for me. I went off and tried to develop a system by which I had pools and pools of objects to paw through and each was equally valid.

With all due respect to myself when I'm feeling brilliant... this was stupid. I should have just added a way for a schema to provide map information, and left defining objects out of it. I didn't. And I have a mess on my hands. All of my game code up until now was perfectly happy with a single set of links to paw through, and a single pool of objects (albeit of many different flavors) to interact with. Having objects drawing data from many different worlds is breaking that system.

So I'm going back into clay-stage and simply allowing the Iliad's compartment information in as a data source. Instead of encoding setting and objects in the Iliad database, I am instead going to have an overseer script that can generate information for the central pool based on information or relationships in the various data sets.

Put another way, the "compartment" as a location will exist as an object in clay-stage. When clay generates a UUID for that object, it will store the relationship between that object and the database records in the map source. Where that entity connects to other objects in clay-stage, those connections will be made apparent. For areas where we have a door that goes to an area on the ship that the game hasn't defined, we will have some notational equivilent of a compartment to be named later.

Another nicety to this approach is that, because I have a handler script, that handler script could very well implement an object than understands the complexities of the data source and can translate questions the clay-stage has about the objects. For now, we will consider data sources to be a strictly one-way affair. Data can stream into clay-stage, but clay-stage decides what to do with it from there. And ideally, clay-stage would not need the data-source again unless the player wanders off the map that clay-stage had already established.