The first parameter for update is values: object, where anything can be passed as a parameter, as in the line:
I think it should be values: Partial<M>. That way we could be confident that if we change a parameter in any model, we would see the error, since the value would only accept values present in the model.