🍳 Foodlangalpha

Targets

Every target compiles from either .food or .food.yaml — equivalent recipes produce equivalent output. Machine/execution targets compile through an internal S88-inspired execution plan; data/web targets compile directly from the recipe AST.

foodlang compile examples/ethiopia-pourover.food  --target s88
foodlang compile examples/ethiopia-pourover.food.yaml --target s88   # identical

Honesty & confidence

Some targets are verified outputs, some are mappings, some are profile-inspired exports, and some are illustrative templates. Each output declares it and emits warnings where appropriate. Run foodlang targets to list everything.

Confidence Meaning
executable a directly usable artifact / canonical data
mapping exportable mapping data, not live execution
profile a device-profile mapping, not a verified native import
illustrative an educational template / planner-adjacent

Core

json, orf, yaml, kdl, cooklang, schema-org — the recipe and data views. orf/yaml emit ORF-compatible YAML; kdl emits the cute authoring format; json emits the normalized AST.

Execution / Process

foodx (portable .foodx.yaml plan), food-exec (internal execution plan), s88 (ISA-88 batch procedure), batchml (XML), packml, opcua-packml, iec61131-sfc, iec61131-st. These route through the execution plan — see Execution IR.

OPC UA / Food & Beverage

opcua-commercial-kitchen, opcua-coffee, opcua-weihenstephan. Mapping payloads; node IDs are vendor-specific.

Coffee / Brewing

coffee-mqtt, appliance-program, pourover-profile, pourover-recipe, brew-guide, espresso-flow-profile, espresso-phase-profile, espresso-controller-profile, espresso-stage-profile, brewspec, beanconqueror, craftbeerpi, beerjson, beerxml. Espresso-profile targets (espresso-flow-profile, espresso-phase-profile, espresso-controller-profile, espresso-stage-profile) prefer recipes with an espresso_profile; pour-over targets prefer a brew_profile.

Nutrition & Labeling

bevfacts — an FDA-style beverage Nutrition Facts label (21 CFR 101.9), estimated from the drink's ingredients: calories, fats, cholesterol, sodium, carbohydrate / fiber / sugars / added sugars, protein, caffeine, and each value's % Daily Value. Pairs with the Foodlang import / export panel on BevFacts, where a .food recipe round-trips with a printable label. Values are ingredient estimates, not lab-verified — the output says so. See Foodlang ⇄ BevFacts.

foodlang compile examples/iced-vanilla-latte.food --target bevfacts

Foodlang ⇄ BevFacts

BevFacts is a beverage Nutrition Facts label generator that is integrated with Foodlang and ORF. The two directions:

  • Foodlang → BevFactsfoodlang compile drink.food --target bevfacts emits the label object (calories, macros, added sugars, caffeine, %DV, serving size). Or paste the raw .food drink into the Foodlang panel on bevfacts.com to auto-fill and render the label.
  • BevFacts → Foodlang — BevFacts can export a drink back out as a .food recipe, so a label and a recipe stay in sync.

The bevfacts target reads the ingredient list and estimates each nutrient from a small beverage table (whole milk, flavored syrups, coffee caffeine, etc.). It is honest that the numbers are estimates: the output follows the FDA Nutrition Facts style, but does not by itself make a label legally compliant.

Robot / Planning

robot-action-graph, pddl, foon, ltl, knowrob. Planner-adjacent; robot skills must be mapped per target before execution.

Distribution & QR

qr — a compact, self-identifying Foodlang payload meant to be encoded into a QR code (rendered by qrpuppy.com) and printed on packaging, menus, or a machine display. It is the recipe's own .food KDL, minified, with a leading // foodlang/1 marker. A machine scans it and, if it speaks Foodlang, parses and runs the recipe directly — see Recipes as QR Codes.

foodlang compile examples/iced-vanilla-latte.food --target qr

The payload stays valid, executable strict KDL, so it re-parses byte-for-byte on the other side. A full recipe fits inside a single QR (typically ~version 13).

Compatibility matrix

Target Best for Output kind
orf / yaml official structured recipe executable
kdl cute authoring executable
cooklang human recipe text mapping
schema-org web publishing / SEO mapping
foodx / food-exec portable execution plan executable
s88 / batchml / packml industrial batch / process mapping
iec61131-sfc / -st PLC control templates illustrative
opcua-* machine parameter mapping mapping
bevfacts nutrition-facts label (BevFacts) mapping
qr scannable recipe for Foodlang machines executable
coffee-mqtt DIY / Home Assistant mapping
appliance-program smart appliances mapping
espresso-flow-profile / -phase / -stage / -controller espresso profiles profile
pourover-profile / pourover-recipe / brew-guide pour-over / brew profiles profile
robot-action-graph / pddl / foon / ltl / knowrob robot planning mapping / illustrative