Interface RepositoryElementInterface

A repository element is an object that can be saved or loaded from the repository. As such, we need to be able to
identify it. It needs a RepositoryDirectory, a name and an ID.
We also need to identify the type of the element.
Finally, we need to be able to optionally identify the revision of the element.