Add TargetSelectorHint channel

Change-Id: Icd9cd061a25bcbe8c1ade786a714bc66799f1831
Signed-off-by: James Kuszmaul <jabukuszmaul@gmail.com>
diff --git a/y2023/control_loops/drivetrain/BUILD b/y2023/control_loops/drivetrain/BUILD
index 09e5137..416d6d9 100644
--- a/y2023/control_loops/drivetrain/BUILD
+++ b/y2023/control_loops/drivetrain/BUILD
@@ -122,3 +122,12 @@
     gen_reflections = 1,
     visibility = ["//visibility:public"],
 )
+
+flatbuffer_cc_library(
+    name = "target_selector_hint_fbs",
+    srcs = [
+        ":target_selector_hint.fbs",
+    ],
+    gen_reflections = 1,
+    visibility = ["//visibility:public"],
+)
diff --git a/y2023/control_loops/drivetrain/target_selector_hint.fbs b/y2023/control_loops/drivetrain/target_selector_hint.fbs
new file mode 100644
index 0000000..0a16a59
--- /dev/null
+++ b/y2023/control_loops/drivetrain/target_selector_hint.fbs
@@ -0,0 +1,33 @@
+namespace y2023.control_loops.drivetrain;
+
+// Which of the grids we are going for.
+// From the perspective of the robot!
+enum GridSelectionHint : ubyte {
+  LEFT,
+  MIDDLE,
+  RIGHT,
+}
+
+// Which level to score on.
+enum RowSelectionHint : ubyte {
+  BOTTOM,
+  MIDDLE,
+  TOP,
+}
+
+// Within a row, which spot to score in.
+// From the perspective of the robot!
+enum SpotSelectionHint : ubyte {
+  LEFT,
+  MIDDLE,
+  RIGHT,
+}
+
+
+table TargetSelectorHint {
+  grid:GridSelectionHint (id: 0);
+  row:RowSelectionHint (id: 1);
+  spot:SpotSelectionHint (id: 2);
+}
+
+root_type TargetSelectorHint;