Cómo representar datos anidados en la clase Firebase

Tomado del ejemplo de Firebase, si tengo una estructura de datos de hechos de Dinosaurios como esta:

{
  "lambeosaurus": {
    "name": "lamby",
    "work": "eat",
    "dimensions": {
      "height" : 2.1,
      "length" : 12.5,
      "weight": 5000
    }
  },
  "stegosaurus": {
    "name": "stego",
    "work": "play",
    "dimensions": {
      "height" : 4,
      "length" : 9,
      "weight" : 2500
    }
  }
}

¿Cómo puedo representar esta estructura en una clase de Android para que Firebase envíe?DataSnapshot.getValue(DinosaurFacts.class)?

nombre y trabajo se representan como cadenas, pero ¿cómo representar la colección de "dimensiones" en la clase?

Además, ¿cómo puedo acceder a los valores de datos desdeDataSnapshot sobre altura y peso?

EDITAR Puedo hacer que los elementos individuales se repitan a través de la instantánea, pero estoy tratando de encontrar cómo representar los datos en la estructura de clases.

for(DataSnapshot child : dataSnapshot.getChildren()) {

                Log.d("hz-key:", child.getKey().toString());
                Log.d("hz-val:", child.getValue().toString());
            }

Respuestas a la pregunta(2)

Su respuesta a la pregunta