Schema
seed-data.json contract for the Tahor app.
Top-Level Structure
| Key | Type | Required | Description |
|---|---|---|---|
schemaVersion | integer | Yes | Schema version (currently 1) |
generatedAt | string | Yes | ISO 8601 timestamp |
ingredients | array | Yes | List of ingredient records |
kosherSymbols | array | Yes | List of Kosher certification symbols |
animals | array | Yes | List of clean/unclean animal references |
brands | array | No | List of brand records |
brandIngredientClaims | array | No | List of brand-ingredient trust claims |
Enums
CleanlinessStatus (Ingredient Status)
clean, unclean, questionable, levain
IngredientCategory
mammals, birds, fish, insects, dairy, additives, plantBased, alcohol, blood, enzymes, gelatin, unknown
AnimalCategory
mammal, bird, fish, insect, reptile
KosherReliability
trusted, mixed, controversial, N/A
TrustCategory (Brand Claims)
trusted, not_trusted, maybe
Entity Schemas
Ingredient
| Field | Type | Required | Description |
|---|---|---|---|
id | string (UUID) | Yes | Unique identifier |
name | string | Yes | Primary name |
aliases | string[] | Yes | Alternative names |
status | CleanlinessStatus | Yes | Clean/Unclean/Questionable/Levain |
category | IngredientCategory | Yes | Classification |
possibleSources | string[] | Yes | Potential sources (e.g., “pork”, “beef”) |
biblicalReference | string? | No | Bible verse citation |
notes | string? | No | Additional information |
searchKeywords | string[] | Yes | Search boost keywords |
updatedAt | string | Yes | ISO 8601 timestamp |
KosherSymbol
| Field | Type | Required | Description |
|---|---|---|---|
id | string (UUID) | Yes | Unique identifier |
symbolName | string | Yes | Short code (e.g., “OU”, “Star-K”) |
symbolDescription | string? | No | Full description |
hechsherUrl | string? | No | Certification body website |
reliability | KosherReliability | Yes | Trust level |
notes | string? | No | Additional information |
Animal
| Field | Type | Required | Description |
|---|---|---|---|
id | string (UUID) | Yes | Unique identifier |
name | string | Yes | Common name |
scientificName | string? | No | Scientific classification |
isClean | boolean | Yes | Clean status per Torah law |
biblicalReference | string? | No | Bible verse citation |
notes | string? | No | Additional information |
category | AnimalCategory | Yes | Biological category |
Brand
| Field | Type | Required | Description |
|---|---|---|---|
id | string (UUID) | Yes | Unique identifier |
name | string | Yes | Brand name |
websiteURL | string? | No | Brand website |
notes | string? | No | Additional information |
updatedAt | string | Yes | ISO 8601 timestamp |
BrandIngredientClaim
| Field | Type | Required | Description |
|---|---|---|---|
id | string (UUID) | Yes | Unique identifier |
brandId | string | Yes | Reference to brand.id |
ingredientId | string | Yes | Reference to ingredient.id |
trustCategory | TrustCategory | Yes | Trust verdict |
evidenceType | string | Yes | Type of evidence (e.g., “website”, “email”) |
evidenceURL | string? | No | Link to evidence |
evidenceComment | string? | No | Notes about the evidence |
updatedAt | string | Yes | ISO 8601 timestamp |
Cross-Reference Rules
- If
brandIngredientClaimsis provided,brandsmust also be present. - Every
brandIngredientClaims[].brandIdmust match an existingbrands[].id. - Every
brandIngredientClaims[].ingredientIdmust match an existingingredients[].id.
Schema File
The formal JSON Schema is at /schema/seed-data.schema.json.