Adam Flinton wrote: > > I am assuming allow then deny i.e. include all, exclude all = include all. > > Otherwise...exclude all becomes somewhere between pointless & dangerous.
I think of it in terms of items moving back and forth between an "include" list and an "exclude" list. * Initially, the slot is completely unconstrained. Therefore, all archetypes are in the "include" list. * Excluding some archetypes shifts them to the "exclude" list. * Excluding all shifts all archetypes into the "exclude" list. * Including some archetypes overrides exclusion, moving them back to the "include" list. * Include all shifts all archetypes back into the "include" list. So it's basically a three-state process: 1. All initially included. 2. Move some (or all) to the "exclude" list. 3. Move some (or all) back to the "include" list. This seems to be the behaviour that we observe in Ocean's Template Designer. In particular, this way of conceptualising it is consistent with how including has no effect unless you also exclude all; and it is also consistent with your hope, Adam, that include all should override exclude all. It also means that "include all" is rather pointless, doesn't it, because doesn't "include all" have exactly the same effect as not constraining it at all? Maybe it would be clearer if there was only one list. It could have worked like this, I think: * By default, the list would be an "exclude" list; i.e. it would serve to constrain the slot by specifying that certain patterns be disallowed. * There would be an option to treat it as an "include" list; i.e. only the specified patterns would be allowed. * There would be no need for the "all" options. They would be redundant, because "include all" would be the same as not constraining it at all, and "exclude all" would be the same as an empty "include" list. Unless there's something I don't understand about how it is meant to work now, this suggestion would give us most of the power of the current arrangement, minus the confusion. (The only capability that we would lose, that I can think of, would be the ability to exclude a proper subset of the archetypes, but then to re-include a subset of that subset: e.g., to exclude "problem-.*", but then to re-include "problem" itself. Do we really need such fine-grained control?) - Peter

