stepKeys top-level constant

Set<String> const stepKeys

The keys every Step subclass serialises.

Step.toJson is overridden identically in all six: the discriminator, the step key, and the nested options. fromJson reads only the last two — type is consumed by stepFromJson when it picks the class — but all three are legitimate on the wire, so all three are accepted here.

Shared rather than repeated per class because it is the base-class contract that fixes the shape, not each subclass. step_builders_test.dart decodes every step from its own toJson output, so a step that starts emitting a fourth key fails there.

Implementation

const stepKeys = {'type', 'key', 'options'};