Plugins can be used to extend Joplin a lot and it opened up many new possibilities. However, as long as notes are concerned, plugins affects only the note body.
I want to propose a mechanism to store per-note metadata for plugins.
Here is roughly what I'm thinking.
A JSON field for plugin metadata. Sqilte supports it. I'm considering a schema like this:
Basically, many possibilities will open if plugins can add metadata in notes. Especially with filtering support, one can create an interactive dashboard based on custom fields.
I think it is only necessary to provide a universal and syncable storage api like the chrome/vscode plugin. As for the association with the note data, the plugin maintains itself, which can also avoid putting the plugin data in the sqlite notes.
In terms of specific usage scenarios, I think that the existing templates and task managers can benefit from this, no longer limited to using them as notes, but you can save them in a more suitable data format
Currently,
(a) I export reading notes from my ebook reader and store them in Joplin.
(b) I also write reviews for them and store them in Joplin naturally. These reviews have extra data like rating (currently just markdown generated by the Templates plugin). I link my notes (if I have any for that review). Backlink Plugin allows me to create automatic backlinks from notes to reviews and that's really helpful.
(c) I can create an overview page for all reviews using the Note Overview plugin. But that's pretty much limited. For example, I cannot search by rating.
If we have a way to get and set note metadata data via a plugin, we can:
(a) Allow (preferably with an option to disable/enable) to add field data as meta from the Templates plugin in the note.
(b) Note Overview plugin can implement read and query (SQLite supports query in JSON field) on those custom metadata to provide richer filtering and sorting.
Similarly, the Kanban plugin can be re-implemented without depending on notebooks or tags.