I’m not sure if the “conflicts with” and “item requires claim” constraint types should be checked on qualifier and reference snaks.
I can imagine an interpretation where they operate on something like “sibling snaks”: the sibling snaks of a main snak are the main snaks of other (non-deprecated) statements; the sibling snaks of a qualifier snak are the other qualifier snaks of the same statement; the sibling snaks of a reference snak are the other snaks of the same reference. With this interpretation, you could e. g. say that “stated in” conflicts with “reference URL”, meaning that you can’t use them in the same reference (but you can of course use them in different references on the same statement).
Does this make sense? Is it useful? What do you think?