hey quick jab to ecs before i make a totally wrong comment on the main: generally a system is supposed to act on the components without being prodded from the outside right? e.g. a system would have an update(delta) method and in that decides what to do based on data.
e.g. a system to move an entity would act on the Position and Speed components. (or maybe there's a Position and targetPosition)