- allow for a human player
- play against a human
- have some user interface, text is fine
- never lose. Furthermore, it should win whenever possible
- Living Documentation
- Architecture based on
- DCI
- MVC
- CleanCoders.com on Architecture
- SRP
- DRY
- BDD
- TDD
- names of the domain language
- Delivery Mechanism
- independent of the domain logic
- CLI
- Infrastructure
- Ruby 1.9.3
- git
- Cucumber
- RSpec