# Import package guide

Exams.fit uses one transactional ZIP importer for all learning content. Every ZIP contains `manifest.json` at its root and one JSON file per item in `items/`.

## Workflow

1. Download a blank template and AI instructions from Admin → Templates.
2. Generate original US-English content using the exact structure.
3. Keep new packages as `draft` and `noindex` until reviewed.
4. Upload the ZIP in Admin → Importer and choose Validate Only.
5. Correct every error, then import.
6. Review the created content and sitemap eligibility.

Modes are Create Only, Skip Existing, Update Existing and Replace Matching. Existing permanent URLs are preserved when updating. Every completed import records package entity and media snapshots and can be rolled back once.

Executable files, unsafe paths, thin bodies, invalid IDs, unsupported types, invalid meta lengths, incomplete practice questions, invalid MIME files and checksum mismatches are rejected. Owned/licensed PDFs and images can be included under `media/` and mapped to `uploads/pdf/` or `uploads/media/` in the manifest. PDF download and print permissions must be explicit and default to false.

Limits are 25 MB compressed at web upload, 100 MB uncompressed and 5,000 ZIP entries. Large editorial imports receive up to a 10-minute processing window when the host permits it. Keep the browser tab open and always validate before import.

Do not import copied exam papers, unauthorized PDFs, full RSS articles, fabricated updates or placeholder pages.
