def is_chain_type(t: type) -> bool:
    """Return true if type is supported by `DataChain`."""
    if ModelStore.is_pydantic(t):
        return True
    if any(t is ft or t is get_args(ft)[0] for ft in get_args(StandardType)):
        return True

    orig = get_origin(t)
    args = get_args(t)
    if orig is list and len(args) == 1:
        return is_chain_type(get_args(t)[0])

    if orig is Union and len(args) == 2 and (type(None) in args):
        return is_chain_type(args[0])

    return False
Return true if type is supported by `DataChain`.
src/datachain/lib/data_model.py