You're right, error codes are in the protocol spec! So it makes sense to have them in one interface.
Some (```VALIDATION_SAML_ATTRIBUTE_NAMESPACE```,  ```VALIDATION_CAS_MODEL_ASSERTION```) are not directly listed in the spec, so they may "stay" in their original classes...