/** * A copy is the digital counterpart of a work. * It corresponds to a unique file or set of files which represent the work on the users device. * * Multiple works can have multiple copies (think of different scans of a physical work, or lossy compression). */ interface CopyInterface extends IdentifiableInterface { /** * the work this entity is a copy of */ original: Promise | Identifier; /** * where to find this specific copy */ sources: Promise | Identifier[]; /** * identifying hash of the file contents */ hash: string; /** * device location of the copy */ location: string | null; /** * the ordering of the copies belonging to the same work, * lower number is higher ranked */ ranking: number; }