lemma-engine 0.10.2

A pure, declarative language for business rules.
Documentation
{
  "type": "rule",
  "name": "total",
  "result": "125.00 eur",
  "measure": {
    "eur": "125.00"
  },
  "body": "subtotal + fee",
  "causes": [{ "condition": "is_member", "value": "true" }],
  "children": [
    {
      "type": "data",
      "name": "subtotal",
      "result": "100.00 eur",
      "measure": { "eur": "100.00" }
    },
    { "type": "data_unused", "name": "discount" },
    {
      "type": "conversion",
      "expression": "fee_usd + subtotal",
      "steps": [
        { "role": "rule", "text": "1 usd is 0.91 eur" },
        { "role": "outcome", "text": "24.57 eur" }
      ],
      "operands": [
        {
          "type": "data",
          "name": "fee_usd",
          "result": "27.00 usd",
          "measure": { "usd": "27.00" }
        }
      ]
    },
    {
      "type": "compose",
      "operator": "multiply",
      "expression": "surcharge * multiplier",
      "operands": [{ "type": "veto", "message": "surcharge unavailable" }]
    },
    {
      "type": "filter",
      "condition": "enabled",
      "matched": 1,
      "total": 2,
      "children": [
        {
          "type": "row",
          "number": 2,
          "fields": [
            {
              "type": "rule_ref",
              "id": 0,
              "name": "cost",
              "result": "200.00 eur",
              "measure": { "eur": "200.00" }
            }
          ]
        }
      ]
    }
  ],
  "rules": [
    {
      "id": 0,
      "name": "cost",
      "result": "200.00 eur",
      "measure": { "eur": "200.00" },
      "body": "price * weight",
      "children": [
        {
          "type": "data",
          "name": "price",
          "result": "4.00 eur_per_kg",
          "measure": { "eur_per_kg": "4.00" }
        }
      ]
    }
  ]
}