[x] upgrade defaults files when version doesn't match
[x] merge default config file (merge valid data, invalid data will remain after merge) Just document changes when you make them. A user has to manually upgrade anyways; if they can't read the change log, too bad.
I may just note notable setting changes in a change log and not attempt to upgrade user configs...so many things could go wrong, and then I also have to maintain upgrade maps...nope, nope nope.
merge default config file (merge valid data, invalid data will remain after merge)Just document changes when you make them. A user has to manually upgrade anyways; if they can't read the change log, too bad.