I thought about get_module(module_type) but it could be easier for the ws user to have get_forum, get_quizz, ... It's a bit more code but we keep a really simple structure without an external.php into /mod. And we'll not be implementing functions with multiple specific cases.
I feel a bit weird to have a external.php file into /mod when there is not even a lib.php file inside.
Do you have some examples of common mod functions?
Otherwise the accessibility could be ruled by the ws user role and the permission.