Quality mode SMOOTH cannot be set for small images
Shadow's default behavior, unless the user specifies otherwise, is to upscale image components smoothly. However if the image is very small (<=256 pixels in any dimension) this behavior is overridden. While a good idea in principle, the way this is implemented means it's impossible for the user to manually set smooth upscaling for those images, the argument would be silently ignored. For what reason they might want to do this is not for me to decide, it's a limitation either way.
The proper way to decide between complex default behaviors vs explicit user choice is to have a marker setting for the default. This could just mean a new entry DEFAULT in the QualityMode enum (or simply None), and at the usage site, for this to be handled the same as SMOOTH unless the image is small. Any explicitly user-specified selection would be used as-is.
Super low priority though, obviously.
Yes that sounds reasonable. Alternative could be to remove the automatic behavior completely and let the user decide in the first place. The hard coded 256 is a bit of an arbitrary number anyways and there is no real reason why it should automatically change the smoothness at this number.