I don't think this is viable. At least, I don't like the arbitrary choice that has to be be made for types like
@Flag
struct MyType<T: AsyncSequence> { ... }
This is the same problem I brought up in the Reflection thread @filip-sakel linked above:
Further, it may not even always be possible to fulfill the archetype:
protocol NotImplemented {}
@Flag
struct CantUseMe<T: NotImplemented> {}