Holds credential as the GraphQL principal, redeeming it first when it is an invite token.
On success returns THE CREDENTIAL NOW HELD — always a session JWT, so for an invite this is the
redeemed token, NOT the argument (callers that persist anything must persist this, or a live
single-use invite would be left at rest) — or null when the page's own principal won (see below).
Never throws.
The exp (epoch ms) of a JWT, or null when unreadable. Exposed so a store can bound what it remembers.
True when a usable principal is held. A JWT this adapter holds must still be unexpired; a principal the host app owns is taken on trust (its lifecycle is the host's, not ours).