anchor.diff:  
   With a minor change to the construction of the `GraphSONWriter` the lossy nature of GraphSON can be avoided:
   
  -[source,groovy]
  -----
  -gremlin> graph = TinkerFactory.createModern()
  -==>tinkergraph[vertices:6 edges:6]
  -gremlin> f = new FileOutputStream("vertex-1.json")
  -==>java.io.FileOutputStream@3bbf9027
  -gremlin> mapper = graph.io().graphSONMapper().embedTypes(true).create()
  -==>org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONMapper@2ce45a7b
  -gremlin> graph.io().graphSONWriter().mapper(mapper).create().writeVertex(f, g.V(1).next(), BOTH)
  -==>null
  -gremlin> f.close()
  -==>null
  +[gremlin-groovy]
  +----
  +graph = TinkerFactory.createModern()
  +g = graph.traversal()
  +f = new FileOutputStream("vertex-1.json")
  +mapper = graph.io().graphSONMapper().embedTypes(true).create()
  +graph.io().graphSONWriter().mapper(mapper).create().writeVertex(f, g.V(1).next(), BOTH)
  +f.close()
   ----
   
   In the above code, the `embedTypes` option is set to `true` and the output below shows the difference in the output:
  
positive.code: ----
  final Graph graph = TinkerFactory.createModern();
  try (final OutputStream os = new FileOutputStream("tinkerpop-modern.xml")) {
      graph.io().graphMLWriter().normalize(true).create().writeGraph(os);
  }
  
  final Graph newGraph = TinkerGraph.open();
  try (final InputStream stream = new FileInputStream("tinkerpop-modern.xml")) {
      newGraph.io().graphMLReader().vertexIdKey("name").create().readGraph(stream);
  }
  ----
  
  
negative.code: Namespace Conventions
  ---------------------
  
  End users, <<implementations,vendors>>, <<graphcomputer,`GraphComputer`>> algorithm designers, <<gremlin-plugins,GremlinPlugin>> creators, etc. all leverage properties on elements to store information. There are a few conventions that should be respected when naming property keys to ensure that conflicts between these stakeholders do not conflict.
  
  * End users are granted the _flat namespace_ (e.g. `name`, `age`, `location`) to key their properties and label their elements.
  * Vendors are granted the _hidden namespace_ (e.g. `~metadata`) to to key their properties and labels. Data key'd as such is only accessible via the vendor implementation code and no other stakeholders are granted read nor write access to data prefixed with "~" (see `Graph.Hidden`). Test coverage and exceptions exist to ensure that vendors respect this hard boundary.
  