Tried running the mod, figured out the problem:
BaseScienceHullMod has a static field
public static int MAX_MODS = Global.getSettings().getInt("maxScienceHullmods");
There is no settings.json file containing
maxScienceHullmods, so trying to get the value throws an exception
causing BaseScienceHullMod to silently fail to load
which broke the hullmods whose Java classes derived from BaseScienceHullMod
Fixed by adding a file data/config/settings.json to the mod with the required value.
{
"maxScienceHullmods":2,
}