anchor.diff:  type private EcsCallback<'d, 'w when 'w : not struct> =
       EcsEvent<'d, 'w> -> Ecs -> 'w -> 'w
   
  -and EcsDependency =
  -    | EcsWrites of ArchetypeId
  -    | EcsReads of ArchetypeId
  -    | EcsDependencies of EcsDependency list
  -
  -/// An Ecs event callback.
  +/// 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 }
  
positive.code:               (Option.getOrDefault typeof<'c9>.Name comp9Name, typeof<'c9>)],
               Option.getOrDefault Map.empty subterms)
  
      // inside Ecs...
      // this.SubscribeScheduled<'d, 'w when 'w : not struct> dependency event callback =
  
  /// A collection of component stores.
  and Archetype (archetypeId : ArchetypeId) =
  
  
negative.code: 
      member this.PublishScheduled<'d, 'w when 'w : not struct> event (eventData : 'd) =
          let event = { event with EcsEventName = event.EcsEventName + Constants.Ecs.ScheduledEventSuffix }
          match subscriptions.TryGetValue event with
          | (true, callbacks) ->
              let dependentCallbacks = SegmentedList.make ()
              for entry in callbacks do
                  match entry.Value with
                  | :? EcsCallbackScheduled<obj, 'w> as objCallback ->
  