stopObject
A stop represents an activity to be serviced by a resource or outsourced. Stops are the core of Spiral’s scheduling model; their costs are determined by resource deployment and service-quality metrics. Attribute names and types are links.
The fields below are grouped into the input attributes (supplied to Spiral) and the
output / runtime attributes Spiral reports back for each stop — including its identity (id) and
its position within the resource’s schedule as a doubly-linked list (after → this stop → next).
Attributes
Section titled “Attributes”{
"delayFactor": <real>,
"noSolnFactor": <real>,
"state": INIT | PLAN | DPLY | HEAD | CMTD | ARVD | DONE,
"lock": <bool>,
"hold": <bool>,
"areaExempt": <bool>,
}
-
typestopParamsKey - Defines stop properties and behaviour.
-
customercontractCustomerKeydefaultnull - Customer identifier; inherited from the parent if null.
-
delayFactorrealdefault1.0 - Local multiplier for calculated delay costs.
-
noSolnFactorrealdefault1.0 - Consult Honeywick for details.
-
stateINIT | PLAN | DPLY | HEAD | CMTD | ARVD | DONE - Current stop state (settable input states). OSRC is an output-only state. On output, null means Spiral is not using the stop (an unused handover leg, say).
-
diddeskId - Desk assignment; 0 triggers recalculation.
-
ridresourceId - Resource assignment; 0 triggers recalculation; null assigns no resource.
-
deptime - Deployment time; triggers resequencing if conflicts exist.
-
arvtime - Arrival time; triggers resequencing if conflicts exist.
-
fintime - Finish time.
-
atlocation - Stop location.
-
earliesttime - Earliest possible start (respects parent constraints). A break stop left unconstrained takes it from the contract's break window, and the output shows the value Spiral is working to.
-
latesttime - Latest acceptable start. For a break stop left unconstrained, the end of the contract's break window (see breakObject).
-
lockbooldefaultfalse - Prevents Spiral from rescheduling.
-
holdbooldefaultfalse - Prevents deployment; planning continues; the host can update state.
-
areaExemptbooldefaultfalse - Exempts from working-area restrictions.
-
minLeaveIntimeInterval - Minimum time from now until stop completion.
-
optionskillOption - The service options (required skills) for this stop; null means any capable resource qualifies.
-
excluderesourceId - Resources prohibited from assignment. A null member is the null resource — no resource at all — and is valid here. null and [] are synonymous for the list itself. Helix edits it in the stop editor (Exclude): + picks a resource on the map or in the list, ∅ adds the null resource.
-
onlyresourceId - Resources exclusively eligible for assignment. A null member is the null resource — no resource at all — and is valid here. null and [] are synonymous for the list itself. Helix edits it in the stop editor (Only): + picks a resource on the map or in the list, ∅ adds the null resource.
-
tostopObject - Sequential delivery stop; null options reverse the parent action.
-
andstopObject - Unrelated concurrent activity.
-
withstopObject - Concurrent activity at the same time.
-
thenstopObject - Sequential follow-up activity.
-
assetstopObject - Collects resource skills; releases them at the delivery stop.
Schedule / output fields
Section titled “Schedule / output fields”Reported by Spiral on each stop in the output stream (and read back from a resource’s schedule). The
id, after and next fields define the stop’s identity and its order within the resource’s plan.
{
"id": <integer>,
"after": <integer> | null,
"next": <integer> | null,
"rndvz": <integer> | null,
"solnTier": <string> | null,
"voluntary": <bool> | null,
"surgeZone": <integer> | null,
"loc": object | null,
"hub": <integer> | null,
"info": [string] | null,
}
-
idinteger - Unique identifier for the stop, assigned by Spiral.
-
afterinteger - The id of the preceding stop in the resource’s schedule; null at the start.
-
nextinteger - The id of the following stop in the resource’s schedule; null at the end.
-
tvltimeInterval - Travel time to reach this stop.
-
dstdistance - Travel distance to reach this stop.
-
fullTvltimeInterval - Total travel time including any reverse / return legs.
-
fullDstdistance - Total travel distance including any reverse / return legs.
-
cbttime - Commit-by time — the latest time the stop can remain uncommitted.
-
rndvzinteger - The rid of a resource that will arrive at the same location and time to facilitate this stop’s delivery (a rendezvous); null when none is planned.
-
solnTierstring - The solution tier attached to this stop’s current solution.
-
voluntarybool - True when the stop is currently in a voluntary solution for its allocated resource (output-only; indicates a contractual refusal option).
-
surgeZoneinteger - The id of the surge zone affecting this stop, or null.
-
locobject - Output-only — where Spiral has put the stop: the LOCATION ENVELOPE { at, hid, addr }, filled by Spiral (2.5.x emits the output location only here): the coordinate, the staging hub's id when the leg is staged, and the location's address object (client-proprietary, read via the helix.addr doors — carried so a consumer needs no hub awareness). Definitively authored on output: any member change emits the complete envelope and OMISSION OF A MEMBER IS A DELETION. Legacy worlds carry a bare coordinate array here.
-
hubinteger - LEGACY — early Spiral 2.5 builds stamped the staging hub's id here. It is now `loc.hid`, beside the hub's address in `loc.addr`; Helix reads this field only on a record with no `loc` envelope.
-
infostring - Output-only — Spiral’s alerts about the stop in its current position: an array of illegalReason codes (e.g. ["CURRENT_AREA"], ["VOLUNTARY_OFFER_TOO_LATE"]), null when there is nothing to say. Not debug-dependent; a bare string is read as one code. Helix shows them as an amber indicator — see stopParams “Spiral’s alerts (info)”.