A grammar for parsing and validating MTG cards