The tricky part is writing the interface. (That's what I'm working on with
Jellybean right now. Another project on a more compliated kick is
Iaijutsu.) A couple of tricks I'm using are references to subroutines, blessed references to subroutines, and building subroutines dynamically.
You can bless an array with the function name, a description, and a reference to the function, and just deal with those. Assuming you provide access to things like DBI and CGI for all objects, there's no theoretical limit on what you can build.