setupModelListeners() {
      this.model.store.on("change", (data) => {
        this.logChange({
          type: "data-change",
          path: data.path,
          oldValue: data.oldValue,
          newValue: data.newValue,
          timestamp: Date.now()
        });
      });
      this.model.store.on("*", (eventName, data) => {
        if (eventName !== "change" && eventName !== "compute" && eventName !== "arrayChange") {
          this.logChange({
            type: "store-event",
            event: eventName,
            data,
            timestamp: Date.now()
          });
        }
      });
      this.model.on("*", (eventName, data) => {
        if (eventName !== "change" && eventName !== "compute") {
          this.logChange({
            type: "model-event",
            event: eventName,
            data,
            timestamp: Date.now()
          });
        }
      });
      this.model.store.on("compute", (data) => {
        this.logChange({
          type: "computed-update",
          property: data.key,
          dependencies: Array.from(data.dependencies),
          newValue: data.value,
          timestamp: Date.now()
        });
      });
      this.model.store.on("arrayChange", (data) => {
        this.logChange({
          type: "array-operation",
          path: data.path,
          method: data.method,
          args: data.args,
          oldValue: data.oldValue,
          newValue: data.newValue,
          timestamp: Date.now()
        });
      });
    }
Sets up listeners for the model and its store to track and log changes,
events, computed property updates, and array operations. This enables
the Model DevTools to record snapshot history, provide time travel
functionality, and update the display with relevant data changes.