code: def recursive_serde_register_type(
      t: type, serialize_attrs: Optional[List] = None
  ) -> None:
      if (
          isinstance(t, type) and issubclass(t, _GenericAlias)
      ) or issubclass(type(t), _GenericAlias):
          recursive_serde_register(
              t,
              serialize=serialize_generic_alias,
              deserialize=deserialize_generic_alias,
              serialize_attrs=serialize_attrs,
          )
      else:
          recursive_serde_register(
              t,
              serialize=serialize_type,
              deserialize=deserialize_type,
              serialize_attrs=serialize_attrs,
          )
  
imports: from collections import OrderedDict
  from collections import defaultdict
  from collections.abc import Iterable
  from collections.abc import Mapping
  from enum import Enum
  from enum import EnumMeta
  import functools
  import pathlib
  from pathlib import PurePath
  import sys
  from types import MappingProxyType
  from typing import Any
  from typing import Collection
  from typing import Dict
  from typing import List
  from typing import Optional
  from typing import Type
  from typing import TypeVar
  from typing import Union
  from typing import _GenericAlias
  from typing import _SpecialForm
  from typing import cast
  import weakref
  from .capnp import get_capnp_schema
  from .recursive import chunk_bytes
  from .recursive import combine_bytes
  from .recursive import recursive_serde_register
label_desc: Use image node_id 17 for calling a global function with example usage: recursive_serde_register_type(t, serialize_attrs) without return types