Skip to content

Pattern algebra and the reactive contract #94

Description

@l2hyunwoo

Goal

Make compiled patterns first-class values (transform, combine, embed) and write down the reactive contract callers can rely on. Together these enable:

Jindong(speed) {
    Clip(heartbeat.timeStretch(1f / speed))
}

A state change reshapes the timeline; there is no imperative replay call anywhere.

Work items, in dependency order

Spun out along the way: #93 (execute/executeAsync overlap), #89 (keyless reactive patterns, post-R1).

Gate

Everything builds on the serial-timeline pipeline in #85, which merges first: reversed() and then can produce overlapping events, and #85 is what serializes overlaps at playback.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions