All entities that can be locked implement this interface. It is used
for two purposes:
- it is a marker interface to determine which entity types are eligible
to be locked and unlocked.
- it exposes the locks held on the current instance of the entity.
Note that a given entity may be locked by multiple locks of different types
at the same time, which is why the Locks member returns a collection
of locks. While multiple lock types are supported, not every entity that
implements the Lockable interface will support all lock types.