> At a certain level of complexity, hard-coding a solution may be the least evil option.
тут такое дело. иногда надо не удариться в оверинжениринг. т.е. сначала закодировать частные случаи, а когда станет больно и будут понятны недостатки, то тогда уже делать обобщённый конфиг, правила, дсл... переписывать нахрен кучу работающего кода....
Overengineering is overrated. Нет такого понятия, в общем говоря, придуман маркетологами. А вот хардкодинг реально вреден.