package com.correx.core.events.events

import com.correx.core.events.types.SessionId
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

/**
 * The freeform user request that kicked off a workflow run (e.g. "add an auth layer to the
 * account service"). Recorded once at session start so it flows into the decision journal and
 * is pinned into every stage's context — the input channel for intent-driven pipelines.
 * Optional: fixed-task workflows (e.g. healthcheck) start without one.
 */
@Serializable
@SerialName("InitialIntent")
data class InitialIntentEvent(
    val sessionId: SessionId,
    val intent: String,
) : EventPayload
