How to support component dependency/required components?

I have two components where one requires atleast one instance of the other. I want their functionality to be split into independent types for sake of modularity and extendibility. Furthermore, I would desire to have the dependent component be a UObject type, but it requires replication so I’m making it an actor component.

For now I will have one component have an array of the other component type. This should be acceptable in the near term as long as everything is replicated correctly.