now the discriminator for the new callback can be any json-serializable type decided by the provider, not simply String