The main idea behind the project is that card behavior should come from parsed Oracle text whenever possible, instead of hardcoding each card by hand. Ironsmith has a parser/compiler pipeline that turns card text into structured runtime effects, then executes them through an event-driven rules engine for triggers, replacement effects, combat, damage, and state-based actions.
It’s playable in the browser via WASM, and it also supports multiplayer lobbies. You can load decks, play games, inspect the board state, and use it as either a goldfishing tool for practicing solo, or to play with your friends!
I started working on this because I wanted to see how far I could push a rules engine built around “understanding the card text” instead of maintaining a giant pile of one-off card scripts. I've been using LLM's pretty extensively throughout development, but am trying to architecture the project in such a way that "slop" is either minimized or at the very least easy to refactor.
It’s still a work in progress, and coverage is definitely incomplete (~22k cards compile, ~14k do so at 100% similarity with their real counterparts), but it’s at the point where I find it useful and fun to play around with. I’d especially love feedback from people interested in compilers, game engines, multiplayer systems, rules engines, parser-heavy side projects, or those who've been LLM's heavily in sizable side projects.
If you wanna play around with the actual compiler, click the "Create Card" button and it should take you to a modal where you can modify a randomly loaded card with whatever effects you can think of.