anchor.diff:              for entry in callbacks do
                   match entry.Value with
                   | :? EcsCallbackScheduled<obj, 'w> as objCallback ->
  -                    SegmentedList.add (objCallback.EcsDependency, objCallback.EcsEvent :> obj) dependentCallbacks
  +                    SegmentedList.add (objCallback.EcsDependencies, objCallback.EcsEvent :> obj) dependentCallbacks
                   | :? EcsCallbackScheduled<obj, obj> as objCallback ->
  -                    SegmentedList.add (objCallback.EcsDependency, objCallback.EcsEvent :> obj) dependentCallbacks
  +                    SegmentedList.add (objCallback.EcsDependencies, objCallback.EcsEvent :> obj) dependentCallbacks
                   | _ -> ()
               // TODO: add dependencies to graph and solve for order / simultanaity the execute in parallel.
               ignore eventData
  
positive.code: type private EcsCallback<'d, 'w when 'w : not struct> =
      EcsEvent<'d, 'w> -> Ecs -> 'w -> 'w
  
  /// Describes an Ecs processing dependency.
  and [<NoEquality; NoComparison>] EcsDependency =
      | Independent
      | Dependent of string list // list of component names
  
  /// A scheduled Ecs event callback.
  and [<NoEquality; NoComparison>] private EcsCallbackScheduled<'d, 'w when 'w : not struct> =
      { EcsDependency : EcsDependency
        EcsEvent : EcsEvent<'d, 'w> -> Ecs -> 'w -> obj }
  
  /// The type of Ecs event.
  
negative.code:         | (true, store) -> store :?> 'c Store
          | (false, _) -> failwith ("Invalid entity frame for archetype " + scstring archetypeId + ".")
  
      member this.Archetypes =
          archetypes :> IReadOnlyDictionary<_ , _>
  
      member this.Subqueries =
          seq subqueries
  
  