by placing these in the metadata model / API they can be used more broadly,
while the storage-dependant implementation can be in a plugin. This means the
plugins can be removed from the admin implementation, which can then be used
(as required) in the CLI