
One primitive. Three fields. Every food interaction on earth.
A FoodBlock is a JSON object with three fields. Its identity is derived from its content. Same content, same hash. FoodBlocks are append-only. You never edit one. You create a new one that references the previous version.
Three entities and three actions. Subtypes use dot notation.
A person or organisation in the food system.
A physical location with coordinates.
An ingredient, product, or material.
Changing one thing into another.
Moving something between actors.
Making a statement about something.
Follow refs backwards from any FoodBlock to trace its full history. Provenance is inherited through the chain.
Bread (substance.product)
<- Baking (transform)
<- Dough (transform)
<- Flour <- Mill <- Certification
<- Water <- Location
<- Starter
<- 14 days of fermentationTrust is computed from the FoodBlock graph itself.
Autonomous agents are first-class actors in the FoodBlock protocol.