What you’re proposing should work. I’m not sure how it would behave with tons of units and abilities in terms of network performance, so try to keep it light and replicate only the necessary data.
If it becomes a problem in the future, you can always optimize or switch to using Tags or something similar. My philosophy is: first, make a game—then worry about optimization and security (not saying to do things poorly, of course).
The most important thing is to make a fun game.
Have a good day!