I will insist on the IDs because my examples are not the best place to explain them. I will rewrite the documentation for the next version. My own practice is to have the same folder when the ULV share the same data, and separate folders in the other cases.
BUT if you use a record ID as in the example above, then there's a chance to have the same ID for records from different tables, so you have to create in this case a subfolder for each ULV using a different set of tables. Since all IDs are supposed to be unique, all resources can be stored in the same folder (their filename is ' their_ID.0'). It doesn't matter if you use only one folder for your cache or many. When the resources come from a database, I simply use the ID of the record, e.g. Then I add the hash value of the path to the resource file and I end with the file name. My own practice is to start the ID of text data with 'txt' and the ID of images with 'img' so there's no confusion between the two types. In some cases, ItemID can be = to ImgID or = to TextID, and I agree that is convenient, but you can never have all three equals. It's what I said: an ID is an UNIQUE identifier.