{ "$schema": "https://json-schema.org/draft/2019-09/schema", "$id": "https://raw.githubusercontent.com/NSSAC/SIMBA_driver/master/schema/driver.json", "$vocabulary": { "https://json-schema.org/draft/2019-09/meta/applicator": true, "https://json-schema.org/draft/2019-09/meta/content": true, "https://json-schema.org/draft/2019-09/meta/core": true, "https://json-schema.org/draft/2019-09/meta/format": true, "https://json-schema.org/draft/2019-09/meta/validation": true, "https://json-schema.org/draft/2019-09/meta/meta-data": true }, "title": "SIMBA Driver", "description": "The schema describes how the SIMBA driver is executed", "type": "object", "properties": { "outputDirectory": { "title": "Output Directory", "description": "The directory where all output files (e.g. status files) are stored", "type": "string" }, "runId": { "title": "A unique ID identifying the run to be executed", "type": "string" }, "cellId": { "title": "An ID identifying the currently running experimental setup", "type": "string" }, "initialTick": { "title": "The initial Tick", "type": "integer" }, "initialTime": { "title": "Time associated with the initial tick", "type": "string", "format": "date-time" }, "endTime": { "title": "The stooping time of the simulation", "description": "The simulation stops once initialTime plus all accumulated durations (tickDuration) exceeds the endTime", "type": "string", "format": "duration" }, "continueFromTick": { "title": "Optional Continuation", "description": "This attribute allows to continue a previously executed simulation at the given tick", "type": "integer", "default": "initialTick" }, "scheduleIntervals": { "title": "Scheduled Simulation Intervals", "description": "The intervals are executed in the listed order and must not overlap.", "type": "array", "items": { "type": "object", "properties": { "startTick": { "title": "Start Tick of the Interval", "type": "integer", "default": "Previous endTick + 1 or 0" }, "endTick": { "title": "End Tick of the Interval", "anyOf": [ { "type": "integer" }, { "enum": [ "Infinity" ] } ], "default": "Infinity" }, "tickDuration": { "title": "Time Duration per Tick of the Interval", "type": "string", "format": "duration" } }, "required": [ "tickDuration" ] }, "minItems": 1 } }, "required": [ "initialTime", "endTime", "scheduleIntervals" ] }