the current constrained enum model, which contains already existing constrained enum keys
the raw enum model which is non-constrained to the output language.
one of the enum keys in enumModel which might have been manipulated.
the name formatter which are used to format the enum key.
the enum key to use for checking if it already exist, defaults to enumKey.
callback to change the name of the enum key that needs to be returned.
callback to change the enum key which is being checked as part of the existing models.
the potential new enum key that does not clash with existing enum keys.
Because a lot of the other constrain functions (such as NO_NUMBER_START_CHAR, NO_EMPTY_VALUE, etc) they might manipulate the enum keys by append, prepend, or manipulate it any other way. We then need to make sure that they don't clash with any existing enum keys, this is what this function handles. If so, prepend
reserved_
to the enum key and recheck.