Bootstrap.cs attempts to instantiate anything inheriting WildfrostMod.
Even if class is abstract or has any generic parameters.
Location: Bootstrap.CreateModInstances()
This makes it impossible to create custom base class for the mods:
public abstract class CustomModBase : WildfrostMod
{
public CustomModBase(string modDirectory) : WildfrostMod(modDirectory)
{ /* ... */ }
}
public class CustomMod : CustomModBase
{
// ...
public CustomMod(string modDirectory) : base(modDirectory) { /* ... */ }
// ...
}
Because Bootstrap.cs will attempt to instantiate CustomModBase.cs, which is not allowed (as it is abstract).
Making Bootstrap.cs ignore types with Type.IsAbstract (and probably Type.IsGenericTypeDefinition) will open the doors for very useful tooling 
For example - helper methods which entire community uses can be standardized and delivered as a separate mod.
(Until this point, the only way for doing so would be to ask everyone to setup a Rozlyn source code generator, but it has a lot of downsides)






