Summary
IF sequence flows currently encode true/false branches only as enumeration-style case values with the strings true and false. That matches Mendix 9 storage but conflates IF branch cases with real enum split cases in mxcli's in-memory model.
Expected behavior
mxcli should distinguish IF branch cases from enum split cases internally, while still writing the storage representation expected by the target Mendix version.
Actual behavior
mxcli builds IF flows with the same case representation used for enum split values. That makes downstream validation/traversal logic harder to reason about and can contribute to false duplicate-variable consistency handling for mutually exclusive IF paths.
Proposed fix
Represent true and false IF flow cases as expression cases internally, keep enumeration case values for real enum split values, and serialize expression cases using the target Mendix version's expected storage shape.
Summary
IF sequence flows currently encode true/false branches only as enumeration-style case values with the strings
trueandfalse. That matches Mendix 9 storage but conflates IF branch cases with real enum split cases in mxcli's in-memory model.Expected behavior
mxcli should distinguish IF branch cases from enum split cases internally, while still writing the storage representation expected by the target Mendix version.
Actual behavior
mxcli builds IF flows with the same case representation used for enum split values. That makes downstream validation/traversal logic harder to reason about and can contribute to false duplicate-variable consistency handling for mutually exclusive IF paths.
Proposed fix
Represent
trueandfalseIF flow cases as expression cases internally, keep enumeration case values for real enum split values, and serialize expression cases using the target Mendix version's expected storage shape.