
By enabling cards.txt to implement Magic cards it greatly reduces the programming time that is needed to add new cards. Cards.txt supports a number of effects that are commonly used in Magic such as "damage creature or player", "draw N number of cards", "target creature gets X (like haste or unblockable)", or cantrip (Draw 1 card after this card gets done resolving.)
Biomantic Mastery
4 UG UG UG
Sorcery
Draw a card for each creature target player controls, then draw a card for each creature another target player controls.
spDrawCards:NumCardsType/Creature/InPlay
Biomantic Mastery is a complex card yet it can be added easily by adding it to cards.txt. The card is also more readable than the same code that was coded using Java.
Touch of Invisibility
3 U
Sorcery
Target creature is unblockable this turn. Draw a card.
Draw a card.
spPumpTgt:Unblockable
Cantrip
Touch of Invisibility has two effects which adds to the complexity.
Ambition's Cost
3 B
Sorcery
You draw three cards and you lose 3 life.
spDrawCards:3:LoseLife/3
This is another card that combines two different effects.
Thriss, Nantuko Primus
5 G G
Legendary Creature Insect Druid
5/5
abTgtPTPump G T:+5/+5
The last line means that Thriss can pump up the target creature's stats by +5/+5. The activated ability taps this creature and costs "G".
By allowing cards.txt to implement cards itself, it makes adding (and creating) Magic cards very easy.
p.s.
Unfortunately cards.txt doesn't have any error checking, so if you miss around with it and something fails, you probably won't know that it fails. Error checking is very hard.