Scouting: Add spotlight to entry

Signed-off-by: Emily Markova <emily.markova@gmail.com>
Change-Id: I4ed7673423b1a49c349feae009eee0b1d47b0382
diff --git a/scouting/db/db.go b/scouting/db/db.go
index 759f7e1..5d7a56c 100644
--- a/scouting/db/db.go
+++ b/scouting/db/db.go
@@ -86,7 +86,7 @@
 	NotesDropped                                 int32
 	Penalties                                    int32
 	AvgCycle                                     int64
-	Park, OnStage, Harmony, TrapNote             bool
+	Park, OnStage, Harmony, TrapNote, Spotlight  bool
 
 	// The username of the person who collected these statistics.
 	// "unknown" if submitted without logging in.
diff --git a/scouting/db/db_test.go b/scouting/db/db_test.go
index 4acbe12..369ea58 100644
--- a/scouting/db/db_test.go
+++ b/scouting/db/db_test.go
@@ -148,7 +148,7 @@
 			MatchNumber: 3, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 4,
 			SpeakerAuto: 1, AmpAuto: 0, NotesDroppedAuto: 2, MobilityAuto: true,
 			Speaker: 0, Amp: 5, SpeakerAmplified: 1, AmpAmplified: 0,
-			NotesDropped: 0, Penalties: 2, TrapNote: true, AvgCycle: 0,
+			NotesDropped: 0, Penalties: 2, TrapNote: true, Spotlight: false, AvgCycle: 0,
 			Park: true, OnStage: false, Harmony: false, CollectedBy: "emma",
 		},
 		Stats2024{
@@ -156,7 +156,7 @@
 			MatchNumber: 3, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 2,
 			SpeakerAuto: 2, AmpAuto: 0, NotesDroppedAuto: 2, MobilityAuto: true,
 			Speaker: 0, Amp: 5, SpeakerAmplified: 1, AmpAmplified: 0,
-			NotesDropped: 0, Penalties: 2, TrapNote: true, AvgCycle: 0,
+			NotesDropped: 0, Penalties: 2, TrapNote: true, Spotlight: false, AvgCycle: 0,
 			Park: true, OnStage: false, Harmony: false, CollectedBy: "harry",
 		},
 		Stats2024{
@@ -164,7 +164,7 @@
 			MatchNumber: 3, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 3,
 			SpeakerAuto: 0, AmpAuto: 0, NotesDroppedAuto: 2, MobilityAuto: true,
 			Speaker: 2, Amp: 1, SpeakerAmplified: 3, AmpAmplified: 0,
-			NotesDropped: 0, Penalties: 0, TrapNote: false, AvgCycle: 0,
+			NotesDropped: 0, Penalties: 0, TrapNote: false, Spotlight: false, AvgCycle: 0,
 			Park: false, OnStage: true, Harmony: false, CollectedBy: "henry",
 		},
 		Stats2024{
@@ -172,7 +172,7 @@
 			MatchNumber: 3, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 1,
 			SpeakerAuto: 1, AmpAuto: 0, NotesDroppedAuto: 0, MobilityAuto: false,
 			Speaker: 0, Amp: 1, SpeakerAmplified: 2, AmpAmplified: 3,
-			NotesDropped: 2, Penalties: 0, TrapNote: true, AvgCycle: 0,
+			NotesDropped: 2, Penalties: 0, TrapNote: true, Spotlight: false, AvgCycle: 0,
 			Park: true, OnStage: false, Harmony: false, CollectedBy: "jordan",
 		},
 		Stats2024{
@@ -180,7 +180,7 @@
 			MatchNumber: 3, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 2,
 			SpeakerAuto: 0, AmpAuto: 0, NotesDroppedAuto: 0, MobilityAuto: false,
 			Speaker: 5, Amp: 0, SpeakerAmplified: 2, AmpAmplified: 1,
-			NotesDropped: 1, Penalties: 1, TrapNote: true, AvgCycle: 0,
+			NotesDropped: 1, Penalties: 1, TrapNote: true, Spotlight: true, AvgCycle: 0,
 			Park: true, OnStage: false, Harmony: false, CollectedBy: "taylor",
 		},
 		Stats2024{
@@ -188,7 +188,7 @@
 			MatchNumber: 3, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 3,
 			SpeakerAuto: 1, AmpAuto: 3, NotesDroppedAuto: 0, MobilityAuto: true,
 			Speaker: 0, Amp: 3, SpeakerAmplified: 2, AmpAmplified: 2,
-			NotesDropped: 0, Penalties: 3, TrapNote: true, AvgCycle: 0,
+			NotesDropped: 0, Penalties: 3, TrapNote: true, Spotlight: false, AvgCycle: 0,
 			Park: false, OnStage: false, Harmony: true, CollectedBy: "katie",
 		},
 	}
@@ -235,7 +235,7 @@
 		MatchNumber: 3, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 4,
 		SpeakerAuto: 1, AmpAuto: 0, NotesDroppedAuto: 2, MobilityAuto: true,
 		Speaker: 0, Amp: 5, SpeakerAmplified: 1, AmpAmplified: 0,
-		NotesDropped: 0, Penalties: 2, TrapNote: true, AvgCycle: 0,
+		NotesDropped: 0, Penalties: 2, TrapNote: true, Spotlight: true, AvgCycle: 0,
 		Park: true, OnStage: false, Harmony: false, CollectedBy: "emma",
 	}
 
@@ -264,7 +264,7 @@
 			MatchNumber: 7, SetNumber: 1, CompLevel: "qm", StartingQuadrant: 1,
 			SpeakerAuto: 1, AmpAuto: 0, NotesDroppedAuto: 2, MobilityAuto: true,
 			Speaker: 0, Amp: 5, SpeakerAmplified: 1, AmpAmplified: 0,
-			NotesDropped: 0, Penalties: 2, TrapNote: true, AvgCycle: 0,
+			NotesDropped: 0, Penalties: 2, TrapNote: true, Spotlight: true, AvgCycle: 0,
 			Park: false, OnStage: true, Harmony: false, CollectedBy: "emma",
 		},
 		Stats2024{
@@ -272,7 +272,7 @@
 			MatchNumber: 2, SetNumber: 2, CompLevel: "qm", StartingQuadrant: 4,
 			SpeakerAuto: 0, AmpAuto: 0, NotesDroppedAuto: 0, MobilityAuto: false,
 			Speaker: 1, Amp: 2, SpeakerAmplified: 0, AmpAmplified: 2,
-			NotesDropped: 0, Penalties: 2, TrapNote: true, AvgCycle: 0,
+			NotesDropped: 0, Penalties: 2, TrapNote: true, Spotlight: true, AvgCycle: 0,
 			Park: true, OnStage: false, Harmony: false, CollectedBy: "emma",
 		},
 		Stats2024{
@@ -280,7 +280,7 @@
 			MatchNumber: 4, SetNumber: 1, CompLevel: "qm", StartingQuadrant: 2,
 			SpeakerAuto: 1, AmpAuto: 1, NotesDroppedAuto: 1, MobilityAuto: true,
 			Speaker: 0, Amp: 1, SpeakerAmplified: 1, AmpAmplified: 5,
-			NotesDropped: 1, Penalties: 0, TrapNote: false, AvgCycle: 0,
+			NotesDropped: 1, Penalties: 0, TrapNote: false, Spotlight: true, AvgCycle: 0,
 			Park: false, OnStage: false, Harmony: true, CollectedBy: "emma",
 		},
 	}
@@ -699,7 +699,7 @@
 			MatchNumber: 5, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 1,
 			SpeakerAuto: 1, AmpAuto: 0, NotesDroppedAuto: 2, MobilityAuto: true,
 			Speaker: 1, Amp: 3, SpeakerAmplified: 1, AmpAmplified: 3,
-			NotesDropped: 0, Penalties: 0, TrapNote: false, AvgCycle: 0,
+			NotesDropped: 0, Penalties: 0, TrapNote: false, Spotlight: false, AvgCycle: 0,
 			Park: false, OnStage: true, Harmony: false, CollectedBy: "bailey",
 		},
 		Stats2024{
@@ -707,7 +707,7 @@
 			MatchNumber: 5, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 4,
 			SpeakerAuto: 1, AmpAuto: 0, NotesDroppedAuto: 0, MobilityAuto: false,
 			Speaker: 1, Amp: 2, SpeakerAmplified: 0, AmpAmplified: 1,
-			NotesDropped: 0, Penalties: 2, TrapNote: true, AvgCycle: 0,
+			NotesDropped: 0, Penalties: 2, TrapNote: true, Spotlight: true, AvgCycle: 0,
 			Park: true, OnStage: false, Harmony: false, CollectedBy: "kate",
 		},
 		Stats2024{
@@ -715,7 +715,7 @@
 			MatchNumber: 5, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 2,
 			SpeakerAuto: 1, AmpAuto: 1, NotesDroppedAuto: 1, MobilityAuto: true,
 			Speaker: 0, Amp: 0, SpeakerAmplified: 2, AmpAmplified: 1,
-			NotesDropped: 1, Penalties: 0, TrapNote: false, AvgCycle: 0,
+			NotesDropped: 1, Penalties: 0, TrapNote: false, Spotlight: false, AvgCycle: 0,
 			Park: true, OnStage: false, Harmony: false, CollectedBy: "tyler",
 		},
 		Stats2024{
@@ -723,7 +723,7 @@
 			MatchNumber: 5, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 1,
 			SpeakerAuto: 1, AmpAuto: 1, NotesDroppedAuto: 0, MobilityAuto: false,
 			Speaker: 1, Amp: 2, SpeakerAmplified: 2, AmpAmplified: 1,
-			NotesDropped: 1, Penalties: 0, TrapNote: false, AvgCycle: 0,
+			NotesDropped: 1, Penalties: 0, TrapNote: false, Spotlight: false, AvgCycle: 0,
 			Park: false, OnStage: false, Harmony: true, CollectedBy: "max",
 		},
 	}
@@ -734,7 +734,7 @@
 			MatchNumber: 5, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 1,
 			SpeakerAuto: 1, AmpAuto: 0, NotesDroppedAuto: 2, MobilityAuto: true,
 			Speaker: 1, Amp: 3, SpeakerAmplified: 1, AmpAmplified: 3,
-			NotesDropped: 0, Penalties: 0, TrapNote: false, AvgCycle: 0,
+			NotesDropped: 0, Penalties: 0, TrapNote: false, Spotlight: false, AvgCycle: 0,
 			Park: false, OnStage: true, Harmony: false, CollectedBy: "bailey",
 		},
 	}
@@ -1153,7 +1153,7 @@
 			MatchNumber: 3, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 4,
 			SpeakerAuto: 1, AmpAuto: 0, NotesDroppedAuto: 2, MobilityAuto: true,
 			Speaker: 0, Amp: 5, SpeakerAmplified: 1, AmpAmplified: 0,
-			NotesDropped: 0, Penalties: 2, TrapNote: true, AvgCycle: 0,
+			NotesDropped: 0, Penalties: 2, TrapNote: true, Spotlight: false, AvgCycle: 0,
 			Park: true, OnStage: false, Harmony: false, CollectedBy: "emma",
 		},
 		Stats2024{
@@ -1161,7 +1161,7 @@
 			MatchNumber: 3, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 2,
 			SpeakerAuto: 2, AmpAuto: 0, NotesDroppedAuto: 2, MobilityAuto: true,
 			Speaker: 0, Amp: 5, SpeakerAmplified: 1, AmpAmplified: 0,
-			NotesDropped: 0, Penalties: 2, TrapNote: true, AvgCycle: 0,
+			NotesDropped: 0, Penalties: 2, TrapNote: true, Spotlight: false, AvgCycle: 0,
 			Park: true, OnStage: false, Harmony: false, CollectedBy: "harry",
 		},
 		Stats2024{
@@ -1169,7 +1169,7 @@
 			MatchNumber: 3, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 3,
 			SpeakerAuto: 0, AmpAuto: 0, NotesDroppedAuto: 2, MobilityAuto: true,
 			Speaker: 2, Amp: 1, SpeakerAmplified: 3, AmpAmplified: 0,
-			NotesDropped: 0, Penalties: 0, TrapNote: false, AvgCycle: 0,
+			NotesDropped: 0, Penalties: 0, TrapNote: false, Spotlight: false, AvgCycle: 0,
 			Park: false, OnStage: true, Harmony: false, CollectedBy: "henry",
 		},
 		Stats2024{
@@ -1177,7 +1177,7 @@
 			MatchNumber: 3, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 1,
 			SpeakerAuto: 1, AmpAuto: 0, NotesDroppedAuto: 0, MobilityAuto: false,
 			Speaker: 0, Amp: 1, SpeakerAmplified: 2, AmpAmplified: 3,
-			NotesDropped: 2, Penalties: 0, TrapNote: true, AvgCycle: 0,
+			NotesDropped: 2, Penalties: 0, TrapNote: true, Spotlight: true, AvgCycle: 0,
 			Park: true, OnStage: false, Harmony: false, CollectedBy: "jordan",
 		},
 	}
diff --git a/scouting/scouting_test.cy.js b/scouting/scouting_test.cy.js
index 691d8fc..31ca935 100644
--- a/scouting/scouting_test.cy.js
+++ b/scouting/scouting_test.cy.js
@@ -111,7 +111,7 @@
     .last()
     .should(
       'have.text',
-      ' Ended Match; park: false, onStage: false, harmony: true, trapNote: false '
+      ' Ended Match; stageType: kHARMONY, trapNote: false, spotlight: false '
     );
 
   clickButton('Submit');
diff --git a/scouting/webserver/requests/messages/request_2024_data_scouting_response.fbs b/scouting/webserver/requests/messages/request_2024_data_scouting_response.fbs
index d653f04..c36174d 100644
--- a/scouting/webserver/requests/messages/request_2024_data_scouting_response.fbs
+++ b/scouting/webserver/requests/messages/request_2024_data_scouting_response.fbs
@@ -25,6 +25,7 @@
   park: bool (id:15);
   on_stage: bool (id:16);
   harmony: bool (id:17);
+  spotlight: bool (id:22);
 
   pre_scouting:bool (id:20);
   collected_by:string (id:21);
@@ -34,4 +35,4 @@
     stats_list:[Stats2024] (id:0);
 }
 
-root_type Request2024DataScoutingResponse;
+root_type Request2024DataScoutingResponse;
\ No newline at end of file
diff --git a/scouting/webserver/requests/messages/submit_2024_actions.fbs b/scouting/webserver/requests/messages/submit_2024_actions.fbs
index 61e36bc..e85563f 100644
--- a/scouting/webserver/requests/messages/submit_2024_actions.fbs
+++ b/scouting/webserver/requests/messages/submit_2024_actions.fbs
@@ -42,6 +42,7 @@
 table EndMatchAction {
     stage_type:StageType (id:0);
     trap_note:bool (id:1);
+    spotlight:bool (id:2);
 }
 
 union ActionType {
diff --git a/scouting/webserver/requests/requests.go b/scouting/webserver/requests/requests.go
index 31ad4e3..a9919af 100644
--- a/scouting/webserver/requests/requests.go
+++ b/scouting/webserver/requests/requests.go
@@ -452,7 +452,7 @@
 		PreScouting: submit2024Actions.PreScouting(), TeamNumber: string(submit2024Actions.TeamNumber()), MatchNumber: submit2024Actions.MatchNumber(), SetNumber: submit2024Actions.SetNumber(), CompLevel: string(submit2024Actions.CompLevel()),
 		StartingQuadrant: 0, SpeakerAuto: 0, AmpAuto: 0, NotesDroppedAuto: 0, MobilityAuto: false,
 		Speaker: 0, Amp: 0, SpeakerAmplified: 0, AmpAmplified: 0, NotesDropped: 0, Penalties: 0,
-		TrapNote: false, AvgCycle: 0, Park: false, OnStage: false, Harmony: false, CollectedBy: "",
+		TrapNote: false, Spotlight: false, AvgCycle: 0, Park: false, OnStage: false, Harmony: false, CollectedBy: "",
 	}
 	// Loop over all actions.
 	for i := 0; i < submit2024Actions.ActionsListLength(); i++ {
@@ -537,6 +537,7 @@
 				stat.Harmony = true
 			}
 			stat.TrapNote = endMatchAction.TrapNote()
+			stat.Spotlight = endMatchAction.Spotlight()
 		}
 	}
 	if cycles != 0 {
@@ -589,6 +590,7 @@
 			NotesDropped:     stat.NotesDropped,
 			Penalties:        stat.Penalties,
 			TrapNote:         stat.TrapNote,
+			Spotlight:        stat.Spotlight,
 			AvgCycle:         stat.AvgCycle,
 			Park:             stat.Park,
 			OnStage:          stat.OnStage,
diff --git a/scouting/webserver/requests/requests_test.go b/scouting/webserver/requests/requests_test.go
index eb5e904..ebe73f3 100644
--- a/scouting/webserver/requests/requests_test.go
+++ b/scouting/webserver/requests/requests_test.go
@@ -137,7 +137,7 @@
 				MatchNumber: 1, SetNumber: 1, CompLevel: "qm", StartingQuadrant: 3,
 				SpeakerAuto: 2, AmpAuto: 4, NotesDroppedAuto: 1, MobilityAuto: true,
 				Speaker: 0, Amp: 1, SpeakerAmplified: 2, AmpAmplified: 1,
-				NotesDropped: 0, Penalties: 01, TrapNote: true, AvgCycle: 233,
+				NotesDropped: 0, Penalties: 01, TrapNote: true, Spotlight: false, AvgCycle: 233,
 				Park: false, OnStage: true, Harmony: false, CollectedBy: "alex",
 			},
 			{
@@ -145,7 +145,7 @@
 				MatchNumber: 3, SetNumber: 1, CompLevel: "qm", StartingQuadrant: 1,
 				SpeakerAuto: 0, AmpAuto: 2, NotesDroppedAuto: 0, MobilityAuto: false,
 				Speaker: 0, Amp: 4, SpeakerAmplified: 3, AmpAmplified: 1,
-				NotesDropped: 0, Penalties: 1, TrapNote: true, AvgCycle: 120,
+				NotesDropped: 0, Penalties: 1, TrapNote: true, Spotlight: false, AvgCycle: 120,
 				Park: true, OnStage: false, Harmony: false, CollectedBy: "bob",
 			},
 		},
@@ -214,7 +214,7 @@
 				MatchNumber: 3, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 4,
 				SpeakerAuto: 1, AmpAuto: 1, NotesDroppedAuto: 0, MobilityAuto: true,
 				Speaker: 4, Amp: 2, SpeakerAmplified: 1, AmpAmplified: 0,
-				NotesDropped: 2, Penalties: 2, TrapNote: true, AvgCycle: 0,
+				NotesDropped: 2, Penalties: 2, TrapNote: true, Spotlight: true, AvgCycle: 0,
 				Park: true, OnStage: false, Harmony: false, CollectedBy: "alex",
 			},
 			{
@@ -222,7 +222,7 @@
 				MatchNumber: 3, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 2,
 				SpeakerAuto: 0, AmpAuto: 0, NotesDroppedAuto: 0, MobilityAuto: false,
 				Speaker: 0, Amp: 2, SpeakerAmplified: 3, AmpAmplified: 2,
-				NotesDropped: 1, Penalties: 0, TrapNote: false, AvgCycle: 0,
+				NotesDropped: 1, Penalties: 0, TrapNote: false, Spotlight: true, AvgCycle: 0,
 				Park: false, OnStage: true, Harmony: false, CollectedBy: "george",
 			},
 		},
@@ -247,7 +247,7 @@
 				MatchNumber: 3, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 4,
 				SpeakerAuto: 1, AmpAuto: 1, NotesDroppedAuto: 0, MobilityAuto: true,
 				Speaker: 4, Amp: 2, SpeakerAmplified: 1, AmpAmplified: 0,
-				NotesDropped: 2, Penalties: 2, TrapNote: true, AvgCycle: 0,
+				NotesDropped: 2, Penalties: 2, TrapNote: true, Spotlight: true, AvgCycle: 0,
 				Park: true, OnStage: false, Harmony: false, CollectedBy: "alex",
 			},
 			{
@@ -255,7 +255,7 @@
 				MatchNumber: 3, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 2,
 				SpeakerAuto: 0, AmpAuto: 0, NotesDroppedAuto: 0, MobilityAuto: false,
 				Speaker: 0, Amp: 2, SpeakerAmplified: 3, AmpAmplified: 2,
-				NotesDropped: 1, Penalties: 0, TrapNote: false, AvgCycle: 0,
+				NotesDropped: 1, Penalties: 0, TrapNote: false, Spotlight: true, AvgCycle: 0,
 				Park: false, OnStage: true, Harmony: false, CollectedBy: "george",
 			},
 		},
@@ -459,6 +459,7 @@
 					Value: &submit_2024_actions.EndMatchActionT{
 						StageType: submit_2024_actions.StageTypekHARMONY,
 						TrapNote:  false,
+						Spotlight: false,
 					},
 				},
 				Timestamp: 4200,
@@ -479,7 +480,7 @@
 		MatchNumber: 3, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 2,
 		SpeakerAuto: 0, AmpAuto: 1, NotesDroppedAuto: 1, MobilityAuto: true,
 		Speaker: 0, Amp: 0, SpeakerAmplified: 1, AmpAmplified: 1,
-		NotesDropped: 0, Penalties: 5, TrapNote: false, AvgCycle: 950,
+		NotesDropped: 0, Penalties: 5, TrapNote: false, Spotlight: false, AvgCycle: 950,
 		Park: false, OnStage: false, Harmony: true, CollectedBy: "",
 	}
 
@@ -1200,7 +1201,7 @@
 			MatchNumber: 2, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 0,
 			SpeakerAuto: 0, AmpAuto: 0, NotesDroppedAuto: 0, MobilityAuto: false,
 			Speaker: 1, Amp: 0, SpeakerAmplified: 0, AmpAmplified: 0,
-			NotesDropped: 0, Penalties: 0, TrapNote: false, AvgCycle: 0,
+			NotesDropped: 0, Penalties: 0, TrapNote: false, Spotlight: false, AvgCycle: 0,
 			Park: false, OnStage: false, Harmony: false, CollectedBy: "debug_cli",
 		},
 	}
@@ -1446,7 +1447,7 @@
 				MatchNumber: 3, SetNumber: 1, CompLevel: "quals", StartingQuadrant: 2,
 				SpeakerAuto: 0, AmpAuto: 1, NotesDroppedAuto: 1, MobilityAuto: true,
 				Speaker: 0, Amp: 1, SpeakerAmplified: 1, AmpAmplified: 1,
-				NotesDropped: 0, Penalties: 1, TrapNote: true, AvgCycle: 233,
+				NotesDropped: 0, Penalties: 1, TrapNote: true, Spotlight: false, AvgCycle: 233,
 				Park: false, OnStage: false, Harmony: true, CollectedBy: "alek",
 			},
 			{
@@ -1454,7 +1455,7 @@
 				MatchNumber: 5, SetNumber: 3, CompLevel: "quals", StartingQuadrant: 1,
 				SpeakerAuto: 0, AmpAuto: 0, NotesDroppedAuto: 0, MobilityAuto: false,
 				Speaker: 0, Amp: 0, SpeakerAmplified: 3, AmpAmplified: 1,
-				NotesDropped: 0, Penalties: 1, TrapNote: false, AvgCycle: 120,
+				NotesDropped: 0, Penalties: 1, TrapNote: false, Spotlight: false, AvgCycle: 120,
 				Park: false, OnStage: true, Harmony: false, CollectedBy: "kacey",
 			},
 		},
@@ -1518,7 +1519,7 @@
 			MatchNumber: 5, SetNumber: 3, CompLevel: "quals", StartingQuadrant: 1,
 			SpeakerAuto: 0, AmpAuto: 0, NotesDroppedAuto: 0, MobilityAuto: false,
 			Speaker: 0, Amp: 0, SpeakerAmplified: 3, AmpAmplified: 1,
-			NotesDropped: 0, Penalties: 1, TrapNote: false, AvgCycle: 120,
+			NotesDropped: 0, Penalties: 1, TrapNote: false, Spotlight: false, AvgCycle: 120,
 			Park: false, OnStage: true, Harmony: false, CollectedBy: "kacey",
 		},
 	}
diff --git a/scouting/www/entry/entry.component.css b/scouting/www/entry/entry.component.css
index 246887c..9c50ee0 100644
--- a/scouting/www/entry/entry.component.css
+++ b/scouting/www/entry/entry.component.css
@@ -18,3 +18,7 @@
 input label {
   padding: 0px;
 }
+
+#EndGame > div > label {
+  padding: 0;
+}
diff --git a/scouting/www/entry/entry.component.ts b/scouting/www/entry/entry.component.ts
index b3e1e92..122c415 100644
--- a/scouting/www/entry/entry.component.ts
+++ b/scouting/www/entry/entry.component.ts
@@ -86,6 +86,7 @@
       type: 'endMatchAction';
       stageType: StageType;
       trapNote: boolean;
+      spotlight: boolean;
       timestamp?: number;
     }
   | {
@@ -112,6 +113,7 @@
   readonly COMP_LEVELS = COMP_LEVELS;
   readonly COMP_LEVEL_LABELS = COMP_LEVEL_LABELS;
   readonly ScoreType = ScoreType;
+  readonly StageType = StageType;
 
   section: Section = 'Team Selection';
   @Input() matchNumber: number = 1;
@@ -374,7 +376,8 @@
           const endMatchActionOffset = EndMatchAction.createEndMatchAction(
             builder,
             action.stageType,
-            action.trapNote
+            action.trapNote,
+            action.spotlight
           );
           actionOffset = Action.createAction(
             builder,
diff --git a/scouting/www/entry/entry.ng.html b/scouting/www/entry/entry.ng.html
index 9490237..ea44ad3 100644
--- a/scouting/www/entry/entry.ng.html
+++ b/scouting/www/entry/entry.ng.html
@@ -294,7 +294,7 @@
     <h6 class="text-muted">
       Last Action: {{actionList[actionList.length - 1].type}}
     </h6>
-    <div class="d-grid gap-4">
+    <div class="d-grid gap-2">
       <button class="btn btn-secondary" (click)="undoLastAction()">UNDO</button>
       <button
         class="btn btn-danger"
@@ -302,7 +302,7 @@
       >
         DEAD
       </button>
-      <label style="padding: 0">
+      <label>
         <input
           #park
           type="radio"
@@ -312,7 +312,7 @@
         />
         Park
       </label>
-      <label style="padding: 0">
+      <label>
         <input
           #onStage
           type="radio"
@@ -322,7 +322,7 @@
         />
         On Stage
       </label>
-      <label style="padding: 0">
+      <label>
         <input
           #harmony
           type="radio"
@@ -332,7 +332,7 @@
         />
         Harmony
       </label>
-      <label style="padding: 0">
+      <label>
         <input
           #trapNote
           type="checkbox"
@@ -342,6 +342,16 @@
         />
         Trap Note
       </label>
+      <label>
+        <input
+          #spotlight
+          type="checkbox"
+          id="spotlight"
+          name="spotlight"
+          value="spotlight"
+        />
+        Spotlight
+      </label>
       <div style="display: flex">
         <h5>Penalties :</h5>
         <button
@@ -363,7 +373,7 @@
       <button
         *ngIf="!autoPhase"
         class="btn btn-info"
-        (click)="changeSectionTo('Review and Submit');  addPenalties(); addAction({type: 'endMatchAction', park: park.checked, onStage: onStage.checked, harmony: harmony.checked, trapNote: trapNote.checked});"
+        (click)="changeSectionTo('Review and Submit');  addPenalties(); addAction({type: 'endMatchAction', stageType: (park.checked ? StageType.kPARK : onStage.checked ? StageType.kON_STAGE : harmony.checked ? StageType.kHARMONY : StageType.kMISSING), trapNote: trapNote.checked, spotlight: spotlight.checked});"
       >
         End Match
       </button>
@@ -398,8 +408,10 @@
             </span>
             <span *ngSwitchCase="'endAutoPhase'">Ended auto phase</span>
             <span *ngSwitchCase="'endMatchAction'">
-              Ended Match; park: {{action.park}}, onStage: {{action.onStage}},
-              harmony: {{action.harmony}}, trapNote: {{action.trapNote}}
+              Ended Match; stageType: {{(action.stageType === 0 ? "kON_STAGE" :
+              action.stageType === 1 ? "kPARK" : action.stageType === 2 ?
+              "kHARMONY" : "kMISSING")}}, trapNote: {{action.trapNote}},
+              spotlight: {{action.spotlight}}
             </span>
             <span *ngSwitchCase="'robotDeathAction'">
               Robot on: {{action.robotOn}}