> Could we not keep just the three sources and take the current defined order?

Hmm, yes, this should work. I'll try that out.

I think we might actually even get rid of the configuration source for constrained elements. Currently it is used as part of the identity of the same (comprising location and source), so that one can have e.g. two `ConstrainedField` instances representing the same field, but provided from different sources. If we consider all object attributes in `equals()`/`hashCode()` we could remove `AbstractConstrainedElement#configurationSource` (it is not used otherwise). We could reconsider that later on.