# Story 1.4: Assignment Submission Persist

key: 1-4-assignment-submission-persist
status: drafted
phase: backend-planning
note: Non-implementasi — definisi metadata & audit trail.

## Ringkasan
Draft kontrak penyimpanan submission tugas.

## Scope Backend
- Payload: { userId, assignmentId, submittedAt, contentRef, metadata }
- Storage: metadata & referensi konten (file/cloud)
- Audit: who/when, immutable log

## Acceptance Gate
- Keamanan & privasi diluluskan
- Audit & retention policy disetujui

## Kontrak (Outline)
- Route: POST /api/assignments/{assignmentId}/submit
- Response: 201
```
{ "submissionId":"s1", "status":"received", "submittedAt":"..." }
```