A context representing serialization of many objects to a single output stream.
It is the serialization library's responsibility to manage object identity and handle cycles in the graph of object references. For example a serialization library that produced a hierarchical format might ignore identity when an instance is encountered multiple times (resulting in duplicate subtrees in the output), and simply throw an exception if it encountered a cycle.
no type hierarchy
no supertypes hierarchy
no subtypes hierarchy