Specifying join keys and their matching conditions

E.g. this is NOT wat we intend (year has a different meaning in flights vs planes):

flights2 |>
  left_join(planes)
## Joining with `by = join_by(year, tailnum)`
## # A tibble: 336,776 × 13
##    year time_hour           origin dest  tailnum carrier type  manufacturer
##   <int> <dttm>              <chr>  <chr> <chr>   <chr>   <chr> <chr>       
## 1  2013 2013-01-01 05:00:00 EWR    IAH   N14228  UA      <NA>  <NA>        
## 2  2013 2013-01-01 05:00:00 LGA    IAH   N24211  UA      <NA>  <NA>        
## 3  2013 2013-01-01 05:00:00 JFK    MIA   N619AA  AA      <NA>  <NA>        
## 4  2013 2013-01-01 05:00:00 JFK    BQN   N804JB  B6      <NA>  <NA>        
## # ℹ 336,772 more rows
## # ℹ 5 more variables: model <chr>, engines <int>, seats <int>, speed <int>,
## #   engine <chr>