Currently my biggest wish for mod-manager is some sort of state tracking. I.e. i don't like how it detects if mod is already merged in.
It's conceivable to derive a "fingerprint" from a merge file to determine if it is already merged in or not, but a far simpler solution would be to tag a specific file with comments, maybe something like creature_standard since that will always be present. It should include the mod's name, version number, and a timestamp of when it was added.
Second in wish list is this. Namely some smarter way of adding-removing everything and being raw aware. Imho there is no silver bullet: even multi-million programming industry did not crack this problem and there are so called "merge conflicts" that need to be sorted out by hand.
The only way to do this reliably is to hope that the player hasn't made any changes by hand, then remove mods in reverse order until you've taken out the target, then re-apply the ones that were supposed to stay in.
A tool to identify the player's hand-made changes and diff them into a "mod" would be very clever, but it'd require a backup copy of all the raws before the player messed with them, and it would
still break if the hand-made changes involved the mod to be removed. If it works, the hand-made tweaks would just be the most recent mod to be peeled off and re-applied in the removal process.
One drawback i have almost no experience with raw moding. But even making my simple mods (mostly as showcase for various plugins and adding some flavor to df) i experienced one big problem: which entities should get reactions/buildings? What happens if some other mod adds entities (especially after you added reactions)? What happens if you are using BIG mod (e.g. masterwork and all the entities are unknown)?
Inserting stuff into entity_default.txt is one of the biggest arguments in favor of a merge utility, since simply overwriting the file is almost certainly the wrong answer. For an early version, it's fine that only entities foreseen by the modder get new buildings and reactions, but see below.
I think we need a "raw manipulating library" i.e. that a script could ask for various things (e.g. all creatures that have X in their token) and manipulate them. Then both procedural generation of raws and various merge operations (also mod installation which might even depend on existing raws in some strange ways) would use same library.
If we go with some minor scripting capabilities, it's possible to put in a condition such as "add [NATURAL_SKILL:DISCIPLINE:1] to every CREATURE with a [LARGE_PREDATOR] tag" or "add [PERMITTED_BUILDING:MAGMA_KITCHEN] to every ENTITY with a [DEFAULT_SITE_TYPE:CAVE_DETAILED] tag". The issue becomes
removing those mods. If the tag to be added was already there, it will be removed if the mod is removed unless we get into complicated tagging of tags with comments.