Modifiers and actions: optional and mutually exclusive parameters
In the DM, some modifier parameters are specified as optional, some are mutually exclusive, and for some, a range or a single value can be specified. The LRM doesn't seem to say anything about this, so
- if you have to choose one of two parameters, what happens to the other one? Is it just ignored? Is there any language feature to express this mutual exclusion?
- if you can specify a range or a single value for a parameter, what does the declaration of that modifier look like and how is that handled? Do these parameter values/ranges somehow need to be translated into constraints of the behavior they are applied to?
Example: modifier position
position([distance: ]length | time: time, [ahead_of: physical_object | behind: physical_object | ahead_of_point: position_3d | behind_point: position_3d | at_point: point_3d][,project_on_route: bool][, <standard-movement-parameters>])
- distance: length
A single value or a range with a distance unit. The distance is calculated using road coordinates.
- time: time
A single value or a range with a time unit to determine headway time between the actor and a movable object or point.
[...]
You can specify the position by distance or time (but not both).