
Many modules or applications maintain a user-spec configuration data directory. and the implementation pattern is generally the same.
a directory like /home/myuser/.application is created and populating by a set of default files the first time an application runs, and from there on, the files in that directory are modified.
file::userconfig provides standard, light and sub-classable default implementation of this concept that does the right thing with the directory names.