Como representar dados aninhados na classe Firebase

Retirado do exemplo do Firebase, se eu tiver uma estrutura de dados de fatos de dinossauros 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
    }
  }
}

Como posso representar essa estrutura em uma classe Android para Firebase para transmitir a partir deDataSnapshot.getValue(DinosaurFacts.class)?

name e work são representados como Strings, mas como representar a coleção de "dimensões" na classe?

Além disso, como posso acessar valores de dados deDataSnapshot sobre altura e peso?

EDITAR Posso obter os elementos individuais fazendo um loop pelo instantâneo, mas estou tentando descobrir como representar os dados na estrutura da classe.

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

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