With "opaque" I mean "you should not look into it or call anything on it, but only pass it to unsubscribe", not "don't use it", so it should only be used as an identification for the subscription.

Should I clarify that in the comment?
We need unsubscribe at least for tests, but we could remove it from public API. But then, I don't like changing the API only for making tests work.