Skip to content

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).

type stopParamsKey
Defines stop properties and behaviour.
customer contractCustomerKey default null
Customer identifier; inherited from the parent if null.
delayFactor real default 1.0
Local multiplier for calculated delay costs.
noSolnFactor real default 1.0
Consult Honeywick for details.
state INIT | 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).
did deskId
Desk assignment; 0 triggers recalculation.
rid resourceId
Resource assignment; 0 triggers recalculation; null assigns no resource.
dep time
Deployment time; triggers resequencing if conflicts exist.
arv time
Arrival time; triggers resequencing if conflicts exist.
fin time
Finish time.
at location
Stop location.
earliest time
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.
latest time
Latest acceptable start. For a break stop left unconstrained, the end of the contract's break window (see breakObject).
lock bool default false
Prevents Spiral from rescheduling.
hold bool default false
Prevents deployment; planning continues; the host can update state.
areaExempt bool default false
Exempts from working-area restrictions.
minLeaveIn timeInterval
Minimum time from now until stop completion.
option skillOption
The service options (required skills) for this stop; null means any capable resource qualifies.
exclude resourceId
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.
only resourceId
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.
to stopObject
Sequential delivery stop; null options reverse the parent action.
and stopObject
Unrelated concurrent activity.
with stopObject
Concurrent activity at the same time.
then stopObject
Sequential follow-up activity.
asset stopObject
Collects resource skills; releases them at the delivery stop.

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,
}
id integer
Unique identifier for the stop, assigned by Spiral.
after integer
The id of the preceding stop in the resource’s schedule; null at the start.
tvl timeInterval
Travel time to reach this stop.
dst distance
Travel distance to reach this stop.
fullTvl timeInterval
Total travel time including any reverse / return legs.
fullDst distance
Total travel distance including any reverse / return legs.
cbt time
Commit-by time — the latest time the stop can remain uncommitted.
rndvz integer
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.
solnTier string
The solution tier attached to this stop’s current solution.
voluntary bool
True when the stop is currently in a voluntary solution for its allocated resource (output-only; indicates a contractual refusal option).
surgeZone integer
The id of the surge zone affecting this stop, or null.
loc object
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.
hub integer
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.
info string
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)”.