======================================================== Determines if first date partially intersects second date NOTE: This is a shallow test (no patterns tested)
function dateShallowIntersectsDate(date1, date2) {
  if (date1.isDate)
    return date2.isDate
      ? date1.dateTime === date2.dateTime
      : dateShallowIncludesDate(date2, date1);
  if (date2.isDate) return dateShallowIncludesDate(date1, date2);
  // Both ranges
  if (date1.start && date2.end && date1.start > date2.end) return false;
  if (date1.end && date2.start && date1.end < date2.start) return false;
  return true;
}