Opaque types. These are used by the CLI to instantiate machinery that don’t need to know
the specifics of the runtime. They can then be made to be agnostic over specific formats
of data like extrinsics, allowing for them to continue syncing the network through upgrades
to even the core data structures.
This determines the average expected block time that we are targeting. Blocks will be
produced at a minimum duration defined by SLOT_DURATION. SLOT_DURATION is picked up by
pallet_timestamp which is in turn picked up by pallet_aura to implement fn slot_duration().