como retornar subgráficos do gremlin que esteja em um formato facilmente consumível para Java

Fico muito frustrado com coisas muito simples quando tento fazer uma única passagem e trazer muitas coisas do DSE Graph 5.0 de uma só vez usando o Gremlin.

No meu caso simplificado, tenho:

1 entidade com uuid específicoentidade pode ter zero (veja opcional) ou mais tiposEu preciso poder devolver oentity e atypes

O que tenho até agora que funciona é muito feio :(

List list = g.V().hasLabel("Entity").has("uuid","6708ec6d-4518-4159-9005-9e9d642f157e").as("entity")
        .optional(outE("IsOfType").as("types"))
        .select("entity", "types").toList();
List<Edge> typeEdges = new ArrayList<>();
Vertex entityV = null;
for (Object obj : list) {
    entityV = ((Vertex)((LinkedHashMap) obj).get("entity"));
    Edge typeEdge = ((Edge)((LinkedHashMap) obj).get("types"));
    typeEdges.add(typeEdge);
}

cada linha da lista possui a entidade e um dos tipos: /

Estou fazendo tudo isso porque o Vertex não vem com preenchimentoedges()&nbsp;com base no percurso na API do DSE 5.0 Fluent. Então, eu estou preso a várias travessias ou uma única travessia terrível e muito difícil de desserializar em objetos Java ou preciso passar consultas do gremlin como String, mas isso não retornará objetos Gremlin Vertex, mas DSE :(

No meu caso menos simplificado, quero retornar várias entidades acima com seus respectivos tipos, como isso pode ser feito?

Finalmente, qual é uma boa abordagem que levará a códigos reutilizáveis para o mapeamento de objetos personalizados de um subgráfico com diferentes tipos de objetos?

Agradeço antecipadamente a ajuda!