Version: 1.0.0
Recursive Discriminator API
Reproduces a crash where each oneOf branch under rule_item declares its
own discriminator on the same property (technique) with no mapping.
getDiscriminator borrows a branch's discriminator by reference for the
parent oneOf, and DiscriminatorNode then mutates that shared object's
mapping to the parent's variant set, which includes the branch itself.
Rendering the branch then re-enters DiscriminatorNode with a mapping pointing
back to itself and recurses until the tab crashes. The fix clones the
borrowed discriminator so the inferred mapping stays local to the node.
Create a rule
Accepts a rule container whose `rule_item` is a `oneOf` of variants that