data class ModuleFeature(val name: String, val explanation: String, val advice: String, val replacementPatterns: RegexMap = RegexMap(), val generatedSourcesDir: String? = null, val generatedSourcesExtensions: Set<String> = emptySet(), val matchingText: Set<String> = emptySet(), val matchingTextFileExtensions: Set<String> = emptySet(), val matchingSourcesDir: String? = null, val matchingPlugin: String? = null)