Currently the RV engine has great support for modding and a relative solid way of handling depencies through the 'requiredAddons' variable within CfgPatches. However the only way to add additional support for optional mods is by creating "compatibility mods", or by adding optional addons which needs to be added/removed manually by the user / server admin.
example 1
A mod developer who wants to support both the vanilla version of ArmA3 AND ArmA3 with (any combination of) DLC's, is currently required to make multiple mods, or is either limited in its features or will be forcing the user to buy the required DLC's.
example 2
An user who would like to use RHS and ACE3, also needs to download and enable the ACE3 RHS compatibility mod to let them work together.
My suggestion is to add a new variable in CfgPatches which allows mod developers to optionally support other mods (either own or by third-party), without the risk of stopping the game from loading or generating numerous errors in the log files.
// \Mods\@MyMod\addons\MyAddon\config.cpp class CfgPatches { class MyAddons { optionalAddons[] = {}; }; };
This variable works just like 'requiredAddons', where it both checks if the listed addons are present and to define the loading order of all the mods/addons. However, instead of stop loading the game if an addon is not found, it simply won't load the addon (= file.PBO) itself while it still tries to load the rest of the mod.
Of course this would work without any problems on a local machine (either in singleplayer, or client-side mods), but could give issues with multiplayer mods. Especially because in this case the config classes could differ between the clients and server, although it shouldn't be possible to load non-allowed mods (and thus configs) when the mod/addon signatures aren't present or the mods/addons aren't loaded by the server.