All files here in data/json are read eventually, but the order in which they’re read can be important for objects with dependencies on other kinds of objects (e.g. recipes depend on skills). Ensuring the proper loading order will prevent surprises that, most often, manifest as crash-to-desktop with segfault (a very bad thing).
The way Cataclysm finds and loads json files is by running a breadth-first search in the tree data/json/. This means
data/json/whatever.json will always be read before
data/json/subdir/whatever.json. This tells us how to ensure dependency loading order.
For instance, if you have scenarios that depend on professions that depend on skills, you’ll want a directory structure such as the following:
data/json/ skills.json professions/ professions.json scenarios/ scenarios.json
Which results in a loading order of:
professions.json and then
Note that, when files (or directories) are at the same depth (i.e. all in
data/json/), they will be read in lexical order, which is more or less equivalent to alphabetical order for file names that use only ascii characters. For UTF-8 or otherwise non-ascii file names, the names will be ordered by codepoint.