[scheduler]
    allow implicit tasks = True
[scheduling]
    initial cycle point = 1
    final cycle point = +P15  # = 16
    runahead limit = P11
    cycling mode = integer
    [[special tasks]]
        sequential = seq
    [[graph]]
        R1 = wibble
        R1/+P6 = wibble[^] => wobble
        R1/P0 = wobble[^+P6] => wubble
        P3 = """
            seq => foo        # sequential task
            foo[-P3] => foo   # prev instance trigger
            foo => bar        # plain trigger
            woo[+P1] => foo   # prev cycle
            woo[+P1] => bar
            woo[-P1] => foo   # next cycle
            foo[-P3]:out1 => on_toast  # message outputs
        """
        +P1/P3 = woo
        R/+P2/P3 = woo
        R/7/P6 = foo[-P3] => qux       # every second cycle
        R1/$ = baz
        R/P4!8 = ning
        R/P4!(4,12) = quux    # Multiple exclusion points
        R1/^ = nang
        R/+P1/P6!14 = nong
[runtime]
    [[root]]
        script = true
    [[foo]]
        script = """
            cylc__job__wait_cylc_message_started
            cylc message -- "${CYLC_WORKFLOW_ID}" "${CYLC_TASK_JOB}" "the cheese is ready"
        """
        [[[outputs]]]
            out1 = "the cheese is ready"
