Type-safe
Message names and payload / response types are inferred from the contract. Unknown messages or wrong payloads are compile errors.
One contract lets your web and native sides agree on message types at compile time — and validate them at runtime.