return { uri = "pas:File", label = "File", broader = "anything", properties = { source_path = { min_cardinality = 1 }, archive_path = { uri = "pas:archivePath", label = "Archival path", description = "Path of the preserved resource, relative to the \z archival root.", type = "string", min_cardinality = 1, max_cardinality = 1, }, next = { range = {Part = true, File = true}, max_cardinality = 1, }, format = { uri = "dc:format", label = "MIME type", type = "string", min_cardinality = 1, max_cardinality = 1, }, size = { uri = "dc:extent", label = "File size", description = "File size in bytes.", type = "integer", min_cardinality = 1, max_cardinality = 1, }, checksum = { uri = "premis:hasMessageDigest", label = "Checksum", description = "File checksum formatted as an URN: \z `:`", type = "ext_resource", min_cardinality = 1, }, } }