In my flutter app I am exploring a transition from the Provider package to Riverpod. The app is quite simple: it fetches a list of objects from a database, and allows the user to change these objects's characteristics. It is thus pretty similar to the official TODO example app.
I see however that such app does not provide an individual provider for each TODO item as I'd expect, but it rather declares a global provider the entire TODO list. I found such approach odd, as it requires that everytime a TODO item changes the entire list UI needs to be rebuilt (unless I am mistaken).
Reading through other examples, I see that all providers are always declared globally. Does this mean it is not possible with Riverpod to create new providers at runtime? (As in my case, from a list of objects returned by an API?)
I'm sorry if it is a trivial question, but I couldn't find any related example or documentation about this.
EDIT: I was mistaken indeed. The entire list is NOT rebuilt in its entirety. See answers below.