schedule
Schedules command to be sent to target, this aggregate by default, as rule says: at an instant, after a delay counted from this commit, or by a cron expression. key names the schedule within this aggregate: scheduling a key again replaces it (a reschedule, or a new rule), and cancelSchedule cancels it. Within one decision the last call for a key wins.
The schedule commits with this command's events (as the system event wow.ScheduleSet), or not at all. Each time it is due the command is sent at least once, not before its time, possibly a little later (after a handover or a backlog), and decided once: its request id is the timer's id and the slot (ScheduleContext, which the target reads from Command.schedule). The target decides it on its state then; a rejection is a normal guard, not a failure. Its scope is this commit's, its causation this commit. A target of another context needs its context's Manifest.
Schedules command for this aggregate under key as rule says; see schedule of a target.