Completemethod was the best I came up with (it can be called safely even if you don't have
Whenrules btw). Since the processing is up to the user, it needed an api to say "ok I have finished processing this set, you can empty it". I didn't wanted to create a different type of entity container for reactive rules, which would have needed its own system implementation, the api for querying would also have also needed to be duplicated to differentiate the two mode, hence why I went that way to keep thing simpler implementation wise (but maybe a little more complicated usage wise...).
SubscribeComponent/Entity...methods which I think works better.
EntityMap<GameIdComponent> map = world.GetEntities().AsMap<GameIDComponent>();
map[componentValue]to get the corresponding entity.
world.GetEntities().With<GameIDComponent>(testIDMatchesWhatImLookingForMethod).AsSet().GetEntities();would iterate all entities every time you want to get one, even worse the created EntitySet is not disposed and it will keep receiving notifications of component changed, worsening performance little by little.