The minute you go beyond vanilla diffs, you're creating a custom patch format. This means you need to re-implement patching yourself; existing libraries cannot be reused.
I think some kind of custom format is unavoidable; it just needs to be open.
We don't need a mod managing tool if all we have are mini-mods that can be unzipped on top of a vanilla install. We also don't get much bang for the buck if we don't store things as diffs of some type (a graphics pack can make tiny changes to lots of large files).
I do. I want to be able to easily add and remove mini-mods without having to manually reapply each mod to vanilla on each remove or to work out how to remove a mini-mod while leaving others intact.
It's unavoidable in the long-term, definitely, but for the short-term, Peridexis is proposing to use a completely standard diff (with the pitfalls that brings along), to provide a more easily attainable starting point.
If you're making a custom format, then you'd prefer to make sure it is as complete (or extensible) as we would ever need, and that's when it takes more time - and you would likely end up with something like (but not necessarily identical to) ModBase.
One word: Rubble.
Custom formats are a lot of work, have been done, and have been done well. ModBase is great, Rubble is simply brilliant, but they're solving a different problem. The goal here is *not* to merge overlapping mods well, it's to make using mods easy for new players.
Maybe a custom format is unavoidable in the long term, I suspect not, but until something has wide adoption any new format will lead to nothing but fragmentation and stagnation as it becomes too much trouble to use these tools. In any event, if a special format was used at all I would need to hear some pretty good reasons to do anything but include Rubble and give users the option of the simple and advanced mod loaders. In response to all the ideas about flattening raw structures, maths in scripts, etc: different goals. The point of using standard diffs here is ease of use, and eye to future size reduction in the format, and *not* advanced merging. Making two unrelated changes to a file is enough!
The advantage of a diff over simple file overwrites is simply that it handles bloated small mods more elegantly, and it's fairly easy to implement with standard libraries. If not, file overwrites will do. I'm hoping we'll also see a slightly different mod philosophy where instead of including all the favourite tweaks, we get
just the changes that are a core part of the mod, equivalent to graphics packs leaving the population cap at vanilla levels.
Other scripts, fancy tools, etc should be just as compatible with the output of this process as any other mod; so scripts which (eg) edit aquifer tags will work just fine.