better simulation resetting
state: do not emit unless changed (candidate behavior for all fields)
track dirty fields (half of the implementation)
cursed forest!