public WorldState Apply(WorldState initialState) { return(Effects.Aggregate(initialState, (soFar, effect) => effect.ApplyTo(soFar))); }
public bool IsAvailableIn(WorldState worldState) { return(Preconditions.Aggregate(true, (soFar, precondition) => soFar && precondition.IsSatisfiedBy(worldState))); }