                     \(indentedCases ? "be indented within" : "vertically align with") \
                     their enclosing switch statement.
                     """
-                let violation = Violation(position: casePosition, reason: reason)
+                let violation = ReasonedRuleViolation(position: casePosition, reason: reason)
                 violations.append(violation)
             }
         }

        triggeringExamples: Examples(indentedCases: false).triggeringExamples
    )

    public func validate(file: SwiftLintFile) -> [StyleViolation] {
        Visitor(locationConverter: file.locationConverter, indentedCases: configuration.indentedCases)
            .walk(file: file, handler: \.violations)
            .map { violation in
                StyleViolation(ruleDescription: Self.description,
                               severity: configuration.severityConfiguration.severity,
                               location: Location(file: file, position: violation.position),
                               reason: violation.reason)
            }
    }
}

extension SwitchCaseAlignmentRule {
    private struct Violation {
        let position: AbsolutePosition
        let reason: String
    }

    private final class Visitor: SyntaxVisitor {
        private(set) var violations: [Violation] = []
        private let locationConverter: SourceLocationConverter
        private let indentedCases: Bool


import SwiftSyntax

public struct SwitchCaseAlignmentRule: SwiftSyntaxRule, ConfigurationProviderRule {
    public var configuration = SwitchCaseAlignmentConfiguration()

    public init() {}
