So apparently there were two issues.
First, these json files must be placed in the same folder that gets added to the path. So rather than being in the "+io" folder it needs to be placed in the folder that contains the "+sl" folder. This means that there will be only 1 JSON file for a package and all of its subpackages.
Second, there is currently a bug that prevents the tip window from popping up when typing with these nested functions in the command window. As a workaround they suggested that I could use a live script instead.