# Hub Specification Planning
An exhaustive list of all the things members believe Hubs should support.
## High-Level Feature Areas
| |Description|MVP|
|:-------------|:----------|:-:|
|Profile Discovery|Mechanism to expose a basic profile object|✔|
|Semantic Data CRUD/Discovery|Storage and retrieval of discoverable semantic data|✔|
|Action Inbox for Agents|Intake and relay messages that are prompts to do something|✔|
### Items pending assessment:
- Peer DID Support: Ability to host/resolve Peer DIDs
## Capabilities
| |Description|MVP|
|:-------------|:----------|:-:|
|Semantic JSON Storage|Store and fetch semantically typed objects|✔|
|Non-JSON Data Storage|Storage of non-JSON data, like binary objects |✖|
|Commit Abstraction|Ability to store data in various ways for the purpose of state correctness - basic timestamp, CRDT, etc.|✔|
|Encrypted Data|Mechanism for encrypting data, either fully private, or to specified parties|✔|
|Encrypted Metadata|Ability to encrypt and index metadata while encrypted|✖|
|Control Access to Data|Ability to permit an external entity to retrieve/view data|✔|
|Sync|Ability to sync data with wallets and other Hubs|✔|
|Replication|Ability to proactively reach a shared state with wallets or other Hubs with an active/active replication mechanism|✖|
### Note
- Guidance: make sure to pave the path for attachments/blobs
- Follow-up: incorporate feedback from the folks who want encrypted indexing/search of metadata
- Permissions are only a means of policy enforcement, based on the signed permission objects it holds (which are from the DID controller)
- Bikeshed on the name "Control Access to Data"
- Make it clear that the Hub has no access to any private key material for users/data
- Dealing with commitment and fetch of unencrypted permissioned objects
## Data Types
This is orthogonal work that includes defining the objects below, which may take place in other WGs.
| |Description|MVP|
|:-------------|:----------|:-:|
|Key Descriptors/Lists|Active and revoked keys|✔|
|Credentials|Various credential formats (VC, JWT, etc.)|✔|
|Credential Manifests|How and what is required to get a credential|✔|
|Credential Revocation|Declare revoked credentials|✔|
|Trust Lists|Express relationships with other DIDs|✔|
### Note
- Follow-up with on-boarding existing data schemas