# LDC-E8205 — Placeholder names no relation parameter ## What it means Every placeholder in a predicate template must name one of the parameters of the relation the label belongs to. A placeholder that names nothing — a typo, a renamed parameter, or a word from a different relation — leaves a hole the engine cannot fill, so the compiler stops at the template and lists the parameters that are actually available. Renaming the placeholder to one of the listed parameters is the whole fix; the surrounding sentence never needs to change. ## Example ```law language "law.core" version "0.2"; package demo.diag version "0.1.0"; namespace "urn:law:demo:diag"; entity C { label ru-KZ official "C"; } relation r(a: C, b: C) kind empirical { label ru-KZ official "r" { template "{a} {b} {c}"; } } ``` ## Fix ```law language "law.core" version "0.2"; package demo.diag version "0.1.0"; namespace "urn:law:demo:diag"; entity C { label ru-KZ official "C"; } relation r(a: C, b: C) kind empirical { label ru-KZ official "r" { template "{a} and {b}"; } } ``` ## Engine message The engine reports this in its own wording: ```text example.law:7:32: error LDC-E8205: placeholder {c} names no relation parameter; parameters: a, b (§218.2) ``` ## Related - [Vocabulary](/constructs/vocabulary/) — how names are declared and which positions take them.