How to modify non-attribute properties with GAS?

Hello guys,

I am investigating on the Gameplay Ability System, and the more I look and try tutorials, the more it looks like the system relies on all “modifiable properties” to be attributes (health, stamina…).

Let’s say I have an already working game in which I would try to integrate GAS. I cannot move my already existing properties such as player’s or AI’s health to an attribute for example.
What is the best practices to have GameplayEffects and modifiers changing non-attribute properties?
AFAIK, I could work around by using the UGameplayEffectExecutionCalculation, and insert my custom code to change the actor’s legacy health in the Execute_Implementation function, but I’m not sure this was designed to really do that.

Thank you!