diff --git a/chess/.project b/chess/.project
new file mode 100644
index 0000000..0ddca7c
--- /dev/null
+++ b/chess/.project
@@ -0,0 +1,28 @@
+
+
+ chess
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+
+
+
+ 1745325861706
+
+ 30
+
+ org.eclipse.core.resources.regexFilterMatcher
+ node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
+
+
+
+
diff --git a/chess/.settings/org.eclipse.core.resources.prefs b/chess/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/chess/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/=UTF-8
diff --git a/chess/.settings/org.eclipse.jdt.core.prefs b/chess/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..9a7984b
--- /dev/null
+++ b/chess/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,11 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=21
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=21
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=21
diff --git a/chess/src/chess/Main.java b/chess/src/chess/Main.java
new file mode 100644
index 0000000..70e6cdb
--- /dev/null
+++ b/chess/src/chess/Main.java
@@ -0,0 +1,36 @@
+package chess;
+
+import java.awt.Color;
+import java.util.List;
+import java.util.Map;
+import javax.swing.Action;
+
+// A chessboard.
+class Board {
+ Map board;
+}
+
+// A location on the board. Measured from top left corner.
+class Loc {
+ int x;
+ int y;
+
+ Loc(int x, int y) {
+ this.x = x;
+ this.y = y;
+ }
+}
+
+// The color a chess piece may assume.
+enum PieceCol {
+ BLACK,
+ WHITE;
+
+ Color mk() {
+ return this.equals(BLACK) ? new Color(0, 0, 0)
+ : new Color(255, 255, 255);
+ }
+}
+
+// The sort of piece.
+enum PieceType { PAWN, ROOK, KNIGHT, BISHOP, QUEEN, KING }