   # Revealing Moat sets a flag in the player's state, indicating
   # that the player is unaffected by the attack. In this code, Moat
   # is always revealed, without an AI decision.
-  attackReactions: [
+  attackReaction:
     (player) -> player.moatProtected = true
-  ]
 }
 
 makeCard "Monument", action, {
   cost: 4
   coins: 2
-  playEffects: [
+  playEffect:
     (state) ->
       state.current.chips += 1
-  ]
 }
 
 makeCard 'Nobles', action, {

# Miscellaneous cards
# -------------------
# All of these cards have effects beyond what can be expressed with a
# simple formula, which are generally defined using effect lists such as
# `playEffects`.

makeCard 'Alchemist', action, {
  cost: 3

  #
  # All attack effects are wrapped in the `state.attackOpponents`
  # method, to give opponents a chance to play reaction cards.
  playEffect:
    (state) ->
      state.attackOpponents (opp) ->
        state.requireDiscard(opp, 2)
}

makeCard "Moat", action, {
