Kafka transport configuration defers too many errors
The design for the Kafka input and output transport configurations have a flattened map, like this:
/// Options passed directly to `rdkafka`.
///
/// See [`librdkafka` options](https://github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md)
/// used to configure the Kafka producer.
#[serde(flatten)]
pub kafka_options: BTreeMap<String, String>,
This means that if the user adds some configuration key-value pair that neither rdkafka nor Feldera understands, it will get passed to rdkafka at runtime and then fail. It would be better for this to happen only if the user intended it for rdkafka, so that options meant for Feldera itself but misspelled could be detected at configuration time instead of at pipeline startup time.
This could be done by just removing #[serde(flatten)], at the cost of incompatibly changing the configuration schema.
I'm in favor of it: any arbitrary key-value mapping should be in its own object.