@hughbris No need to apologize. Sometimes "life gets in the way" so to say. In the mean time I have been "reworking the workaround" and feel it is time for an update on that.
It will be named the "FixFileField Plugin", thanks to @pamtbaau for the name and urging me to make a separate plugin. It will be not because I'm totally convinced but because I want to create things that are useful AND get used and not put aside for some reason.
When reworking I realized that though I had client side validation in place for the newly introduced attributes restrictions.required, the restrictions.minNumberOfFiles and the restrictions.maxNumberOfFiles the server side validation was missing. That is because the workaround only addresses problems in the Form Plugin frontend code (Javascript). Since these new attributes don't exist as far as the Form Plugin is concerned it can't validate on them.
Then I thought of allowing the use of the standard validation.required and the limit file field attributes. Since the limit attribute sets an upper limit to the number of files allowed to be uploaded I felt I needed another one for setting a lower limit, thus appropriately called lower_limit.
Obviously there will be no server side check whether or not the number of uploaded files is equal to or exceeds the setting of lower_limit as that setting is unknown to the Form Plugin but I don't think that will pose a problem.
So this change is closer to the default behaviour and closer to existing user experience and contributes to a more unobtrusive solution. However in that regard I wasn't happy with some user experience quirks. Mainly when uploading more files than limit allows.
For instance when limit is set to 1 the file picker allows selecting a single file only. Which is good. But once that file has appeared in the file field as a thumbnail the user can again click that field and select yet another file or drop another file into the field. This is bad behaviour. The Form plugin signals the illegal extra uploaded files by putting a cross symbol on the thumbnail but still. The user shouldn't have gotten the opportunity to do something which isn't allowed. So I try to fix or work around that too.
And so a seamingly and relatively simple workaround got into a project of it's own. It is a typical example of the 20-80 rule. It took me 20% of the time to get to 80% of the functionality but the remaining 20% is taking 80% more time or even more.
Besides that I find it hard to draw the line somewhere. The only reason I sometimes get things done is persistence and thus not throwing the towel.
However, I can't estimate when or even if I will succeed in fixing the UX problems I described. And at the same time I got the impression the plugin could be useful even with the UX problems. Also those exist as long as the Form Plugin is around and as far as I know no one complained about this misbehaviour too.
That being said I think I should wrap things up, create a test version and put a couple of issues aside as "to do". When, I can't really tell. Hopefully by the end of this week.
I'll keep you all posted.