Hi Michael.
First, I'm sorry that things didn't work out for you on that contract ...
Keep in mind that Remedy::ARSTools isn't strictly speaking an API in the classic sense you're trying to apply here. The purpose for this module is simply to provide some convenience functions, on top of the ARSPerl project, which is a perl binding for the actual Remedy C API.
I'm aware that the documentation is in an atrocious state, and that indeed, this module doesn't function correctly with newer releases of ARSPerl, making it's utility to the community somewhat less than optimum. That being said, it DOES have a high degree of applicability within the very narrow set of circumstances for which it was built, which is why you were required to use it on the contract.
At some point, I'd love to come back to this project and update it for wider applicability, and fix the documentation, but at least for now, that's not something I've got the time to do, though any would-be contributors out there in the community are more than welcome to submit fixes and patches!
Just to briefly address your points above:
-- The package includes a CPAN standard Makefile.PL, that will generate a makefile to create required directories and install files within them. I'm not sure what you're getting at here.
-- The Remedy server may use any number of off the shelf databases for it's back-end. We used Oracle on the project you were working on. At least within our deployment, querying the underlying database directly is much more efficient for SELECT type operations than querying the Remedy API to retrieve the data. Again, I'm not sure how this point, which seems to be related to your frustration understanding the database table structure, is really applicable to Remedy::ARSTools.
-- The module does work as intended, I've been using it for many years and have built many many functioning projects using it. The module doesn't include a test suite, which is one of those things I've been meaning to get to.
- The module includes debug flags, which can log to stderr. That's about as simple as it gets.