Я бы ввел в таблицу games_rules параметр type, который может принимать значения:
'choice', 'range'.
В случае choice параметр options содержит json
key=>value
В случае range
min=>{MIN_VALUE}, max=>{MAX_VALUE}
Дальше делаете классы для каждого type, которые знают свой формат options, знают как проверять условия и какой рисовать контрол (select,input & etc). Оборачиваете все это дело в фабрику профит.