An enum representing a "virtual key". That is, each member of this enum represents a _behavior_ a key on a keyboard may have (for example "the behavior of the Tab key"), regardless of the physical position of that key (for example "the squat, leftmost key underneath the number row").This coincides with the Windows VirtualKey enum, but in the context of the Rainway Protocol it can be considered platform-independent, and peers should convert to/from it when generating/processing Rainway keyboard messages.See: https://docs.microsoft.com/en-us/uwp/api/windows.system.virtualkey?view=winrt-19041
A part of a chunked message.Certain WebRTC implementations cause large packets (>64kB or >256kB) on DataChannels to be dropped, clipped, or split down the middle (rendering their parts individually invalid). To sidestep this, Rainway peers chunk large messages into small enough units whose data fields are reassembled by the remote peer.A receiver stores these chunks, and reinterprets the concatenated data once all parts have been received. (The index values run from 0 to chunksInGroup - 1.)On the Arbitrary channel, reassembled messages are sent to the application, and this struct is in fact the body of ArbitraryDatagram. (A short enough piece of arbitrary data is sent as a group of one chunk.)On the Media channel, reassembled messages are interpreted as MediaDatagram and fed back into the message handler, and chunks occur as the MediaChunk of the MediaBody union.
A client reports its capabilities to a peer.The "supported" values indicate all configurations that will work for this client, but the "preferred" value will be chosen if possible (e.g. by a host in a 1:1 setting.)
A client requests a new input level in a host's stream. The response is InputLevelUpdate (the client can check which bits they were or weren't granted).
A packet describing the position and appearance of the remote mouse pointer.A guest receiving such a packet must draw the pointer locally at locally-computed mouse coordinates, as the mouse pointer is not part of the video stream.See: https://www.notion.so/rainway/Pointer-Data-788741724ec9440bbe8c9d3cb785b3f2
A request to resize the streamed application, because the local stream viewport size has changed. Currently this request will be carried out in App Isolation, when one window is isolated. Otherwise it is ignored.