Hi there. I'm in the process of creating my first addon, a modifier system that's non-destructive, type-agnostic and hopefully easy to use. it's similar to the strategy design pattern. I'm taking inspiration from an older addon made by samdze for 3.x, but my approach is different, notably because it involves more classes, and the result is that I don't really know how to implement inspector integration for it.
https://gitlab.com/Feymood/alchemy-modifiers this is my current code. sorry about the funky class naming, but writing docstrings like "the modifierhandler modifier modifies the real property of the target property of the target node" got to me after a while, so i went a little skeuomorphic with it, while trying to remain consistent in documentation
brief explanation: the system revolves around an alembic node, which targets one node. this alembic then holds any number of flasks which each target one property on the target node. each flask holds the initial value of their target property and any number of modifiers for it, and takes care of sorting them if needed. then, you can call the alembic to update/'mix' the flasks, at which point each flask takes its property's initial value, applies the modifiers to it, and assigns the final value to the real target property.
the alembic holds a dictionary with strings as keys corresponding to property names, and flasks as values. flasks are their own class deriving from object (i originally had them as just dictionaries but then i realized i needed them to signal to the alembic) holding an array of modifiers. modifiers are also their own class, deriving from resource, with the goal being to allow users to extend it to implement modifiers for any variant type, including their own custom classes. there's also a number of usable modifier classes that will be included in the addon; specifically ones for basic arithmetic.