The sources field

BuckleScript knew to look in the src directory because of the following configuration:

"sources": {
"dir" : "src",
"subdirs" : true
},

If subdirs were false, any .re and .ml files located in subdirectories of src wouldn't be compiled.

For more information regarding bsconfig.json, see the following section of the BuckleScript documentation:  https://bucklescript.github.io/docs/build-configuration.