Base class with serialization methods for user-defined Python objects. Classes which inherit from Serializable are enabled with default implementations of to_json, from_json, __reduce__ (for pickling), and other serialization helpers. A derived class must either have a member data matching the name of each argument to __init__ or, alternatively, must provide a user-defined to_dict() method which returns a dictionary whose keys match the arguments to __init__.