protected internal virtual void VisitActionGroup(TContext context, ActionGroupElement element)
 {
     foreach (ActionElement action in element.Actions)
     {
         action.Accept(context, this);
     }
 }
        public RuleDefinition(string name, string description, RuleRepeatability repeatability, IEnumerable <string> tags,
                              PriorityElement priority, DependencyGroupElement dependencies, GroupElement leftHandSide, ActionGroupElement rightHandSide)
        {
            _name          = name;
            _description   = description;
            _repeatability = repeatability;
            _tags          = new List <string>(tags);

            _priority      = priority;
            _dependencies  = dependencies;
            _leftHandSide  = leftHandSide;
            _rightHandSide = rightHandSide;
        }