Internal OAuth session structs shared across flows and token stores.
@type t() :: %Codex.OAuth.Session{ auth_record: struct(), context: struct(), flow: atom(), persisted?: boolean(), provider: atom(), storage: :file | :memory | :auto, token_store: pid() | nil }