Return the next <conkey><n> based on conkey as a
        string. Example, if 'startcond3' and 'startcond5' exist, this
        will return 'startcond6' if 'startcond5' value is not None,
        else startcond5 is returned.

        It is assumed conkey is a valid condition key.

        .. warning::
           Under construction. There is work to do. This function in
           combination with the pack.add_condition. But now it's time for
           bed.

def next_conkey(self, conkey):
        """Return the next <conkey><n> based on conkey as a
        string. Example, if 'startcond3' and 'startcond5' exist, this
        will return 'startcond6' if 'startcond5' value is not None,
        else startcond5 is returned.

        It is assumed conkey is a valid condition key.

        .. warning::
           Under construction. There is work to do. This function in
           combination with the pack.add_condition. But now it's time for
           bed.

        """

        if conkey in self.conditions:
            return conkey       # Explicit conkey

        conkeys = self.sorted_conkeys(prefix=conkey)  # Might be empty.
        if not conkeys:
            # A trailing number given that does not already exist.
            # accept possible gap from previous number.
            return conkey
        for candidate in conkeys:
            if self.conditions[candidate] is None:
                return candidate

        i = self.cond_int(candidate)  # The last one.
        return re.sub(r'\d+', str(i + 1), candidate)