pryr::join has a match = "all" arg that can also be "first".
it should be similar to %>% group_by(keys) %>% slice(1)
it could also be a pre-processor so we can apply it on any side.
slice_first_by_key() ?
pryr's doc mentions it's faster so there might be some optimisation to do but let's not focus on performance unless there's explicit demand