static register(ModelClass) {
    if (this !== BaseModel) {
      throw new Error("Incorrect usage of BaseModel.register");
    }

    // Define getters and setters for Model fields
    for (const field of ModelClass.fields) {
      Reflect.defineProperty(ModelClass.prototype, field, {
        get() {
          return this.__source[field];
        },
        set(value) {
          this.__source[field] = value;
        },
      });
    }
  }
Register a new model

@param {Model} ModelClass