Often configurations contain a references to other configuration values based on an identifier field, E.x. in Alertmanager users can define a list of receivers and reference them by their name inside a route’s receiver. A valid Alertmanager configuration requires that the value of a route’s receiver needs to be a name of a receiver inside the list of receivers.

In CUE a route’s receiver would be represented by a disjunction containing all receiver names. Such a schema can be defined in CUE using comprehensions and the builtin or function, I.e.

receivers: [...{
  name: string
}]

route: receiver: or([ for r in receivers {r.name}])