QUIC Chat Client for very basic Media-over-QUIC transport testing.

The current state is that the client connects, exchanges SETUP, sends ANNOUNCE and gets ANNOUNCE_OK with an interop server, then SUBSCRIBEs to the catalog track and gets SUBSCRIBE_OK. It receives the catalog OBJECT and will issue SUBSCRIBEs for the tracks there.

If the server subscribes to the track the client announces, it will reply to that subscribe.

There is no capability to send OBJECT, or process non-catalog objects.

PiperOrigin-RevId: 588109420
diff --git a/build/source_list.bzl b/build/source_list.bzl
index ade85e5..ef5bcf4 100644
--- a/build/source_list.bzl
+++ b/build/source_list.bzl
@@ -1483,8 +1483,11 @@
     "quic/moqt/moqt_messages.h",
     "quic/moqt/moqt_parser.h",
     "quic/moqt/moqt_session.h",
+    "quic/moqt/moqt_subscribe_windows.h",
+    "quic/moqt/moqt_track.h",
     "quic/moqt/test_tools/moqt_test_message.h",
     "quic/moqt/tools/moqt_client.h",
+    "quic/moqt/tools/moqt_mock_visitor.h",
     "quic/moqt/tools/moqt_server.h",
 ]
 moqt_srcs = [
@@ -1495,6 +1498,10 @@
     "quic/moqt/moqt_parser.cc",
     "quic/moqt/moqt_parser_test.cc",
     "quic/moqt/moqt_session.cc",
+    "quic/moqt/moqt_session_test.cc",
+    "quic/moqt/moqt_subscribe_windows_test.cc",
+    "quic/moqt/moqt_track_test.cc",
+    "quic/moqt/tools/chat_client_bin.cc",
     "quic/moqt/tools/moqt_client.cc",
     "quic/moqt/tools/moqt_end_to_end_test.cc",
     "quic/moqt/tools/moqt_server.cc",