It certainly shouldn't segfault (please file a bug at https://bugs.swift.org!) but the problem here is that any subclasses of Game would have a different type. That is, it's not obvious that a PassthroughSubject<CardGame, Never> is a kind of PassthroughSubject<Game, Never>, even though CardGame is a kind of Game. This feature is called "covariant generic parameters" and would be non-trivial to add to Swift.
Thanks for the explanation. Wasn't obvious what was wrong with my implementation. I filed a bug SR-10969 with a smaller test case and one that doesn't rely on any dependencies.
Additionally, would using Self in this case from a struct be possible since they can't be subclassed?
Yes, using Self in a struct should be identical to spelling out the type. It could also work with final classes, but I don't know if that was implemented.