# Notes

Plugins are functions since we want to extend the existing data object. Without this, a plugin doesn't know that there may be other properties in the data object, and will allow e.g. setData({ pluginProperty: 1 }) without spreading the rest with setData({ ...data, pluginProperty: 1 }).

Plugins creators (e.g. the export "panPlugin") are additionally wrapped in another function so that they can be configured with e.g. CanvasElement type or other options. They are all wrapped for consistency.
