ECS: ComponentSystem Best Way um zwischen Entities zu interagieren?

Ich möchte viele Objekte auf einander reagieren lassen, wobei die Entfernung keine Rolle spielt.
Das heißt, ich möchte, dass jedes Objekt auf jedes andere Objekt reagiert und das möglichst effizient.
Dabei bin ich über das ECS (Entity Component System) gestolpert.

Meine Idee war es nun sämtliche Objekte als Entities umzuwandeln (automatisch) und diese in einem ComponentSystem zu iterieren.

// in ComponentSystem.onUpdate()
// pseudo code
Entities.ForEach((ref ModelComponentData a, ref Translation at) => {
   Entities.ForEach((ref ModelComponentData b, ref Translation bt) => {
      if(a.id != b.id) {
        // do something with bt based on ModelComponentData in a
        // ...
      }
 });
});

Leider ist die doppelte Iteration nicht so schön effizient und ich werde wohl weitere Einschränkungen machen müssen. Ich hatte auch noch die Idee ein Job zu starten in der inneren ForEach, aber meine Frage ist, ob es nicht noch einen besseren Weg gibt?

public class ThisSystem : SystemBase

var query = GetEntityQuery(
	ComponentType.ReadOnly<Translation>() ,
	ComponentType.ReadOnly<ModelComponentData>()
);
var translations = query.ToComponentDataArray<Translation>( Allocator.TempJob );
var models = query.ToComponentDataArray<ModelComponentData>( Allocator.TempJob );
int len = translations.Length;
Job.WithName("my_iteration_job")
	.WithDeallocateOnJobCompletion( translations )
	.WithDeallocateOnJobCompletion( models )
	.WithCode( ()=>
	{
		for( int ia=0 ; ia<len ; ia++ )
		for( int ib=len-1 ; ib!=-1 ; ib-- )
		{
			if( ia!=ib )
			{
				var ma = models[ia];
				var bt = translations[ib];
				
				/* (∩^o^)⊃━☆ */
			}
		}
	}
).Schedule();