The following options are desirable:
- set stdin, stdout, stderr or other descriptors,
> or >>
- control over passing the list of changed filenames via argv (for big trees this list can exceed the command line limits of the system)
- control over passing structured data about changed files via stdin (again, can be large, and it may not need to be JSON for some traditional unixy command compositions)
- cwd, environment
To a certain extent, these can be controlled via a shell script that does the same, except for the command line length and JSON processing (unless you have installed some auxiliary json tools)