docs: def model_process_schema(
      model: Type['main.BaseModel'],
      *,
      by_alias: bool = True,
      model_name_map: Dict[Type['main.BaseModel'], str],
      ref_prefix: Optional[str] = None,
  ) -> Tuple[Dict[str, Any], Dict[str, Any]]:
      """
      Used by ``model_schema()``, you probably should be using that function.
  
      Take a single ``model`` and generate its schema. Also return additional schema definitions, from sub-models. The
      sub-models of the returned schema will be referenced, but their definitions will not be included in the schema. All
      the definitions are returned as the second value.
      """
      ref_prefix = ref_prefix or default_prefix
      s = {'title': model.__config__.title or model.__name__}
      if model.__doc__:
          s['description'] = clean_docstring(model.__doc__)
      m_schema, m_definitions = model_type_schema(
          model, by_alias=by_alias, model_name_map=model_name_map, ref_prefix=ref_prefix
      )
      s.update(m_schema)
      return s, m_definitions