We need a Hexarc service/archon that can store foreign accounts (e.g., email, Twitter) for any user.
- A provider is an external service like Twitter, email, etc.
- A provider engine is a Hexarc engine that implements interaction with a given provider.
- An account is a unique user account with a given provider. A Hexarc user might have accounts on 0 or more providers and 0 or more accounts per provider.
- A service is a specific, user-visible application on Hexarc, e.g., Ministry.
- A capability is an operation that can be performed by a provider. For example, sending a message, or returning a list of contacts. Each provider defines their capabilities with unique names (e.g., Twitter.updateStatus). In addition, Hexarc defines generic capabilities that are mapped to specific capabilities for each provider. E.g., Arc.sendMessage maps to Twitter.updateStatus.