Excellent demonstration of your custom engine and its features. The speech implementation is great. It would be nice to call out when an attack action is in disabled state when read aloud. By the way, it’s possible to grind undead mobs, which seems like unintended behavior; however, I can see how adding a feature to the engine to swap tiles like this could be a massive increase in scope and complexity.