def METHOD_NAME(obj: Any) -> Any:
    if type(obj) is not dict or FOBS_TYPE not in obj:
        return obj
    type_name = obj[FOBS_TYPE]
    if type_name not in _decomposers:
        error = True
        if _enum_auto_register:
            cls = _load_class(type_name)
            if issubclass(cls, Enum):
                register_enum_types(cls)
                error = False
        if error:
            raise TypeError(f"Unknown type {type_name}, caused by mismatching decomposers")
    decomposer = _decomposers[type_name]
    return decomposer.recompose(obj[FOBS_DATA])