Swift: estrutura hashable com propriedade de dicionário

Eu tenho uma estrutura no Swift que se parece com isso:

internal struct MapKey {
    internal let id: String
    internal let values: [String:String]
}
extension MapKey: Equatable {}
func ==(lhs: MapKey, rhs: MapKey) -> Bool {
    return lhs.id == rhs.id && lhs.values == rhs.values
}

Agora tenho a necessidade de usar o MapKey como a chave em um dicionário Swift, que exige que o MapKey esteja em conformidade com o protocolo Hashable.

O que seria uma implementação correta do Hashable para uma estrutura como esta?

extension MapKey: Hashable {
    var hashValue: Int {
        return ??? // values does not have a hash function/property.
    }
}

Eu estive pesquisando, mas não consegui identificar qual é a maneira correta de criar um dicionário de hash, pois preciso gerar um valor de hash paravalores própria propriedade. Qualquer ajuda é muito apreciada.

questionAnswers(3)

yourAnswerToTheQuestion