-----
This version was a total overhaul. The main change was to split Schema into three separate classes, making it simpler to add more complicated functionality by having different generator types to handle the different schema types.
1. ``SchemaNode`` to manage the tree structure
2. ``SchemaGenerator`` for the schema generation logic
3. ``SchemaBuilder`` to manage the public API
Interface Changes
+++++++++++++++++
* ``SchemaBuilder`` is the new ``Schema``
* ``to_dict()`` is now called ``to_schema()``
To make the transition easier, there is still a ``Schema`` class that wraps ``SchemaBuilder`` with a backwards-compatibility layer, but you will trigger a ``PendingDeprecationWarning`` if you use it.
Seed Schemas
++++++++++++
The ``merge_arrays`` option has been removed in favor of seed schemas. You can now seed specific nodes as list or tuple instead of setting a global option for every node in the schema tree.
You can also now seed object nodes with ``patternProperties``, which was a highly requested feature.
Other Changes
+++++++++++++
* include ``"$schema"`` keyword
* accept schemas without ``"type"`` keyword
* use ``"anyOf"`` keyword to help combine schemas
* add ``SchemaGenerationError`` for better error handling
* empty ``"properties"`` and ``"items"`` are not included in generated schemas
* ``genson`` executable
* new ``--schema-uri`` option
* auto-detect object boundaries by default