oh is that what you were going for
df::global::world->raws is already a fully-featured complete corpus of all raws including generated raws in the save and there are a multitude of scripts and plugins that already use it.
The problem isn't a GUI that can call a script on a variety of units, that's easy. The problem is what specifically the conditions should be; appearance modifiers are hilariously obtuse, for example.
I couldn't help but beam a huge smile when i re-opened this thread to be greeted with this answer. For more reasons than one.
Getting on topic. Thats interesting information to know for future reference, i evidently wasn't 100% aware of that, and it certainly saves a lot of time if it was required to turn it into a individual unrelated plugin.
Certainly by using arguments within the plugin i am suggesting which could be co-dependent or modeled on df::global::world->raws, couldn't you just assign each (obtuse for most sentient creatures may i add, if it was pet discriminatory it might be able to bypass extreme facial differences etc until it was fine tuned for basic fields) true/false arguements via what features the df.global.world.raws plucks out until it narrows it down to a result? A dog for instance has a wide range of colours but only a set amount of groups to which those range of colours can be assigned.
Setting via the plugin UI and pre-determined set of options as set out by the df::global::world->raws to set everything else not selected to 'false' as to say IRIS:TRUE, TURQUOISE:FALSE, BROWN:FALSE etc etc. in order to engineer what you want in the script.