'Initializes this Property with the given options.
Args:
verbose_name: User friendly name of property.
name: Storage name for property.  By default, uses attribute name
as it is assigned in the Model sub-class.
default: Default value for property if none is assigned.
required: Whether property is required.
validator: User provided method used for validation.
choices: User provided set of valid property values.
indexed: Whether property is indexed.'

def __init__(self, verbose_name=None, name=None, default=None, required=False, validator=None, choices=None, indexed=True):

    self.verbose_name = verbose_name
    self.name = name
    self.default = default
    self.required = required
    self.validator = validator
    self.choices = choices
    self.indexed = indexed
    self.creation_counter = Property.creation_counter
    Property.creation_counter += 1
