I have implemented a Matrix Options system
It has DDLs for things which have limited options available (Along with names for them, so you don’t have to remember which number means what), and numeric inputs for things which are numbers etc.
There is a main options page where you can set all options - these serve as a default for your system

On that main page is a checkbox to the left of each option. If it is checked, then only those options will appear on any page that lets you convert a stream.
In this way, you can avoid having a big long list of options when you go to convert a file to a stream, and only have the options listed that you regularly change for a given animation

If you set an option’s value on the global page, when you go into a page for stream conversion, you can override that value without changing affecting your global options. You can either type in a new value, or, if your global setting has overridden it from the library defaults, you can just delete the value, and it will apply the library default
Also note how it shows you the command-line args that would be generated for stream conversion using the options that you chose. If the option is library default, it removes it from the command-line

And of course, there’s form validation

There’s also numerous layers of re-conversion.
When you first import from the incoming folder, it converts it with the specified options and puts the stream into the library.
You can then add any number of playlists, and if you add that item to a playlist, it will keep the options you used on import, but it also keeps it’s own copy of the original GIF. You can then re-convert the instance in that playlist independently of the library version - so eg you could have a “dim” or “bright” playlist for indoor/night-time or outdoor/day-time, but you would not need to keep separate dim/bright versions in the library.
You can also re-convert the version in the library to set a new default for that animation, and it won’t affect the instances in your playlists
It also seems perfectly happy re-converting a file while it is playing. I set up a playlist with only one file, and duration of that animation of 1s (So it’s reloading it from disk every 1s), and then re-converted it - it was perfectly happy, and playback did not seem to stutter at all. I had htop running and it looks like it just uses another core