<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def var( type=None, # noqa default=None, name=None, title=None, description=None, required=True, examples=None, encoder=None, decoder=None, min=None, # noqa max=None, # noqa unique=None, contains=None, **kwargs, ):
 """ Creates a config variable. Use this method to create the class variables of your :func:`config <file_config._file_config.config>` decorated class. class MyConfig(object):
 name = file_config.var(str) :param type type: The expected type of the variable, defaults to None, optional :param default: The default value of the var, defaults to None, optional :param str name: The serialized name of the variable, defaults to None, optional :param str title: The validation title of the variable, defaults to None, optional :param str description: The validation description of the variable, defaults to None, optional :param bool required: Flag to indicate if variable is required during validation, defaults to True, optional :param list examples: A list of validation examples, if necessary, defaults to None, optional :param encoder: The encoder to use for the var, defaults to None, optional :param decoder: The decoder to use for the var, defaults to None, optional :param int min: The minimum constraint of the variable, defaults to None, optional :param int max: The maximum constraint of the variable, defaults to None, optional :param bool unique: Flag to indicate if variable should be unique, may not apply to all variable types, defaults to None, optional :param contains: Value that list varaible should contain in validation, may not apply to all variable types, defaults to None, optional :return: A new config variable :rtype: attr.Attribute """


    # NOTE: this method overrides some of the builtin Python method names on purpose in
    # order to supply a readable and easy to understand api
    # In this case it is not dangerous as they are only overriden in the scope and are
    # never used within the scope
    kwargs.update(dict(default=default, type=type))
    return attr.ib(
        metadata={
            CONFIG_KEY: _ConfigEntry(
                type=type,
                default=default,
                name=name,
                title=title,
                description=description,
                required=required,
                examples=examples,
                encoder=encoder,
                decoder=decoder,
                min=min,
                max=max,
                unique=unique,
                contains=contains,
            )
        },
        **kwargs,
    )