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.
Optional docs for the rule, an empty string by default
A list of tags present on this rule. Empty by default.
Whether this rule is recommended, this is a simple helper around