class_docstr: An ObjType is the description for a type of object that a domain can
  document.  In the object_types attribute of Domain subclasses, object type
  names are mapped to instances of this class.
  
  Constructor arguments:
  
  - *lname*: localized name of the type (do not include domain name)
  - *roles*: all the roles that can refer to an object of this type
  - *attrs*: object attributes -- currently only "searchprio" is known,
    which defines the object's priority in the full-text search index,
    see :meth:`Domain.get_objects()`.
class_docstr_tok: ["An","ObjType","is","the","description","for","a","type","of","object","that","a","domain","can","document",".","In","the","object_types","attribute","of","Domain","subclasses",",","object","type","names","are","mapped","to","instances","of","this","class",".","Constructor","arguments",":","-","*","lname","*",":","localized","name","of","the","type","(","do","not","include","domain","name",")","-","*","roles","*",":","all","the","roles","that","can","refer","to","an","object","of","this","type","-","*","attrs","*",":","object","attributes","--","currently","only","``","searchprio","''","is","known",",","which","defines","the","object","'s","priority","in","the","full-text","search","index",",","see",":","meth",":","`","Domain.get_objects","(",")","`","."]
code: def __init__(self, lname: str, *roles: Any, **attrs: Any) -> None:
      self.lname = lname
      self.roles: tuple = roles
      self.attrs: dict = self.known_attrs.copy()
      self.attrs.update(attrs)
  
imports: from __future__ import annotations
  import copy
  from abc import ABC, abstractmethod
  from typing import TYPE_CHECKING, Any, Callable, NamedTuple, Optional, cast
  from docutils.nodes import Element, Node, system_message
  from sphinx.errors import SphinxError
  from sphinx.locale import _
label_desc: Use image node_id 1 to create a new ObjType object  with example: obj = ObjType(lname)