Utilice Swift Codable para decodificar JSON con valores como claves

Tengo un problema para decodificar una estructura JSON que no puedo cambiar para que sea más fácil decodificar (proviene de firebase) ..

¿Cómo decodifico el siguiente JSON en objetos? El problema es cómo convertir "7E7-M001". Es el nombre de un contenedor que tiene cajones. El nombre de los cajones también se usa como clave.

{
  "7E7-M001" : {
    "Drawer1" : {
      "101" : {
        "Partnumber" : "F101"
      },
      "102" : {
        "Partnumber" : "F121"
      }
    }
  },
  "7E7-M002": {
    "Drawer1": {
      "201": {
        "Partnumber": "F201"
      },
      "202": {
        "Partnumber": "F221"
      }
    }
  }
}

¿Qué debo arreglar en la clase Contenedor y cajón para tener la clave como propiedad de título y una matriz de objetos en estas clases?

class Container: Codable {
    var title: String
    var drawers: [Drawer]
}

class Drawer: Codable {
    var title: String
    var tools: [Tool]
}

class Tool: Codable {
    var title: String
    var partNumber: String

    enum CodingKeys: String, CodingKey {
        case partNumber = "Partnumber"
    }
}

Respuestas a la pregunta(3)

Su respuesta a la pregunta