diff --git a/GameCli.Tests/GameCli.Tests.csproj b/GameCli.Tests/GameCli.Tests.csproj
new file mode 100644
index 0000000..e951c30
--- /dev/null
+++ b/GameCli.Tests/GameCli.Tests.csproj
@@ -0,0 +1,27 @@
+
+
+
+ net8.0
+ enable
+ enable
+
+ false
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/GameCli.sln b/GameCli.sln
new file mode 100644
index 0000000..e08854a
--- /dev/null
+++ b/GameCli.sln
@@ -0,0 +1,48 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.0.31903.59
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GameCli", "GameCli\GameCli.csproj", "{6F988E2C-7994-4AE8-8354-85866FEA6CDE}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GameCli.Tests", "GameCli.Tests\GameCli.Tests.csproj", "{C0C7008D-E7BE-47E2-8CBB-2630AF817CC7}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|Any CPU = Release|Any CPU
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {6F988E2C-7994-4AE8-8354-85866FEA6CDE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6F988E2C-7994-4AE8-8354-85866FEA6CDE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6F988E2C-7994-4AE8-8354-85866FEA6CDE}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {6F988E2C-7994-4AE8-8354-85866FEA6CDE}.Debug|x64.Build.0 = Debug|Any CPU
+ {6F988E2C-7994-4AE8-8354-85866FEA6CDE}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {6F988E2C-7994-4AE8-8354-85866FEA6CDE}.Debug|x86.Build.0 = Debug|Any CPU
+ {6F988E2C-7994-4AE8-8354-85866FEA6CDE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6F988E2C-7994-4AE8-8354-85866FEA6CDE}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6F988E2C-7994-4AE8-8354-85866FEA6CDE}.Release|x64.ActiveCfg = Release|Any CPU
+ {6F988E2C-7994-4AE8-8354-85866FEA6CDE}.Release|x64.Build.0 = Release|Any CPU
+ {6F988E2C-7994-4AE8-8354-85866FEA6CDE}.Release|x86.ActiveCfg = Release|Any CPU
+ {6F988E2C-7994-4AE8-8354-85866FEA6CDE}.Release|x86.Build.0 = Release|Any CPU
+ {C0C7008D-E7BE-47E2-8CBB-2630AF817CC7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C0C7008D-E7BE-47E2-8CBB-2630AF817CC7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C0C7008D-E7BE-47E2-8CBB-2630AF817CC7}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {C0C7008D-E7BE-47E2-8CBB-2630AF817CC7}.Debug|x64.Build.0 = Debug|Any CPU
+ {C0C7008D-E7BE-47E2-8CBB-2630AF817CC7}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {C0C7008D-E7BE-47E2-8CBB-2630AF817CC7}.Debug|x86.Build.0 = Debug|Any CPU
+ {C0C7008D-E7BE-47E2-8CBB-2630AF817CC7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C0C7008D-E7BE-47E2-8CBB-2630AF817CC7}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C0C7008D-E7BE-47E2-8CBB-2630AF817CC7}.Release|x64.ActiveCfg = Release|Any CPU
+ {C0C7008D-E7BE-47E2-8CBB-2630AF817CC7}.Release|x64.Build.0 = Release|Any CPU
+ {C0C7008D-E7BE-47E2-8CBB-2630AF817CC7}.Release|x86.ActiveCfg = Release|Any CPU
+ {C0C7008D-E7BE-47E2-8CBB-2630AF817CC7}.Release|x86.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/GameCli/GameCli.csproj b/GameCli/GameCli.csproj
new file mode 100644
index 0000000..206b89a
--- /dev/null
+++ b/GameCli/GameCli.csproj
@@ -0,0 +1,10 @@
+
+
+
+ Exe
+ net8.0
+ enable
+ enable
+
+
+
diff --git a/GameCli/Program.cs b/GameCli/Program.cs
new file mode 100644
index 0000000..8e5680c
--- /dev/null
+++ b/GameCli/Program.cs
@@ -0,0 +1,2 @@
+// Placeholder. Rewritten in Task 8.
+System.Console.Error.WriteLine("GameCli placeholder");