I had a think about it overnight. Think of a tree something like:
Skills
- Materials
- Stone
- Sedimentary
- ...maybe subdivide for sandstones, gritstones, etc...
- ...limestones, chalk, etc...
- ...shale, or whatever (arguable as to where various items lie, of course)
- Blocks of
- Volcanic
- ...granitic stuff... ...obsidianesque... ...blah blah blah... all their own sections
- Metamorphic
- Wood
- Hardwood
- Softwood
- Other (i.e. tower cap?)
- Planks of
- Metal
- Ductile (below which copper, wrought iron, etc)
- Brittle (pig iron, etc)
- ... and whatever, because working different types needs its own knowledge
- Bars of
- Bone
- Plant
- TBD (intended for ropes and similar)
- Mechanical
- Basic
- Subset to gears, axels, insofar as constructing these from (B)uild (M)echanisms items goes
- Fiddly
- Stuff for creation of Crossbow mechanisms and the like
- Heavy Engineering
- Mechanisms
- Manufacture
- Installation (i.e. levers)
- Connection
- Mill construction (wind and water being subsets?)
- Pump construction
- Construction and Demolition
- Subset to (walls, floors <=further subset),
- Bridges
- Pillars and supports
- whatever
- Architecture (i.e. design of)
- Furniture
- Surface
- Subsets to chairs, tables, etc
- Container
- Subsets to chests, cabinets, etc
- ...whatever else...
- Crafts
- Subset to size and/or function, so earrings are different to statues, swords are different from ropes, clothing is subtly different from bags, and possibly subset the instrument-making into wind, string, etc
- Food Handling: with subsets for the agricultural end (growing, milking), bulk processing (milling, extraction) and preparation (cooking), but I haven't worked out whether milling for dyes should be in here, so maybe a change of title to "Plant Handling", except that this excludes milking, so maybe an Animal Husbandry tree should take that over...
Skill levels are set at branch-tip level. Effective skill level of a branching point is the sum of all skill levels directly underneath it, divided by the number of possible branches. A work order that requires a chair skill would primarily look for experience in making chairs, but would fall back upon the effective skill for making "surface items" at 50% if this exceeds actual chairmaking. Or if 25% of the Effective "furniture" superset skill is greater than either. This is a further penalty for going outside the speciality (I didn't think you'd have much truck with the straightforward inherited effective level, but I didn't want to deny a Legendary cabinet maker a chance of making a half-decent chair).
As far as the Construction and Demolition options are concerned, better experience with a wall will allow quicker building
or removal of a wall (in leiu of quality concerns). If it's a stone block wall, then experience of the stone subtype, stone blocks and walls is used (or backtrack up the tree, for each, accordingly) and experience is gained in all/some of these according to developer's preference (from a fixed amount of each, to randomly distributed to random subskill within the requirements). But demolition/removal gives less available gain of experience than the building, obviously, even on a net gain per time needed basis, and maybe it could be skewed towards material understanding, so that removing a lot of stone walls (of many varied types) gives a some experience of each stone type, and less (but still some, on balance) towards how it was put together. But I've included "block" material experience sub-trees within each material type there as a skew so that if working with pre-prepared materials (blocks of stone, planks of wood, bars of metal) then the experience gets shared thinner on the basic material than if working with the raw material that programmatically needs more time to use than blocks, and/or less quality where applicable.
As far as the program is concerned, going down this path is definitely a major rewrite from the current system (apart from anything else, time needs to be spent deciding the skill tree structures and the elements of tree structure looked for for any particular task) but shouldn't be much more data intensive than the current system, with each character having a number of branch-end skill values no more than a small multiple of the stored array of abilities, at most, and certainly insignificant compared with the 4+D definition of the terrain as I understand it. Even the background calculations are fairly minor (given a simple lookup-table for prerequisites) and only need to be done on task initiation (for checking the ability) and end (to credit with expertise). The latter could even be precalculated at the time of the former and feature in some way towards the mood of the Dwarf (one who likes challenges could like the learning from a task she's got some mismatched ability for, and conversley be less enthusiastic about a "been there, done that; ooh look, another masterpiece... so what" situation).
It also occurs to me that hauling jobs could tap into the skills table, Knowledge of stone (in general, if not the specific type) could help in moving a unit of it, in addition to the strength. Experience with megabeasts under the Animal Handling skillset would definitely be invaluable when moving a pet dragon from a cage to a chain. Certainly make things happen quicker/avoid quitting the job and dropping/letting-free the target of the haul before completion, but succesful completion would give a little (proportionally very small) insight that could assist them taking up a carving career (craftwise or butchery, respectively
) . Other "skill-less" jobs could tap into a skill-tree, somewhere, also. Recovering wounded adding (by trial and error) to something like first aid ("yeah, it hurt when I dragged him by the beard, but at least his foot didn't come off, like the other one's did").
This is a huge thing to implement. I don't expect it to happen like the above, but as far as the theory goes it's a possible idea to expand on (or deflate to something more likable, perhaps),