On the frontend team we are designing the new normalized data structure, which is how the client will organize all data that is received from the API
Account
[Account_ID]
Paths
[Path] - empty string for home docs, /[TSID] for CCC, and /human/readable for children docs
when type: Document
latestVersion: [cid1.cid2]
mentions array:
resource: [AccountID+Path]
mention metadata?
comments array:
[Resource: AccountID+Path]
activity: TBD - cache the activity events about this specific resource
search: TBD - cache search results when your search is narrowed to this resource
when type: Comment
latestVersion: [cid]
mentions array:
resource: [AccountID+Path]
Profile
latestCid: [cid]
search - used to cache search results when searching the whole node
activity - cache the node's global activity events
will reference the Path Resources: [AccountID+Path] or the Profile: [AccountID]
Immutable
[CID]
when a document change:
State - the current state
Metadata
Content
Blob Data (as it saved in IPFS)
when a comment, cap, contact, profile:
Blob Data (as it is saved in IPFS)
Metadata? If only used if the full blob data is not loaded
[CID1.CID2]
for document versions only
State - if this is a document version
Metadata
Content