code: function _wishInThisContext(wish, theContexts) {
    const any = wish.context.any || []
    const all = wish.context.all || []
    const none = wish.context.none || []
  
    const containsAny = _isEmpty(any) || _arrayContainsAny(theContexts, any)
    const containsAll =
      theContexts.length >= all.length && _arrayContainsAll(theContexts, all)
    const wishNoneContextNotContainedInContext = _arrayContainsNone(
      theContexts,
      none,
    )
  
    const wishContextConstraintsMet =
      containsAny && containsAll && wishNoneContextNotContainedInContext
  
    return wishContextConstraintsMet
  }
docs: This will get the any, all, and none constraints for the
  wish's context. If a constraint is not present, it is
  considered passing. The exception being if the wish has
  no context (each context property is not present). In
  this case, it is not in context.
  These things must be true for the wish to be in the given context:
  1. any: genie's context contains any of these.
  2. all: genie's context contains all of these.
  3. none: genie's context contains none of these.
  
  @param {wish} wish
  @param {string|Array.<string>} theContexts
  @returns {boolean} wishInThisContext
  @private