Sharpee
Chord / Flow & Progression / Sequences

Sequences

A define sequence is a scripted timeline: a named list of steps, each anchored to when it fires and carrying a body of ordinary statements. It replaces the hand-rolled turn-counting daemons of the old platform with one declarative block. There are three anchor forms, and this story uses all three across three sequences.

The first two anchors are clock-based. at turn N fires at an absolute turn counted from the story's start; N turns later fires relative to the previous step, so you can chain a timeline without arithmetic:

define sequence gathering storm
  at turn 2
    phrase storm-distant
      Thunder mutters somewhere beyond the wall.
  3 turns later
    phrase storm-near
      The light goes pewter, and the first fat drops crater the dust.
  2 turns later
    phrase storm-breaks
      The storm breaks all at once, rain hammering the gravel.
    change the story to raining
end sequence

The steps here land on turns 2, 5, and 7. A step body is ordinary statements: the last step both speaks and moves the story into its raining state.

The third anchor is state-based. when <name> becomes <state> fires the step when that owner transitions into the named state: the story itself, or any entity. This lets one sequence react to another's effect. The storm above moved the story to raining; a second sequence waits on exactly that:

define sequence take shelter
  when the story becomes raining
    phrase shelter-note
      Anywhere with a roof suddenly seems like a very good idea.
end sequence

The same anchor works on an entity's own states. When the bonfire is lit and changes to burning, a third sequence notices:

define sequence smoke drifts
  when the bonfire becomes burning
    phrase smoke-note
      A ribbon of blue smoke begins to drift across the garden.
end sequence

A sequence name may be several words (gathering storm, take shelter), and the block always closes with an explicit end sequence. Within a step, prose indented under a phrase line is declare-and-emit text, which is why these steps need no separate define phrases block.