ScriptableObject Ability system with nested Effects and Targets

Another issue I’ve run into is how to represent the nested components of abilities. For example, an ability contains targeting and a list of effects. Should there be Targeting and Effect ScriptableObjects? If so, it seems like this would create a lot of repeated and duplicate assets, for example you’d need a different SingleTarget ScriptableObject asset for every ability that uses SingleTarget targeting, and the only thing that would change would be the number. You wouldn’t be able to share target SOs between abilities, because changing one would change them all.

This thread touches upon this issue: ScriptableObject skill system, how to better organize?

Madgvox attempts to provide an editor solution that automatically creates sub-assets, but there seems to be issues with it (get stranded sub-assets that you can’t delete).

The other solution seems to be to represent these submodules like targeting as Serializables and place them inside the ability ScriptableObject, but this doesn’t seem to play well with the editor.