Previously we were not able to save and restore scheduler events when saving/loading a save state.
So instead we opted to try recreate all events from other state when loading save states.
This worked somewhat fine in most cases but isn't ideal and doesn't scale well to scheduling more fine grained/nuanced events such as 'operation Y happens with 1 cycle delay after operation X'.
This PR allows us to finally (de)serialize all events by tagging them with an event class/type instead of storing the raw callbacks.
Previously we were not able to save and restore scheduler events when saving/loading a save state. So instead we opted to try recreate all events from other state when loading save states. This worked somewhat fine in most cases but isn't ideal and doesn't scale well to scheduling more fine grained/nuanced events such as 'operation Y happens with 1 cycle delay after operation X'.
This PR allows us to finally (de)serialize all events by tagging them with an event class/type instead of storing the raw callbacks.