pub trait TransitionSpec {
// Required methods
fn precondition(&self, s: &SystemState, defs: &UnitDefs) -> bool;
fn predict(&self, s: &SystemState, defs: &UnitDefs) -> Expectation;
fn derive(
&self,
s: &SystemState,
defs: &UnitDefs,
generation: &EvaluatedGeneration,
caller: Actor,
) -> DerivedFacts;
}