Modules Documentation
Validation rules
Required fields, formats, ranges.
Complete
Editorial validation gates publication. Every article passes editorial review + a typed schema check before going live. The platform refuses to render an article missing a required field.
Schema-level validation
- All required fields present (id, slug, type, title, dek, bodyHtml, topic, author, publishedAt, readingTimeMinutes).
- Both EN and AR populated on every Bilingual field. AR may not be a verbatim translation of EN — it must be authored.
- `slug` matches `^[a-z0-9-]+$` and starts with a date prefix (YYYY-MM-DD-).
- `publishedAt` is a valid ISO date <= current date.
- `readingTimeMinutes` is an integer between 1 and 60.
Editorial review gates
- Fact verification — every named entity exists in its module data (no phantom founders / startups / events).
- Mention discipline — if the article names a founder / startup / event / opportunity, the corresponding `mentionedXxxIds[]` array is populated.
- AR review — a native Arabic editor signs off the AR version. Auto-translation is a defect, not a workflow.
- Source verification for any external claim — sources named where editorial wisdom allows.
- SEO check — SEO title + meta description authored (not auto-derived from the title field).
