# LMCode Example — Host Context Objects, Operators, Conversions & @Rule Entries const DISCOUNT_CENTS = 200; prog = _lmcode_ schema="host.schema.json"; let items = qw(keyboard monitor cable); let prices = %(keyboard => 12000, monitor => 35000, cable => 1500); @vip fn apply_vip_discount(m: Money, qty: int) -> Money implements Adjuster { let out = m; if (qty >= 2) { out = m - ${DISCOUNT_CENTS}; } return out; } @points fn loyalty_score(m: Money) -> int implements Score { return m.cents() / 100; } for (item in items) { let p = money(prices.get(item)); shop.add(item, p); } ledger.record(shop.total()); lmcode_return_put("currency", str(Currency.USD)); lmcode_return_put("items", items.len()); end _lmcode_ println("Compiled shop-rules block cleanly (type=" + type(prog) + ")");