Closed
Description
The current change tracking system is very lightweight, both for event generation and consumption (which is why we can enable it by default), but it has the following problem:
schedule.run()
System1: Change<T> query
System2: mutates T
world.clear_trackers()
schedule.run()
System1: Change<T> query ... misses System2's changes
In most cases, this can be worked around via system registration order and stages, but I anticipate some cases that cannot work around this behavior, as well as general confusion from users like: "why isn't my system running ... im definitely mutating this component?"
I think it would be useful to (optionally) allow stateful "order independent" change tracking. I posted some ideas here: #54