Everything sent to Spiral travels in one stream of input objects.
Each input object carries one or more commands; Spiral processes them in the order they arrive. The
commands fall into three natural groups: schedule data (the entities being optimised),
configuration (the model and run settings they are optimised against), and stream control
(synchronisation and testing).
| Command | Purpose |
|---|
add | Add a schedule object — a resource, project, response point or desk — into Spiral. |
update | Update an existing schedule object. Spiral re-optimises around the change. |
coerce | Update a schedule object while temporarily forcing specific assignments (a manual override); Spiral answers with its costed alternatives, then returns to optimised positions. |
delete | Remove a schedule object, addressed by its id alone. |
| Command | Purpose |
|---|
define | Establish reference data — a define object (stop, resource, customer and contract parameters, topography). Submit before the schedule objects that use it. |
set | Configure run properties — a set object affecting the current Spiral run (time, resolution, scheduling). |
include | Switch the input source to a parameter or licence file — an include object — then resume the normal stream. |
| Command | Purpose |
|---|
tag | An integer echoed back by Spiral once everything before it has been processed — the synchronisation point between Spiral and the host system (see the input object). |
pause | Hold processing until stated conditions are met — a pause object, primarily a test-script tool. |
check | Assert that schedule-object properties match the given values — a test success criterion. |
refute | Assert that schedule-object properties do not match the given values. |
comment | A free-text string for documenting test scripts; ignored by processing. |
A typical session opens with include (licence, domain and map files), define and set commands,
then streams the starting position as add commands, and finally flows live changes as
add/update/coerce/delete — each batch closed by a tag so the host knows when Spiral has
caught up. The results come back on the output stream.