Swift 4 json decodificado anidado con atributos de clave aleatorios

Tengo problemas para decodificar json. He seguido muchos tutoriales pero no utilizo estructuras json complejas. Para simplificar, minimicé el código y uso Dog como ejemplo.

En el siguiente json, solo estoy interesado principalmente en las estructuras Dog.El atributo json "Datos" contiene nombres de perros aleatorios. Por lo tanto, no puedo usar las claves de codificación porque no sé el nombre del atributo.

{
     "Response": "success"
     "BaseLinkUrl": "https://wwww.example.com",
     "Data": {
         "Max": {
             "name": "Max",
             "breed": "Labrador"
         },
         "Rocky": {
             "name": "Rocky",
             "breed": "Labrador"
         },
         ...
    }
}

Tengo las siguientes estructuras:

struct DogResponse : Decodable {
    let data : DogResponseData

    enum CodingKeys: String, CodingKey {
        case data = "Data"
    }
}

struct DogResponseData: Decodable {
    let dog: Dog //this is a random variable name

    enum CodingKeys: String, CodingKey {
        case dog = "??random_variable_dog_name??"
    }
}

struct Dog: Decodable {
    let name: String
    let type: String

    enum CodingKeys: String, CodingKey {
        case name
        case type = "breed"
    }
}

recogiendo las estructuras del perro:

let dogResponse = try JSONDecoder().decode(DogResponse.self, from: data)
print(dogResponse)

¿Qué debo hacer en mi estructura "DogResponseData" para que Swift reconozca una variable aleatoria que contiene mi estructura Dog?

Respuestas a la pregunta(1)

Su respuesta a la pregunta