The Scryfall query language implicitly ANDs adjacent terms — pyparsing does not. This post covers the preprocessing layer built on top: implicit AND injection, query balancing in two languages, and the edge cases that required fixes.
How I evaluated parsing approaches for Scryfall’s query language: why regex and ANTLR were ruled out, how Lark compares to pyparsing, and why pyparsing won.
Why Sylvan Librarian uses Falcon and Bjoern instead of the FastAPI + uvicorn default: a preference for explicit, close-to-vanilla Python over framework magic.
Motivation for building Sylvan Librarian: owning the query language, and the killer feature Scryfall can’t do — arithmetic comparisons across card attributes.