Currently, location constraints may have a role attribute, either on the rsc_location element itself, or on a contained resource_set or top-level rule element.
This is a poor design. Setting role to Started or Unpromoted affects the location of all instances, including promoted ones, and setting Promoted does not affect location of any instance but only which instance(s) get promoted. Other roles such as Stopped have no meaning for location constraints.
Deprecate (and eventually drop) support for role in location constraints, resource sets, and rules, and instead have a new rsc_promotion constraint type that behaves the same way as a location constraint with role set to Promoted currently.