Page->shell payloads are strict by design, so an optional field is not free: a page
served by a newer desktop sending followedByText to an older APK gets invalid_request
and the image paste fails outright.
The shell now advertises its own understood behaviors in init as opaque strings, the
page reads them off the bridge client, and it sends the hint only when the shell says
it understands it. A shell that does not writes no trailing separator, which is what
every shell did before the field existed.
Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb