• Persist and arm a recurring schedule for actionName on doc — both halves of sohl.core.logic.SohlSystem.schedule. Writes the whole system.scheduledActions array (the durable record) and arms the queue (the live entry), both anchored at now.

    Parameters

    • doc: Schedulable

      The document to schedule on.

    • queue: SohlEventQueue

      The event queue to arm.

    • actionName: string

      The action to run on the document's logic when due.

    • interval: number

      Seconds until the next fire.

    • payload: undefined | Record<string, unknown>

      Opaque scope handed to the action on [Perform].

    • now: number

      The current world time (the schedule anchor).

    • OptionalsceneUuid: string

      The scene the schedule is bound to (issue #590); offered only while that scene is active. Omit for a world-wide schedule.

    • OptionaltriggerName: string

      The lifecycle trigger to bind to (issue #622). Omitted or "updateWorldTime" ⇒ a time-based schedule at now + interval (the default); any other value ⇒ an event-driven subscription (interval unused).

    • Optionalpredicate: string

      Optional sohl.entity.expr.SafeExpression source gating an event-driven schedule (issue #569); ignored for a time schedule.

    Returns Promise<void>