Erasing (or mapping) value type parameters

You're hitting one of those seemingly-new-because-of-the-unidirectional-flow-of-genericish-any "protocols that only apply to one type" cases.

I.e. it's not a problem if you copy everything over, like you say.

protocol DriverOptions {
  associatedtype Authentication: AuthenticationMode

  let options: any DriverOptions

I still can't find that other person who was asking for "some/any ConcreteType" functionality. They'll be comin' out the woodwork soon though.