# Story 1.3: Module Progress Update API key: 1-3-module-progress-update-api status: drafted phase: backend-planning note: Non-implementasi — kontrak & aturan idempotency saja. ## Ringkasan Endpoint untuk mencatat progres belajar pengguna pada modul. ## Scope Backend - Payload: { userId, moduleId, progressDelta, source } - Idempotency key: header `Idempotency-Key` - Persistence: aturan update (capped 0..100) ## Acceptance Gate - Skema progres disetujui - Idempotency & audit logging dibahas ## Kontrak (Outline) - Route: POST /api/progress/module - Request: ``` { "userId":"u1", "moduleId":"m1", "progressDelta":10, "source":"lesson-view" } ``` - Response: 200 ``` { "moduleId":"m1", "totalProgress": 40 } ```