# LDC-E1341 — Expansion list over budget ## What it means Expansion is bounded: a single list argument carries at most thirty-two items, and likewise capped are the case variants, the premises, and the generated nodes. Beyond the budget the template would unfold into more law than a reader can review, so the compiler stops at the oversized argument. The repair is to shrink the input: split the instance, or move the enumeration into several smaller lists. Within budget the instance expands exactly as written. ## Example ```law language "law.core" version "0.2"; package demo.diagnostics version "0.1.0"; namespace "urn:law:demo:diagnostics"; entity Person; entity Choice; entity SpecialChoice : Choice; entity Other; const Selected: SpecialChoice = entity_ref("urn:choice:selected"); const Wrong: Other = entity_ref("urn:choice:wrong"); relation f01(p: Person) kind empirical; relation f02(p: Person) kind empirical; relation f03(p: Person) kind empirical; relation f04(p: Person) kind empirical; relation f05(p: Person) kind empirical; relation f06(p: Person) kind empirical; relation f07(p: Person) kind empirical; relation f08(p: Person) kind empirical; relation f09(p: Person) kind empirical; relation f10(p: Person) kind empirical; relation f11(p: Person) kind empirical; relation f12(p: Person) kind empirical; relation f13(p: Person) kind empirical; relation f14(p: Person) kind empirical; relation f15(p: Person) kind empirical; relation f16(p: Person) kind empirical; relation f17(p: Person) kind empirical; relation f18(p: Person) kind empirical; relation f19(p: Person) kind empirical; relation f20(p: Person) kind empirical; relation f21(p: Person) kind empirical; relation f22(p: Person) kind empirical; relation f23(p: Person) kind empirical; relation f24(p: Person) kind empirical; relation f25(p: Person) kind empirical; relation f26(p: Person) kind empirical; relation f27(p: Person) kind empirical; relation f28(p: Person) kind empirical; relation f29(p: Person) kind empirical; relation f30(p: Person) kind empirical; relation f31(p: Person) kind empirical; relation f32(p: Person) kind empirical; relation f33(p: Person) kind empirical; relation eligible(p: Person, choice: Choice) kind empirical; relation applicable(p: Person, choice: Choice) kind institutional; expansion fixed { params { subject: binder; choice: value; flags: list min 0; ground: relation(subject, choice); result: relation(subject, choice); } emit rule self/result defeasible { for subject; when ground(subject, choice); then result(subject, choice); scope from self; effective from self; labels from self; source from self; } } expand fixed Result { label en official "Fixed option"; bind subject = person: Person; choice = Selected; ground = eligible; flags = [f01, f02, f03, f04, f05, f06, f07, f08, f09, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33]; result = applicable; effective [@2026-01-01, @2027-01-01); } ``` ## Fix ```law language "law.core" version "0.2"; package demo.diagnostics version "0.1.0"; namespace "urn:law:demo:diagnostics"; entity Person; entity Choice; entity SpecialChoice : Choice; entity Other; const Selected: SpecialChoice = entity_ref("urn:choice:selected"); const Wrong: Other = entity_ref("urn:choice:wrong"); relation f01(p: Person) kind empirical; relation f02(p: Person) kind empirical; relation f03(p: Person) kind empirical; relation eligible(p: Person, choice: Choice) kind empirical; relation applicable(p: Person, choice: Choice) kind institutional; expansion fixed { params { subject: binder; choice: value; flags: list min 0; ground: relation(subject, choice); result: relation(subject, choice); } emit rule self/result defeasible { for subject; when ground(subject, choice); then result(subject, choice); scope from self; effective from self; labels from self; source from self; } } expand fixed Result { label en official "Fixed option"; bind subject = person: Person; choice = Selected; ground = eligible; flags = [f01, f02, f03]; result = applicable; effective [@2026-01-01, @2027-01-01); } ``` ## Engine message The engine reports this in its own wording: ```text example.law:60:5: error LDC-E1341: expand Result: list "flags" is longer than 32 ``` ## Related - [LDC-E1337](/diagnostics/LDC-E1337/) — the instance must honor the definition contract. - [Priority](/constructs/priority/) — edges over the rules expansion emits.