static JsonPatch generateJsonDiff(File jsonFile1, File jsonFile2, File destFile)
			throws IOException {
		// Execute the json diff tool, producing a native "jd" formatted diff result on stdout
		// Produces an exit value of 1 when a non-empty diff is successfully created
		Process process = new ProcessBuilder("jd", jsonFile1.getPath(), jsonFile2.getPath())
				.redirectOutput(destFile)
				.redirectError(Redirect.DISCARD)
				.start();

		try {
			int exitValue = process.waitFor();
			if (exitValue != 1 /* 0 would be empty diff */) {
				throw new IOException("process exited with: " + exitValue);
			}
			JsonPatch jsonPatch = JsonPatch.read(destFile);
			return jsonPatch;
		}
		catch (InterruptedException e) {
			process.destroyForcibly();
			throw new IOException("Failed to finish", e);
		}
	}
Path to a directory that will persistently store the snapshot files.  (its not reasonable
to generate them each time as they can take several minutes each depending on the machine
running the process, multiplied by the total number of minor.patch versions)
Ghidra/Features/Base/src/test/java/ghidra/app/util/bin/format/golang/rtti/GoApiSnapshotGeneratorTest.java