AFAIK, the data type in Wasm only supports i32,i64,f32,f64, but when we use eosio contract, we can pass a string as a parameter. Anyone can tell me how eosio does that?
Data sent to an action is saved in 2 different places. The entire data sent is saved in the log as is. The log resides in regular disk files. The other place where data is saved is in RAM. Since RAM is a scarce resource in EOS you choose what subset of tbe data you want to be saved there.
Free form text has no use in a contract so no need to keep it in RAM. Only data that is relevant to the contract code is needed as the dapp has access to RAM data only.