Model<T extends Model<T>> constructor

Model<T extends Model<T>>()

Updating the model requires creating new instances of it since it should be immutable by design. Therefore the Model needs a generative constructor and not a factory.

Implementation

Model() {
  _instances[T.runtimeType] = this;
}