Using components for abilities that extend movement?

I’m still relatively new to Unreal and even more unfamiliar with components and their breadth. Until now, I’ve only interfaced with the most common instances. As I started to plan how to implement abilities, however, I hit on several other similarly-themed topics that suggested using components to piece-wise create abilities based on effects. This approach makes sense to me (though I’m sure implementing it will not be easy, given my current limited knowledge) and seems like a nice, modular route to take.

My question, then, is can I do things like add the ability to double jump via a component, for example.
With things like a spell, I understand the basic idea (or at least I’d really, really like to believe I do)-
You have an ability called “fire spell” that is an instance of “ability”, the class that handles taking input and contains components for functionality.
It contains a “shootprojectile” component that dictates the procedure for what to do when the spell is “used” and properties of how the spell is shot (speed, spread, number of projectiles, etc)
Then, there’s another nested component that contains details about the thing that is shot (projectile mesh, particle effects, damage, etc).

It’s nice because it all tumbles from the top, down. How does that work with things that alter baseline behaviors, like jumping or resource management- things that are normally at the top of that hierarchy? Or does it just not work and I’d have to define these extra behaviors beforehand, in the character, and said abilities just allow access to the behaviors? Apologies if this really grossly oversimplified or just flat out wrong. As I mentioned, I’m still fairly unfamiliar with the details of the system. Any advice or thought-process correction is welcome.