code: function makeWish(wish, magicWord) {
    magicWord = (!!magicWord ? `${magicWord}` : '').toLowerCase()
    wish = _convertToWishObjectFromNullOrId(wish, magicWord)
  
    if (!_wishCanBeMade(wish)) {
      return null
    }
  
    _executeWish(wish, magicWord)
  
    if (!_isNullOrUndefined(magicWord)) {
      _updateEnteredMagicWords(wish, magicWord)
    }
    return wish
  }
docs: Take the given wish/wish id and call it's action
  method if it is in context.
  @param {wish|string} [wish] If null, then the first wish
  to come back from getMatchingWishes(magicWord) will be made.
  @param {string} magicWord The words to match the wish to.
  This is used for
  1. Getting a wish if none is provided
  2. Passed as an argument to `wish.action`
  3. Updating the enteredMagicWords to improve future matching
  @returns {wish} The wish which was made.
  @public