constructor(data = {}, options = {}) {
      super();
      this.options = { ...ModelOptions, ...options };
      Logger.DEBUG_LEVEL = this.options.debug ? 4 : 0;
      Logger.debug("Creating a model with data:", data);
      Logger.debug("Configuration options:", options);
      this.computed = {};
      for (const key in data) {
        if (typeof data[key] === "function") {
          Logger.debug(`Registration calculated property "${key}"`);
          this.computed[key] = {
            getter: data[key],
            value: null,
            dependencies: []
          };
          delete data[key];
        }
      }
      this.store = new ReactiveStore(data, this);
      this.data = this.store.state;
      this.dom = new DOMManager(this);
      this.computedProps = new ComputedProps(this, this.computed);
      this.stateManager = new StateManager(this.store);
      this.plugins = /* @__PURE__ */ new Map();
      if (this.options.plugins) {
        for (const p5 of this.options.plugins) {
          const { name: name2, plugin, options: options2 } = p5;
          if (name2 && plugin && typeof plugin === "function") {
            this.registerPlugin(name2, plugin, options2);
          }
        }
      }
      if (this.options.validators) {
        for (const p5 of this.options.validators) {
          const { path, validator } = p5;
          if (path && validator && typeof validator === "function") {
            this.addValidator(path, validator);
          }
        }
      }
      if (this.options.formatters) {
        for (const p5 of this.options.formatters) {
          const { path, formatter } = p5;
          if (path && formatter && typeof formatter === "function") {
            this.addValidator(path, formatter);
          }
        }
      }
      this.subscribe();
      Logger.debug("The model was created successfully!");
    }
Creates a new instance of the Model class.
@param {Object} [data={}] - Initial data for the model.
@param {Object} [options={}] - Configuration options for the model.