Can Logstash process messages AS-IS?

We're trying to use Logstash to process messages from Kafka and output them to multiple sinks. However, Logstash seems to default to adding some fields to the event such as @version, @timestamp, @source (or host?), etc.

How do I configure Logstash to process messages as-is without adding anything of its own?

In other words, I don't want Logstash to bother about the format or condition of the message, I just want it to listen to input sources and send it to output sinks.

Is that possible with Logstash?

You can use the mutate + remove field options to take these out, but it will never be the exact message.

Perhaps you could keep the original message as a JSON string that's stored in a field that downstream consumers can deserialize? In other words, let Logstash contaminate the top-level fields as it pleases and use one of those fields for the original payload.