//should only be called if CanPutHenchmanAtSpace() returns true
    public void PutHenchmanAtSpace(HenchmanCard henchman, BoardSpaceEnum space)
    {
        //put it on the board
        board[space] = henchman;
        henchman.SetPlayState(PlayStateEnum.BOARD);
        henchman.SetLocation(space);

        //move the henchman visually
        VisuallyPutHenchmanAtSpace(henchman, space);

        //invoke its flashy event
        henchman.FlashyEvent.Invoke();
        //invoke all other henchmen's attention-seeker events
        TriggerAttentionSeekerEvents();

        //add it to the order
        henchmenOrder.Enqueue(space);
    }
    //should only be called if CanRemoveHenchmanFromBoard() returns true
    public void RemoveHenchmanFromBoard(BoardSpaceEnum space)
    {
        HenchmanCard henchman = board[space];

        //remove it from the board
        board[space] = null;
        henchman.SetPlayState(PlayStateEnum.DONE);
        henchman.SetLocation(BoardSpaceEnum.NONE);

        //remove it from the order
        henchmenOrder.RemoveArbitrary(space);

        //remove the henchman visually
        henchman.gameObject.SetActive(false);

        //set up the henchman to be destroyed
        henchman.GetController().GetDeck().DestroyCard(henchman);

        //invoke its closing-act event
        henchman.ClosingActEvent.Invoke();
    }