docs: def model_type_schema(
      model: Type['main.BaseModel'],
      *,
      by_alias: bool,
      model_name_map: Dict[Type['main.BaseModel'], str],
      ref_prefix: Optional[str] = None,
  ) -> Tuple[Dict[str, Any], Dict[str, Any]]:
      """
      You probably should be using ``model_schema()``, this function is indirectly used by that function.
  
      Take a single ``model`` and generate the schema for its type only, not including additional
      information as title, etc. Also return additional schema definitions, from sub-models.
      """
      ref_prefix = ref_prefix or default_prefix
      properties = {}
      required = []
      definitions: Dict[str, Any] = {}
      for k, f in model.__fields__.items():
          try:
              f_schema, f_definitions = field_schema(
                  f, by_alias=by_alias, model_name_map=model_name_map, ref_prefix=ref_prefix
              )
          except SkipField as skip:
              warnings.warn(skip.message, UserWarning)
              continue
          definitions.update(f_definitions)
          if by_alias:
              properties[f.alias] = f_schema
              if f.required:
                  required.append(f.alias)
          else:
              properties[k] = f_schema
              if f.required:
                  required.append(k)
      out_schema = {'type': 'object', 'properties': properties}
      if required:
          out_schema['required'] = required
      return out_schema, definitions