code: def declare_config_variable(self, name, config_id, type_name, default=None, convert=None):  #pylint:disable=too-many-arguments;These are all necessary with sane defaults.
          
  
          config = ConfigDescriptor(config_id, type_name, default, name=name, python_type=convert)
          self._config_variables[config_id] = config
docs: Declare a config variable that this emulated tile accepts.
  
          The default value (if passed) may be specified as either a `bytes`
          object or a python int or list of ints.  If an int or list of ints is
          passed, it is converted to binary.  Otherwise, the raw binary data is
          used.
  
          Passing a unicode string is only allowed if as_string is True and it
          will be encoded as utf-8 and null terminated for use as a default value.
  
          Args:
              name (str): A user friendly name for this config variable so that it can
                  be printed nicely.
              config_id (int): A 16-bit integer id number to identify the config variable.
              type_name (str): An encoded type name that will be parsed by parse_size_name()
              default (object): The default value if there is one.  This should be a
                  python object that will be converted to binary according to the rules for
                  the config variable type specified in type_name.
              convert (str): whether this variable should be converted to a
                  python string or bool rather than an int or a list of ints.  You can
                  pass either 'bool', 'string' or None