I would add that repositories with "separate files for separate classes" and "Packages are folders" approach are much more readable if the code is exposed in UDL form. Check cacheobjectscript-udl repositories with code in UDL as examples. 

Atelier supports UDL and there are several libraries like this one which allows export Caché objectscript code in UDL easily.