def METHOD_NAME(old_assets: Dataset, new_assets: Dataset) -> Dataset:
    result = function(old_assets, new_assets)
    # missing values -> NaN -> integers become floats
    for variable in set(result.variables).intersection(old_assets.variables):
        result[variable] = result[variable].astype(old_assets[variable].dtype)
    result = result.drop_vars(set(result.coords) - set(old_assets.coords))
    return result