Normalize reads#
Adapters return positions with provider attribution, observation time and availability. Failed providers lower coverage rather than becoming zero-valued live accounts.
Route actions#
A payment uses PaymentProvider; a crypto sale uses CryptoProvider; card controls use CardProvider. Each route preserves its own authorization and settlement semantics.
Avoid institution coupling#
The UI does not need one institution to provide every product. A real adapter must map supported operations and permissions, not simply reuse the mock provider’s assumptions.