I don't actually think we need to have a human-editable format.

.. store settings as serialized Haskell type, and use custom (non-official) viewers / editors to display them formatted to user preferences?
sounds good.