"""
A difference object is either a dictionary conforming to some schema, or a dictionary-like representation of how to change another dictionary.
This module contains everything related to difference objects.
"""