Hello, I'd like to briefly summarize the situation so that we can make some progress. What we have: * We define "parameters" in a macro by creating a Java Bean, which provides all the getters and setters of the parameters we want. * We can use annotations on these getters/setters to define some behavior or metadata for these parameters (description, mandatory, deprecated...) What we want: * Being able to handle conflicting parameters. For instance when we deprecate a parameter and add a new one to replace it, we should be able to either use the deprecated parameter or the new one but not both. * We also want to group parameters that are related to each other. What we proposed: * Use annotations on the parameters to express the conflict. * Marius proposed to see the problem as a boolean expression such as: (page XOR (reference AND type) XOR document) OR section OR context. This would translate as: the user can use the 'section' and/or 'context' parameters (if they want), can use only one of these parameters: 'page', ('reference' and 'type') or 'document', where 'reference' and 'type' depend on each other and you can't use one without the other. * You can see on previous e-mails the kind of annotations we proposed to solve the issue. Thanks, Adel