Swift: estructura hashable con propiedad de diccionario

Tengo una estructura en Swift que se ve así:

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
}

Ahora tengo la necesidad de usar MapKey como la clave en un diccionario Swift, que requiere MapKey para cumplir con el protocolo Hashable.

¿Cuál sería una implementación correcta de Hashable para una estructura como esta?

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

He estado investigando un poco, pero no he podido identificar cuál es la forma correcta de codificar un diccionario, ya que necesito poder generar un valor hash paravalores propiedad en sí. Cualquier ayuda es muy apreciada.

Respuestas a la pregunta(3)

Su respuesta a la pregunta