Modules Documentation
Validation rules
Required fields, formats, ranges.
Complete
Every opportunity passes 5 verification gates before entering the Radar. The verification IS what makes the directory trustworthy enough to drive Apply clicks. Editor verification is recorded and re-verified periodically.
Schema-level validation
- All required fields present + correctly typed.
- `slug` matches `^[a-z0-9-]+$` and is unique.
- `typeSlug`, `region`, `format`, `cost` all use valid enum values.
- `countryCode` is ISO-2 of a MENA country or matches `region`.
- `applicationUrl` is a valid HTTPS URL.
- `content.en` AND `content.ar` both populated. AR is authored, not auto-translated.
- `deadlineAt` is in the future at publish time (or NULL for rolling).
The 5 editorial verification gates
- Organizer exists + is legitimate — The organizer (accelerator / foundation / sandbox / etc) is verifiably a real organization in its declared country. No scam programs.
- Application URL is live — Editor opens the applicationUrl and confirms it leads to a real application form with the organizer’s identity.
- Eligibility matches reality — Sector / stage / country eligibility on the platform matches what the organizer’s page says. No exaggerated reach.
- Benefits are documented — Cash, equity, mentorship, workspace, network claims are documented in the organizer’s materials. No invented amounts.
- Deadline is current — deadlineAt matches what the organizer’s page says, not a stale date from a prior cycle.
Re-verification cadence
Editors re-verify each opportunity at least once between publishedAt and deadlineAt. `lastVerifiedAt` is bumped on each re-check. Opportunities un-verified for >30 days get flagged in the admin dashboard.
