split interface logic from mainloop
implement SlightlyLessDumbAI
implement SimpleGreedyAI, always choosing option with most vp gain
fix bug in resources: count is sum, not just non-null
move PlayerOptions to Actions, and do return dynamics in Resources.split() method
case class without args -> case object
cards are singletons!
wonders are singletons, too!