As I work through recoding siunitx for version 2, I’m re-thinking all of the options. As I’ve said already (and others have said too) the current structure is too complex. A particular problem is the options which currently take a choice of values, or a literal item. I’m thinking that it would be better to either (a) have a fixed list of choices or (b) use the input as given. For example, the current:

\sisetup{decimalsymbol = comma}

could become either:

\sisetup{numbers/output/decimal marker = comma}

or

\sisetup{numbers/output/decimal marker = {,}}

For options which give literal output (like the above), I think the later method is better (it matches up with the input options, for example). On the other hand, some options (particularly those involving spaces) seem better done using keywords:

\sisetup{numbers/output/digit separator = thick space} % thin space, comma, ...

I’d be keen to see what others think.