Wow you did a lot of work for this! Thanks for doing this work.
As I skimmed through with curiosity, one thing caught my eye:
Judging from this and nearby code changes, if minCount is 0 then you make it 1 instead (for PointFields only); is this right? This seems wrong to me. I suspect we all agree that the default of 0 is unfortunate but ignoring it and pretending it's not in certain cases but not others seems wrong. Instead, I propose that we make the default '1' for 7.0. Obviously such a change would be in another issue.