Manifest format
There are some decisions to make about the manifest format. Is the entire structure a dynamic serialization format (eg Syrup), or can we specify "the first N bytes represent X, the next N' bytes represent Y..."
@pukkamustard already summarized some of it:
As discussed, a dynamic serialization format seems to be required for metadata and mutable content.
For immutable storage I would argue that no dynamic serialization is required.
In the "original" Datashards, the manifest was one big (dynamic) tagged canonical s-exps structure. Maybe it doesn't have to be, or at least if we decide that metadata is in the manifest, we can limit that to one byte.
The other decision we have to make is whether or not we use a tree for larger manifests or a simple hash chain.