Это, безусловно, должно быть определено как enum.
Ваш вопрос: «Как назвать переменную, которая является логическим значением, но может иметь 2 значащих значения из N? Пример: x может иметь значения» red"или" синий ".
Логическое значение может иметь два значения:" истина "или" ложь ". В вашем примере двумя возможными значениями являются" красный "или" синий ", так что это не похоже нахороший кандидат на булеву переменную.
Реализация в виде enum - это больше строк кода, но, вероятно, она будет более расширяемой и более понятной, поскольку ее намерения будут понятны будущим разработчикам, использующим ваш код, и поэтомустоит (незначительная) стоимость реализации.