tesseract_environment::checkTrajectory and tesseract_planning::contactCheckProgram are almost complete duplicates, as far as I can see.
I suggest removing contactCheckProgram, as this uses checkTrajectoryState, just as checkTrajectory does, which are both in tesseract_environment.