On 2014-09-29 10:37, Denis Bitouzé wrote: > Hi, > > among others, `.value_forbidden:` and `.value_required:` key properties > from `l3keys` package are useful: they let us specify that a given key, > when used, either cannot or must receive a value. > > What could be useful as well is a key property, say `.required:`, that would > specify that the corresponding key /has/ to be used. This could be helpful for > instance in the case of a document command `\MyModuleSetup` for setting up > a module `mymodule`: > > \DeclareDocumentCommand \MyModuleSetup { m } > { \keys_set:nn { mymodule } { #1 } } > > where some module property /has/ to be specified. > > I know this can be achieved with something like test of existence of > some tokenlist and message emitted in case of nonexistence but a high > level key property for this could be nice. > > May I ask what is your opinion about that? > > Thanks in anticipation. > Just a couple of thoughts, humbly offered with some uncertainty: 1. A compulsory key seems to me, on the face of it, to imply a less-than-friendly user experience. 2. A simple solution might be to provide a default (such as "nil"), and, 'later in the package', test the key for "nil" and complain if it has not been overridden. Brent Longborough