# Bone Flow #121 Timeline Specification v1.0

Status: Development Candidate
Formal source: `000-Development-Order_v1.1.1.md`
Runtime: BoneTimeline 1.0.0

## Responsibility
#121 orchestrates multiple Motion items on a time axis.

Formal operations:
1. Delay
2. Duration
3. Loop
4. Repeat
5. Sequence
6. Parallel

## Boundary
#121 is post-start timing management. It does not own the absolute start condition. Schedule starts may come from #021 Shape TIME JOB / SCHEDULE_TRIGGER; event starts may come from #120 Trigger. #121 also does not own KeyFrame values (#122) or single-animation behavior (#117), and it is separate from #054 Display Timeline.

The #121 test UI shows the two upstream start-source relationships as normal #002 Joint connections only. It does not add missing-field or type-mismatch variants for #021 / #120.

## Candidate Runtime properties
- `mode`: `sequence` | `parallel`
- `delayMs`: integer 0..600000
- `durationMs`: integer 0..600000
- `loop`: boolean
- `repeat`: integer 1..1000
- `items`: ordered Motion schedule items

Each item:
- `id`: unique non-empty string
- `label`: display label
- `enabled`: boolean
- `delayMs`: integer 0..600000
- `durationMs`: integer 0..600000

These API/property details remain Development until user localhost verification.

## Connection Image / #002 Joint
The test page must contain a dedicated Connection Image section independent from Security. It follows the #017 Text presentation: one normal IN/OUT case plus Target Field missing (IN/OUT) and type mismatch (IN/OUT), for five cards total. All lines and abnormal markers are produced through the formal BoneJoint 1.1.36 drawing API; no fake CSS/SVG marker is allowed.

## OUT WAIT / BLOCKED presentation
The page uses one wide formal Delivery Channel card, not separate WAIT and BLOCKED cards. Visible state fields are exactly Joint State / Target / Queue / Delivered. Operations are WAIT/FIFO, BLOCKED, and Reset, followed by one log and two visual-confirmation checkboxes.

## Security
Options must be plain data objects. Accessor/getter properties are rejected without executing the accessor. Invalid mode, negative/overflow duration/delay, invalid repeat, and duplicate item ids are rejected.

## #002 Joint
WAIT/FIFO/BLOCKED are not implemented by Timeline. The #121 test page uses the installed BoneJoint 1.1.36 `createDeliveryChannel()` and `drawLine()` APIs directly.

## Completion
Smoke and Validation must pass and the user must visually confirm the Timeline and formal #002 Joint behavior. Package-local test success alone is not Completion.
