GraphSON 2.0 has some issues that should be recified for its "official release" in 3.3.0.
We need to make sure that every element and property can be attached back to the main graph.
- For Vertex, this means that we need to have the ID encoded (CHECK).
- For Edge, this means we need to have the out/in vertex ids encoded (CHECK).
- For VertexProperty, this means we need to have the vertex ID encoded (ERROR).
- For Property, this means we need to have the the element ID (vertex property or edge) encoded and then the subsequent vertex ID (ERROR).
Currently, property encoding in Edge is different than property encoding in VertexProperty.
This should be consistent.
We have the problem of representing both DetachedElements and ReferenceElements. DetachedElements contain lots of information and is typicaly used to ensure a data rich result set. ReferenceElements contain only the necessary information for attachment. I think we can support both representations by making certain fields "optional."
That is, lots of getOrDefault() use will make sure that when desesired, we only send/recv information that is needed for the particular computatation. E.g. as dictated by HaltedTraverserStrategy.
This issue has evolved a bit since it was first written. The work thus far has been to setup GraphSON 3.0. The other stuff mentioned in the description above will be discussed/handled in other tickets. Those things are beyond the scope of this ticket at this point.