validate
Optional validation hook for new activities.
The default implementation checks if the activity is within the bounds of the plan. The implementor can add additional checks by overriding this method and calling super.validate(directive)
. Implementor should throw if the directive is invalid.