exec(args, options) {
    options = options || {};

    /**
     * 1. Validate arg input to include every
     *    possible form of input, such as:
     *
     *    a. as a string:
     *       cash.foo('bar and so on', {option: true});
     *
     *    b. as an array:
     *       cash.foo(['bar', 'and', 'so', 'on'], {option: true});
     *
     *    c. as interpeted through Vorpal:
     *       cash('foo bar and so on --option');
     */

    /**
     * 2. For errors, use `this.log` to print the
     *    error message to the user, and only return
     *    the error code (1, 2, etc.)
     *
     *    if (args.length < 1) {
     *      this.log('foo: cannot bar: requires at least one file name');
     *      return 1;
     *    }
     */

    /**
     * 3. For all other stdout to the user, use `this.log`.
     *    For large jobs that should stream logging a
     *    bit at a time, use multiple `this.log` statements
     *    and cash will handle the heavy lifting of piping
     *    and returning the final assembled output to the
     *    user in the case of programmatically executed
     *    commands.
     */

    /**
     * 4. When complete with no errors, return 0;
     *
     *    return 0;
     */
  }
The cmdName.exec method is exposed by Cash
as the only public interfacer to your command.