# Story 2.1: Exam Session Create API key: 2-1-exam-session-create-api status: drafted phase: backend-planning note: Non-implementasi — definisi kontrak & lifecycle. ## Ringkasan Kontrak pembuatan sesi ujian. ## Scope Backend - Payload: { userId, examId, startTime } - Lifecycle: created -> in-progress -> completed/cancelled ## Acceptance Gate - Model sesi ujian & validasi disetujui - Akses kontrol & rate limit dibahas ## Kontrak (Outline) - Route: POST /api/exam-session - Response: 201 ``` { "sessionId":"es1", "status":"created", "startTime":"..." } ```