Итоги голосования для комментария:
Arris Я рассказываю максимально свободную от ограничений версию, описываю ядро системы.

Мастер вправе наложить на систему в своем мире ограничения.

Тут зависит от мастера, уровня абстракции и силы волшебника. А она даже языком программирования не является :(
Не является, я это говорил с самого начала.
Мы не заморачивались написанием таблиц, из которых можно было бы определить — может ли волшебник с 20% спеллпавера использовать лексему рука для описания лапы кота. А волшебник с 50% спеллпавера? А как шанс правильного использования такой лексемы неправильным образом зависит от интеллекта?

Такие таблицы неизбежно влекут за собой математику и вычисления. То, от чего хотелось избавиться.

Один мастер, исповедующий максимально строгий канон может заявить «Нет, лексема рука неприменима к задней ноге обезьяны». Другой, не сосредотачивающийся на каноне — «да, рука применима к лапе».

Вам решать, можете ли вы использовать цикл for для перебора элементов ассоциативного массива, или лучше подойдет foreach.