How do you watch for shortfalls of chairs if you only have an abstract furniture type in your simulation?
First, I'm talking about abstracting the specifics - you can still be abstracting by tracking "chairs" in general, as opposed to "microcline chairs" having a completely separately tracked inventory from "orthoclase chairs". I never said you had to abstract "furniture type", and wonder where you got that idea. I get the impression that you and Sowelu are misinterpreting what I am saying with most of these comments.
The point of abstraction is that you only track the data you
need to track. If you need to track chair shortages, you track chairs.
Second, if we
are talking about broader categories of types being abstracted, furniture would be the easiest one to do, anyway. Furniture does not deteriorate, all furniture items are made of the same types of materials, and furniture types like doors, tables, and chairs are ubiquitous enough that you could easily just use a giant fungible mess and assume that a master stonemason could just as easily have produced a bunch of tables instead of a bunch of chairs that month, and it would make no real difference. A "chair shortage" would come from the exact same set of situations as a "table shortage", anyway.
If you want to, you can still have a "chair shortage" as distinct from a table shortage by simply tracking when furniture in general is low, and then randomly determining that it results in a shortage of specific types of furniture more heavily than other types, and make a procedural determination as to which piece of furniture feels the pinch.
As such, it's not even a problem if we assume the problem case you are thrusting upon me, anyway.
Yes, but you are sacrificing function. Imagine that breast plates are less likely to get damaged than gauntlets. And imagine that a town's primary leather source changes during it's history, so that it gets leather from different animals, switching from penguin leather to lion leather. It should the be the case that the it has more penguin leather breastplates and more lion leather gauntlets. Now that's not an important use case, but on the other hand, the optimization may not add much speedup.
As I have said repeatedly, the probability pools for materials can shift in the abstract and retroactively trace changes as the need arises. I don't see why anyone would ever want to make "leather breastplates" (which technically don't even exist) decay faster than gauntlets, anyway, but assuming that existed, then you would simply trace the gauntlets back the appropriate period of arbitrarily determined time back to the proper reference in the probability pool separately from the trace that takes place for the breastplate at the time that the data is needed. That is no more difficult than making only one trace.
Further, even if what you fear were to come to pass, and there was a loss of resolution due to the abstraction, and for some terrible reason, the game were to simply declare a full set of lion leather, where, exactly, is the actual loss in gameplay?
How does the player even know when a leather gauntlet was made,
now? How can you track a leather gauntlet back to a specific hunting expedition, even if there was an exact and complete historical record of that event in worldgen, when that is not recorded in legends mode and never comes up in gameplay? Do you even know if that animal was hunted or raised in captivity, for that matter? What are we losing, exactly?
You're arguing against the solution to a real problem by inventing an imaginary problem tailor-made for the current problem to "solve".
You also name no basis for your second claim, here, (that it would make no difference in speed,) when I have actually said why it
would result in a speedup. If, instead of adjusting every single value of the material-shape combinations for every game year that goes by, you instead abstract shifts in probability pools only as changes in the supply takes place, you could result in an order of magnitude of faster handling of the trade portion of worldgen, which is currently one of the major bottlenecks, alongside rampages and warfare.