`(1 + year | ID0)` specify a random intercept and a random slope, both grouped by `ID0`. See the [cheat sheet](https://stats.stackexchange.com/a/13173/11849) for an explanation of the syntax. 15 unique IDs times (intercept + slope) gives 30 random effects. You don't have sufficient observations to support the model.