selectCard(selectedSdkCard, unselectedSdkCards) {
    const selectCardPromise = this.delegate.selectCard(selectedSdkCard, unselectedSdkCards);

    // wait for select to resolve and then add the card to deck
    selectCardPromise.then(() => {
      this.addCardToDeck(selectedSdkCard.getId());
      if (selectedSdkCard != null && selectedSdkCard instanceof SDK.Entity && selectedSdkCard.getIsGeneral()) {
        this.showFactionVisualsForFactionId(selectedSdkCard.getFactionId(), selectedSdkCard.getId());
      }
    });

    return selectCardPromise;
  }
Selects a card by reference and calls the delegate selection.
@param {SDK.Card} selectedSdkCard
@param {Array} unselectedSdkCards list of cards not selected
@returns {Promise}