Paul Thompson writes:

 > I really wish that the positional thing was somewhat deprecated in favor of
 > a named argument approach, which would replace the limit of 9 at some
 > point.

sure, but you don't want to force people to write each time

 <linebreak | color=normal, pagebreak-allowed = true, vertical-skip = 3pt >



and even if supported by a good syntax editor this isn't making readable

I've written quite a lot about the layer approach that I see for the l3
language where the top-layer should be totally replacable. And I see xparse as
nothing but a reimp (more or less) of the 2e syntax to bridge this world

My personal favorite lies somewhere else, basically in commands with named
attributes for "all of their modifiable features and arguments" but combined
with a positional system that can be layered on top (either by users choice or
by default conventions.

not proposing this as a new syntax but conceptually  something like

 \\<color=blue,pagebreak-allowed = false,vertical-skip = 3pt>
 \\<color=blue,pagebreak-allowed = false>[3pt]

all being equal.

ie each command having one optional arg structure that contains key/vals + a
defined set of positionals that cover "normal usage aspects" only.
and probably with the positional overwriting any named ones,

 \\<color=blue,pagebreak-allowed = false,vertical-skip = 10pt>[3pt]

still giving 3pt space.

too much rambling after midnight, I'll better stop (this is NOT a proposal for
a concrete syntax)