A generic trait which describes things common to a rule regardless on what they run on.
Each rule should have a
new function for easy instantiation. We however do not require this
for the purposes of allowing more complex rules to instantiate themselves in a different way.
However the rules must be easily instantiated because of rule groups.
A unique, kebab-case name for the rule.
The name of the group this rule belongs to.