···11+22+## Package Structure
33+44+`oauth.ClientApp`
55+- represents an overall application or service; helps establish and manage oauth.ClientSession
66+- wraps and manages client metadata, client attestation secret (for confidential clients), request and session storage
77+88+`oauth.ClientSession`
99+- represents an established user session, wrapping DPoP key, tokens, and other metadata
1010+- implements client.AuthMethod, for use with ApiClient
1111+- automates token refresh; for confidential clients requires ref to client secret
1212+- triggers callback when session data are updated (nonce, tokens)
1313+1414+`oauth.OAuthStore`
1515+- interface for persistent storage systems for auth request and session metadata, including secrets and DPoP private keys
1616+1717+`oauth.Resolver`
1818+- currently always resolves direct from the network; may add flexible caching or interface abstraction in the future
1919+2020+2121+## Implementation Details
2222+2323+- starts DPoP at PAR (specification is flexible about this)
2424+- requires ES256 (P-256) for DPoP and client attestation private keys; though flexible interface types are used in the API
2525+- scopes are configured as part of client metadata, and the same for each session
2626+