# task-015

status:
- done

## goal
Add RouterResponseMessage data class (sessionId: SessionId, content: String, steeringEmitted: Boolean) as the egress protocol type for router responses.

## target artifact
apps/server/src/main/kotlin/com/correx/apps/server/protocol/ServerMessage.kt

## execution steps
- Add a new `@Serializable` nested data class `RouterResponseMessage` inside the `ServerMessage` sealed class in `ServerMessage.kt`, with fields: `sessionId: SessionId`, `content: String`, `steeringEmitted: Boolean`
- Ensure `SessionId` is already imported (it is — already present on line 6)
- No changes needed to `ProtocolSerializer.kt` — `encodeServerMessage` already uses polymorphic JSON encoding via the `classDiscriminator = "type"` config

## changed artifacts
- `apps/server/src/main/kotlin/com/correx/apps/server/protocol/ServerMessage.kt` — add `RouterResponseMessage` data class

## blockers
- None

## notes
- Depends on task-008 (RouterResponse model in core/router) — that task provides the domain type; this task adds the egress protocol message type.
- Non-goals: WebSocket handler logic (task-016), client message types (task-009).
- Follows the same sealed-nested-data-class pattern already used by all other `ServerMessage` variants.
