Rename an object name to adapt its own obligation
Replace duplicated conditions with recursive calls
Improve exception handling
Unify enumeration of concrete materials into the game rule object