The core of Swift export is a SirSession interface which is decomposed into several components: providers. Each provider contains a small piece of Analysis API -> SIR logic which in turn might call other providers.
Such decomposition allows Swift export to be adapted to different use cases: standalone tools, IDE, etc.
This architecture is inspired by FirSession from FIR and KtAnalysisSession from Analysis API.