attachTo :: Monad m => CardID -> CardID -> StateT GameState m ()
attachTo attachment host = do
  s <- get
  detach attachment
  _card attachment.attachedTo .= Just host
  _card host.attachedCards <>= [attachment]
attachTo :: Monad m => CardID -> CardID -> StateT GameState m ()
attachTo attachment host = do
  s <- get
  detach attachment
  _card attachment.attachedTo .= Just host
  _card host.attachedCards <>= [attachment]
attachTo attachment host = do
  s <- get
  detach attachment
  _card attachment.attachedTo .= Just host
  _card host.attachedCards <>= [attachment]