docs: def dict(
          self, *, include: 'SetStr' = None, exclude: 'SetStr' = None, by_alias: bool = False, skip_defaults: bool = False
      ) -> 'DictStrAny':
          """
          Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.
          """
          get_key = self._get_key_factory(by_alias)
          get_key = partial(get_key, self.fields)
  
          return_keys = self._calculate_keys(include=include, exclude=exclude, skip_defaults=skip_defaults)
          if return_keys is None:
              return {get_key(k): v for k, v in self._iter(by_alias=by_alias, skip_defaults=skip_defaults)}
          else:
              return {
                  get_key(k): v for k, v in self._iter(by_alias=by_alias, skip_defaults=skip_defaults) if k in return_keys
              }