My suggestion: 1) Remove method `RuleInterface::getName()`. 2) Remove interface `RuleWithOptionsInterface`. 3) Remove `RulesDumper`. 4) Create new `RulesConvertor` that would can be configured for usage with custom rules also. Benefits: - more clear rule classes - allows move all default values to rule handlers, that allow override default values globally.