DMN
DMN 1.4 decision requirement diagrams and decision tables, with every hit policy and — the point of the engine — a real check of the table's input space: which rules can both fire, and which inputs no rule answers. A column with no declared domain is reported as undecidable rather than quietly assumed complete.

In the same space
Most users come to DMN from Camunda Modeler (DMN), Signavio Decision Manager, Trisotech Decision Modeler or Drools Workbench. flowss runs this engine in the browser — no install, shareable via URL, exportable to PNG / SVG / PDF / source.
Syntax at a glance
decision Risk "Risk category" {
hit U
input Age number [18..120]
output Band enum { Low, High }
rule [18..30) -> High
rule [30..120] -> Low
}Paste this in the Studio code pane to see DMN render live. The full grammar is at the upstream-docs link above.
Sample templates
All 11 →The canonical worked example: a decision requirement diagram feeding a UNIQUE-hit table whose rules cover the whole declared input space exactly once. Copy this one — it is the shape a decision table is supposed to have, and the engine reports it as complete because it is, not because nothing was checked.
Two enumerated columns and one numeric one, covered completely. The pattern worth learning is the declared domain: weight is bounded [0..30] and destination is enumerated, so 'complete' means something — without the declaration the checker could only say it did not know.
The hit policy that changes what an overlap means. Under COLLECT-sum, two rules firing together is the design rather than a contradiction, so overlaps are counted and reported as intended rather than accused — which is the distinction almost every decision-table tool gets wrong.
A FIRST-hit table, where rule order carries meaning and later rules are deliberately shadowed by earlier ones. Written this way on purpose: under FIRST an overlap is not a defect, and a checker that flagged it would be reporting the notation working as designed.
The classic impact-by-urgency matrix, written as a DMN table with an explicit PRIORITY hit policy so the output order decides which of several matching rules wins. Complete over both enumerated columns, so every incident that can be described gets a priority.
The structural half of DMN on its own: decisions, input data, business knowledge models and knowledge sources, with the requirement kind derived from what sits at each end rather than spelled out a second time. The engine reports each decision as having no table, which is correct and is the point — this is the diagram DMN work starts from, and those findings are the list of tables still to write.
dmn · ← Browse all engines · Quick-start guide