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 → BevFacts —
foodlang compile drink.food --target bevfactsemits the label object (calories, macros, added sugars, caffeine, %DV, serving size). Or paste the raw.fooddrink 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
.foodrecipe, 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 |