public abstract void Run(WorldState startingWorldState);
 public abstract WorldState Action(WorldState worldState);
 public override WorldState Action(WorldState worldState)
 {
     throw new NotImplementedException();
 }
 public abstract GoalAchievementState GoalAchieved(WorldState worldState);
 public override GoalAchievementState GoalAchieved(WorldState worldState)
 {
     throw new NotImplementedException();
 }