def METHOD_NAME(obj: Any) -> dict:
    if type(obj) in MSGPACK_TYPES:
        return obj
    type_name = _get_type_name(obj.__class__)
    if type_name not in _decomposers:
        if _enum_auto_register and isinstance(obj, Enum):
            register_enum_types(type(obj))
        else:
            return obj
    decomposed = _decomposers[type_name].decompose(obj)
    return {FOBS_TYPE: type_name, FOBS_DATA: decomposed}