Every resource in conex is a piece of data (or metadata), and has its own purpose. Resources stored on disk consists of a common header: a name, a type, a counter, an epoch, and a creation timestamp. There are broadly three kinds of resources: those containing identities (Team and Author), those regulating access to packages (Authorisation), and those with the digests of the opam repository data (Releases and Release).
The wire encoding is abstract here, one suitable decoding and encoding engine is Conex_opam_encoding. The wire encoding is used for digest computations, and persistent storage on disk.
The root contains the (offline) root keys, also defines snapshot, timestamp, and maintainers. Furthermore, it contains configuration information such as where keys are located in this repository and where the data is stored.