YMPK will be something like this, easy to use, and will have documentation:
local Mod = YMKP:AddSpace(name : string)
Mod:Init = function()
-- ...
end
Mod:Hook[hook : string] = {function(hook : string,extra : depends,...)
Mod:Print(message : string)
-- ...
end,extra : depends}
local IO =...