def __init__(self, required=True, description=None, **kwargs):
self._required = required<EOL>self._description = description<EOL>self._templates = {}<EOL>self._attributes = {}<EOL>self._create_instance_attributes(kwargs)<EOL>
If you are using the Model constructor to provide Meta data, you can provide it
a default dictionary to initialise instance to initialise it from

Can run _create_instance_attributes to copy attribute templates to the instance,
Model instances do not have any configurable options.

@param required whether or not this model is required when used as an attribute
@param default provides a default value for your type, used if one is not provided
@param kwargs Named parameters of which to instantiate the model with