run_single ~config ~observer_module key executes the given target key with the specified options and returns the up-to-date value for the target.
The return value is the up-to-date state.
Include Directories
includedirs is the list of include directories. The reference implementation does not have any predetermined include directories, so at least one include directory must be specified to be useful. All "values.json", "values.jsonc", "*.values.json", and "*.values.jsonc" files in the include directories are scanned before the targets are built. "*.thunk.json", and "*.thunk.jsonc" files are also scanned but are deprecated.
If an include directory does not exist it is skipped.
If a ".values.json" file can't be read, a warning is issued, but the build process continues.
If there is a duplicate key, an error is issued, and the build process stops.
Time
The build system considers the "current" instant of time to be timestamp. The format of timestamp is (year, month, day, hour, minute) where year is 1970 to 9999, month is 1 to 12, day is 1 to 31, hour is 0 to 23, minute is 0 to 59, and the timezone is UTC.
Errors
observer_module is the module that will receive errors during the build process. It must implement the MlFront_Thunk.ThunkParsers.Results.OBSERVER_RESULT signature.
Throws EngineShutdown if there is a fatal error.