A discriminated union narrowed by field.type. Known callback types expose
named typed fields directly on the field (for example JourneyChoiceField
has choices: string[] and defaultChoice: number). Callbacks from other
SDK packages — FIDO (rn-fido), device binding (rn-binding), device
profile (rn-device-profile), and external IdP (rn-external-idp) — are
represented as marker types or typed variants where the bridge emits named
fields. All other types fall through to JourneyBaseField.
field.raw is the original native callback payload and is preserved as an
escape hatch on every variant.
Normalized callback field shape used by headless callback helpers.