Use TINT_REFLECT for OverrideId

Adds tint_public_config to Dawn's internal config so Tint headers
can be included.

Fixed: dawn:1594
Change-Id: I4068fd95b6eae3138fbcc04f29f054c7cffdcf12
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/111260
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Shrek Shao <shrekshao@google.com>
Commit-Queue: Austin Eng <enga@chromium.org>
Kokoro: Austin Eng <enga@chromium.org>
diff --git a/include/tint/override_id.h b/include/tint/override_id.h
index 05e56a7..c638117 100644
--- a/include/tint/override_id.h
+++ b/include/tint/override_id.h
@@ -18,11 +18,16 @@
 #include <stdint.h>
 #include <functional>
 
+#include "src/tint/reflection.h"
+
 namespace tint {
 
 /// OverrideId is a numerical identifier for an override variable, unique per program.
 struct OverrideId {
     uint16_t value = 0;
+
+    /// Reflect the fields of this struct so that it can be used by tint::ForeachField()
+    TINT_REFLECT(value);
 };
 
 /// Equality operator for OverrideId
diff --git a/src/dawn/native/BUILD.gn b/src/dawn/native/BUILD.gn
index 85025fb..78f95dc 100644
--- a/src/dawn/native/BUILD.gn
+++ b/src/dawn/native/BUILD.gn
@@ -59,7 +59,10 @@
 }
 
 config("internal") {
-  configs = [ "${dawn_root}/src/dawn/common:internal_config" ]
+  configs = [
+    "${dawn_root}/src/dawn/common:internal_config",
+    "${dawn_root}/src/tint:tint_public_config",
+  ]
 }
 
 config("weak_framework") {
diff --git a/src/dawn/native/StreamImplTint.cpp b/src/dawn/native/StreamImplTint.cpp
index 5f077ec..75c6914 100644
--- a/src/dawn/native/StreamImplTint.cpp
+++ b/src/dawn/native/StreamImplTint.cpp
@@ -76,10 +76,7 @@
 // static
 template <>
 void stream::Stream<tint::OverrideId>::Write(stream::Sink* sink, const tint::OverrideId& id) {
-    // TODO(tint:1640): fix the include build issues and use StreamInTintObject instead.
-    static_assert(offsetof(tint::OverrideId, value) == 0,
-                  "Please update serialization for tint::OverrideId");
-    StreamIn(sink, id.value);
+    StreamInTintObject(id, sink);
 }
 
 // static