At the moment the NavKey navTarget argument is not enforced to be parcelable. It uses @RawValue to avoid the compiler complaining.
Unfortunately this means it is possible to introduce code that will crash at runtime (there is currently an issue in the newly introduced IndexedBackStack causing a crash when the app is backgrounded.
By adding more constraints to the generics we can ensure that we have compile time safety.