Split card logic into separate classes
Reimplement card status using Zones
Properly set owner on summoned cards
Make secrets playable in a relevant way
Implement some basic mage spells
Allow iteration over Deck
Implement some priest spells
Add an enum for Power requirements
Reimplement targeting on top of PlayRequirements
Add some tests for cleave
Implement min and max target attack requirements
Make cards unplayable if they require a target that is not there
Implement REQ_TARGET_WITH_RACE
Implement Sacrificial Pact
Better logging in Card.play()
Implement almost every other used PlayRequirement
Allow comparison between cards by their id
Make secrets always unique
Implement stealth attribute
Implement most warlock spells