# 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":"..." }
```