I thought about that exact implementation but then thought it would be better to not support `unwrap()` as long as we don't offer any specific methods (requiring to unwrap in order to invoke them).

IMO we should offer these methods on dedicated interfaces being part of the HV public API instead of unwrapping to the internal implementation class:

    interface HibernateConstraintValidatorContext extends ConstraintValidatorContext { ... }
    class ConstraintValidatorContextImpl implements HibernateConstraintValidatorContext { ... }

    //usage
    HibernateConstraintValidatorContext hcvc = constraintValidatorContext.unwrap(
        HibernateConstraintValidatorContext.class
    );

Once we have such an interface, we would change the unwrap implementation to allow to unwrap into this interface type:

    if ( type.isAssignableFrom( HibernateConstraintValidatorContext.class ) ) {
        return this;
    }
    throw log.getTypeNotSupportedException( type );

That we'd make sure users only interact with public API classes (of course they still could cast to the impl, but the idiomatic `unwrap()` method wouldn't support that). WDYT?