Is there any way to avoid this? I don't love it because it requires that the user jump around in the documentation (and read the docs for the "base" format which is a bit abstract). It also reduces the quality of error messages as unmatched arguments go one level deeper in the stack before an error occurs. If we really need it to make the whole thing hang together (as opposed to eliminating code duplication) then of course it's fine.