Encode the selected values of a multi_select answer for the wire.
The answer stays one string so answers: list[str] keeps one slot per
question, positionally matched. JSON is self-delimiting, so values carrying
commas, quotes, or newlines round-trip exactly.
The encoding is opaque to a consumer that only moves the answer around. A
consumer that tests whether the user answered at all must go through
ask_user_answer_is_empty: an unselected multi_select encodes as the
truthy string [], so a bare .strip() reads it as answered.