# 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.