Interface for mandate validation strategies
validate(mandate: T): Promise<ValidationResult>
validateIntegrity(mandate: T): Promise<ValidationResult>
checkExpiry(): Promise<boolean>
canHandle(mandateType: MandateType): boolean