Severity
Every field change in a ModifiedChange has a severity of breaking, non-breaking, or cosmetic.
Breaking
Changes that break compatibility with code that consumes the DMN model programmatically (e.g., a rule engine that calls decisions by name, or code that reads outputs by name).
Examples:
decision.@name— callers reference decisions by nameoutputClause.@name— output columns are accessed by nameinputData.@name— data input variables are referenced by nameitemDefinition.@typeRef/@isCollection— type contract changesfunctionDefinition.@kind— changes the expression executor (FEEL → Java → PMML)iterator.@iteratorVariable— renaming a loop variable breaks FEEL references
Non-breaking
Changes that affect behavior but do not break the structural contract. Consumers may need to re-test, but the interface is unchanged.
Examples:
inputEntry.text— rule condition changedoutputEntry.text— rule output changeddecisionTable.@hitPolicy— evaluation semantics changeditemDefinition.allowedValues.text— validation constraint tightened/loosenedinformationRequirement— data flow changed
Cosmetic
Changes that are purely visual and do not affect execution or the programmatic interface.
Examples:
*.@label— display label (distinct from@name)*.@description— documentation texttextAnnotation.text— diagram annotationannotationEntry.text— rule annotation columngroup.@name— visual grouping labeldecisionTable.@preferredOrientation— diagram rendering hint
