I'm tired of making scripts as generic as possible so it can be reused, but then having to create container classes for each generic type so it can be serialized to the inspector. (another reason to not use monobehaviours). This defeats the purpose of having "one generic class that does it for all".
Why not make it so that when adding a generic class script as a component, you will have to choose which type to pass into the generic parameters. this way we don't have to create unnessasry container classes.