Interfaces. I use Interfaces for this kind of functionality.
I have Interface with function “get Gameplay Stats Component” which i call to each object which i want to affect, if return is not valid, that means object doesn’t have component implemented.
Gameplay Stats Component itself has interface with function for each data what im interesting in.