@Nullable
  @Override
  @CallSuper
  public List<String> validate(@NonNull JobParameters job) {
    List<String> errors;

    errors = mergeErrorLists(null, validate(job.getTrigger()));
    errors = mergeErrorLists(errors, validate(job.getRetryStrategy()));

    if (job.isRecurring() && job.getTrigger() == Trigger.NOW) {
      errors = addError(errors, "ImmediateTriggers can't be used with recurring jobs");
    }

    errors = mergeErrorLists(errors, validateForTransport(job.getExtras()));
    if (job.getLifetime() > Lifetime.UNTIL_NEXT_BOOT) {
      // noinspection ConstantConditions
      errors = mergeErrorLists(errors, validateForPersistence(job.getExtras()));
    }

    errors = mergeErrorLists(errors, validateTag(job.getTag()));
    errors = mergeErrorLists(errors, validateService(job.getService()));

    return errors;
  }
Attempts to validate the provided {@code JobParameters}. If the JobParameters is valid, null
will be returned. If the JobParameters has errors, a list of those errors will be returned.
jobdispatcher/src/main/java/com/firebase/jobdispatcher/DefaultJobValidator.java