'Smallest version newer than all full or partial versions?
:returns: the smallest version number that is larger than any
version of any item currently stored in this lineage
:rtype: int'

def next_free_version(self):

    return (max((self.newest_available_version(x) for x in ALL_FOUR)) + 1)
