From 625efe698010f0228d737f7e0cf541c5d0115454 Mon Sep 17 00:00:00 2001
From: CoderGamester <game.gamester@gmail.com>
Date: Tue, 28 Jul 2026 23:25:57 +0100
Subject: [PATCH 1/5] fix: remove dangling asmdef GUID reference

GUID:ffab5256b265d45fa9fb86697af7ee2b resolves to no .asmdef anywhere
in this repo or Library/PackageCache. The other two GUIDs in this
reference list (Addressables, Addressables.Editor) are confirmed live;
this third one was orphaned, likely from a removed dependency.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
---
 Editor/GameLovers.Services.Editor.asmdef | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/Editor/GameLovers.Services.Editor.asmdef b/Editor/GameLovers.Services.Editor.asmdef
index ed041e6..3f197da 100644
--- a/Editor/GameLovers.Services.Editor.asmdef
+++ b/Editor/GameLovers.Services.Editor.asmdef
@@ -5,8 +5,7 @@
         "GameLovers.Services",
         "GameLovers.GameData",
         "GUID:9e24947de15b9834991c9d8411ea37cf",
-        "GUID:69448af7b92c7f342b298e06a37122aa",
-        "GUID:ffab5256b265d45fa9fb86697af7ee2b"
+        "GUID:69448af7b92c7f342b298e06a37122aa"
     ],
     "includePlatforms": [
         "Editor"

From 944602c15a7e0eddf1d8854a084120bcc9b3f488 Mon Sep 17 00:00:00 2001
From: CoderGamester <game.gamester@gmail.com>
Date: Wed, 29 Jul 2026 00:38:09 +0100
Subject: [PATCH 2/5] fix: converge repo URLs, sample description, and asmdef
 naming/consistency

Bumps to 2.1.2 (published at 2.1.1; this is a real release, not a fold).

- README: converged repository links on the actual origin
  (github.com/CoderGamester/Services) -- was inconsistently mixed with
  com.gamelovers.services, which is not this repo's name. Also fixed
  the cross-package GameData link (actual origin is Unity-GameData).
- package.json: ServicesPlayground sample description no longer claims
  the UI is built programmatically -- it ships as a hand-authored
  prefab with a [SerializeField]-wired driver script.
- Renamed Tests/EditMode/GameLovers.Services.Tests.asmdef to
  GameLovers.Services.Editor.Tests.asmdef to match its own `name`
  field; GUID preserved via git mv on the paired .meta.
- Tests/PlayMode/GameLovers.Services.Tests.Playmode.asmdef no longer
  sets autoReferenced: true (was the only test asmdef in the repo
  doing so). Verified safe: the Test Runner discovers test assemblies
  via the UNITY_INCLUDE_TESTS define constraint, independent of
  autoReferenced -- full PlayMode suite still finds and runs this
  assembly's tests (305/305 passing, same count as before the change).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
---
 CHANGELOG.md                                         | 11 +++++++++++
 README.md                                            | 12 ++++++------
 ...smdef => GameLovers.Services.Editor.Tests.asmdef} |  0
 ... => GameLovers.Services.Editor.Tests.asmdef.meta} |  0
 .../GameLovers.Services.Tests.Playmode.asmdef        |  2 +-
 package.json                                         |  4 ++--
 6 files changed, 20 insertions(+), 9 deletions(-)
 rename Tests/EditMode/{GameLovers.Services.Tests.asmdef => GameLovers.Services.Editor.Tests.asmdef} (100%)
 rename Tests/EditMode/{GameLovers.Services.Tests.asmdef.meta => GameLovers.Services.Editor.Tests.asmdef.meta} (100%)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 58827d1..db0865b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,17 @@ All notable changes to this package will be documented in this file.
 The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
 and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
 
+## [2.1.2] - 2026-07-29
+
+**Fixed**:
+- Removed a dangling asmdef GUID reference (`GUID:ffab5256b265d45fa9fb86697af7ee2b`) from `Editor/GameLovers.Services.Editor.asmdef` — resolved to no assembly anywhere in the repo or `Library/PackageCache`.
+- Renamed `Tests/EditMode/GameLovers.Services.Tests.asmdef` to `GameLovers.Services.Editor.Tests.asmdef` to match its own `name` field (`GameLovers.Services.Editor.Tests`); GUID preserved via `git mv` on the paired `.meta`.
+- `Tests/PlayMode/GameLovers.Services.Tests.Playmode.asmdef` no longer sets `autoReferenced: true` (was the only test asmdef in the repo doing so). Test discovery is unaffected — the Test Runner finds test assemblies via the `UNITY_INCLUDE_TESTS` define constraint, independent of `autoReferenced`.
+
+**Docs**:
+- `Samples~/ServicesPlayground`'s `package.json` description no longer claims the sample UI "is built programmatically" — it ships as a hand-authored prefab (`ServicesPlaygroundUI.prefab`) with a `[SerializeField]`-wired driver script.
+- Converged `README.md`'s repository links on the actual origin (`github.com/CoderGamester/Services`) — previously mixed with `com.gamelovers.services`, which is not this repository's name. Also fixed the GameData cross-reference link (actual origin is `Unity-GameData`, not `com.gamelovers.gamedata`).
+
 ## [2.1.1] - 2026-07-04
 
 **Changed**:
diff --git a/README.md b/README.md
index 8fda8bf..bf97dcf 100644
--- a/README.md
+++ b/README.md
@@ -36,7 +36,7 @@ Building robust game architecture in Unity often leads to tightly coupled system
 ## System Requirements
 
 - **[Unity](https://unity.com/download)** 6000.0+ (Unity 6)
-- **[GameLovers GameData](https://github.com/CoderGamester/com.gamelovers.gamedata)** (v1.0.0) — automatically resolved
+- **[GameLovers GameData](https://github.com/CoderGamester/Unity-GameData)** (v1.0.0) — automatically resolved
 - **[Unity Addressables](https://docs.unity3d.com/Packages/com.unity.addressables@latest)** (≥ 1.21.20) — automatically resolved
 - **[UniTask](https://github.com/Cysharp/UniTask)** (≥ 2.5.10) — automatically resolved
 
@@ -51,14 +51,14 @@ Building robust game architecture in Unity often leads to tightly coupled system
 
 1. Open Unity Package Manager (`Window` → `Package Manager`)
 2. Click `+` → `Add package from git URL`
-3. Enter: `https://github.com/CoderGamester/com.gamelovers.services.git`
+3. Enter: `https://github.com/CoderGamester/Services.git`
 
 ### Via manifest.json
 
 ```json
 {
   "dependencies": {
-    "com.gamelovers.services": "https://github.com/CoderGamester/com.gamelovers.services.git"
+    "com.gamelovers.services": "https://github.com/CoderGamester/Services.git"
   }
 }
 ```
@@ -323,7 +323,7 @@ To import a sample: **Window > Package Manager > GameLovers Services > Samples >
 
 ## Contributing
 
-Contributions are welcome! See [GitHub Issues](https://github.com/CoderGamester/com.gamelovers.services/issues) to report bugs or request features. For development setup, architecture details, namespace conventions, and coding standards, see [AGENTS.md](AGENTS.md).
+Contributions are welcome! See [GitHub Issues](https://github.com/CoderGamester/Services/issues) to report bugs or request features. For development setup, architecture details, namespace conventions, and coding standards, see [AGENTS.md](AGENTS.md).
 
 ---
 
@@ -338,8 +338,8 @@ Contributions are welcome! See [GitHub Issues](https://github.com/CoderGamester/
 
 ## Support
 
-- **Issues**: [Report bugs or request features](https://github.com/CoderGamester/com.gamelovers.services/issues)
-- **Discussions**: [Ask questions and share ideas](https://github.com/CoderGamester/com.gamelovers.services/discussions)
+- **Issues**: [Report bugs or request features](https://github.com/CoderGamester/Services/issues)
+- **Discussions**: [Ask questions and share ideas](https://github.com/CoderGamester/Services/discussions)
 
 ## License
 
diff --git a/Tests/EditMode/GameLovers.Services.Tests.asmdef b/Tests/EditMode/GameLovers.Services.Editor.Tests.asmdef
similarity index 100%
rename from Tests/EditMode/GameLovers.Services.Tests.asmdef
rename to Tests/EditMode/GameLovers.Services.Editor.Tests.asmdef
diff --git a/Tests/EditMode/GameLovers.Services.Tests.asmdef.meta b/Tests/EditMode/GameLovers.Services.Editor.Tests.asmdef.meta
similarity index 100%
rename from Tests/EditMode/GameLovers.Services.Tests.asmdef.meta
rename to Tests/EditMode/GameLovers.Services.Editor.Tests.asmdef.meta
diff --git a/Tests/PlayMode/GameLovers.Services.Tests.Playmode.asmdef b/Tests/PlayMode/GameLovers.Services.Tests.Playmode.asmdef
index 2a62ea1..3241f31 100644
--- a/Tests/PlayMode/GameLovers.Services.Tests.Playmode.asmdef
+++ b/Tests/PlayMode/GameLovers.Services.Tests.Playmode.asmdef
@@ -19,7 +19,7 @@
     "precompiledReferences": [
         "nunit.framework.dll"
     ],
-    "autoReferenced": true,
+    "autoReferenced": false,
     "defineConstraints": [
         "UNITY_INCLUDE_TESTS"
     ],
diff --git a/package.json b/package.json
index 349e6ae..c640f29 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
   "name": "com.gamelovers.services",
   "displayName": "GameLovers Services",
   "author": "Miguel Tomas",
-  "version": "2.1.1",
+  "version": "2.1.2",
   "unity": "6000.3",
   "license": "MIT",
   "description": "Foundation services for a Unity based project (DI-lite, messaging, ticking, coroutines, pooling, persistence, RNG, time, commands, versioning) plus Addressables-based asset loading and importing tooling.",
@@ -16,7 +16,7 @@
   "samples": [
     {
       "displayName": "Services Playground",
-      "description": "Zero-setup playground that wires every foundation service via MainInstaller and drives the Services Explorer (Installer, Versioning, Message Broker, Tick, Coroutine, Pool, Data, Time, RNG, Commands). Open the scene and press Play — the UI is built programmatically; no per-import wiring.",
+      "description": "Zero-setup playground that wires every foundation service via MainInstaller and drives the Services Explorer (Installer, Versioning, Message Broker, Tick, Coroutine, Pool, Data, Time, RNG, Commands). Open the scene and press Play — the UI ships as a hand-authored prefab (ServicesPlaygroundUI.prefab) with a driver script holding [SerializeField] references; no per-import wiring.",
       "path": "Samples~/ServicesPlayground"
     },
     {

From 8a2506889d85b513b33a16d3b875485370a582c6 Mon Sep 17 00:00:00 2001
From: CoderGamester <game.gamester@gmail.com>
Date: Wed, 29 Jul 2026 15:48:13 +0100
Subject: [PATCH 3/5] docs: update the changelog to reflect the changes from
 the user perspective

---
 CHANGELOG.md | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index db0865b..c941530 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,13 +7,12 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
 ## [2.1.2] - 2026-07-29
 
 **Fixed**:
-- Removed a dangling asmdef GUID reference (`GUID:ffab5256b265d45fa9fb86697af7ee2b`) from `Editor/GameLovers.Services.Editor.asmdef` — resolved to no assembly anywhere in the repo or `Library/PackageCache`.
 - Renamed `Tests/EditMode/GameLovers.Services.Tests.asmdef` to `GameLovers.Services.Editor.Tests.asmdef` to match its own `name` field (`GameLovers.Services.Editor.Tests`); GUID preserved via `git mv` on the paired `.meta`.
 - `Tests/PlayMode/GameLovers.Services.Tests.Playmode.asmdef` no longer sets `autoReferenced: true` (was the only test asmdef in the repo doing so). Test discovery is unaffected — the Test Runner finds test assemblies via the `UNITY_INCLUDE_TESTS` define constraint, independent of `autoReferenced`.
 
 **Docs**:
 - `Samples~/ServicesPlayground`'s `package.json` description no longer claims the sample UI "is built programmatically" — it ships as a hand-authored prefab (`ServicesPlaygroundUI.prefab`) with a `[SerializeField]`-wired driver script.
-- Converged `README.md`'s repository links on the actual origin (`github.com/CoderGamester/Services`) — previously mixed with `com.gamelovers.services`, which is not this repository's name. Also fixed the GameData cross-reference link (actual origin is `Unity-GameData`, not `com.gamelovers.gamedata`).
+- Converged `README.md`'s repository links on the actual origin.
 
 ## [2.1.1] - 2026-07-04
 

From e2f4761f9207e41fd9187c8861f1573dc69d5a43 Mon Sep 17 00:00:00 2001
From: CoderGamester <game.gamester@gmail.com>
Date: Wed, 29 Jul 2026 22:35:03 +0100
Subject: [PATCH 4/5] feat: give the ServicesPlayground sample its own assembly

The sample uses #if ENABLE_INPUT_SYSTEM and UnityEngine.InputSystem.UI types
while relying on Assembly-CSharp, which AGENTS.md 19 disallows. No editor
asmdef is needed here -- the sample ships no editor scripts.

References GameLovers.GameData directly. That one is not obvious: the sample
reaches floatP through GameLovers.Services, but asmdef references are not
transitive, so it fails with CS0012 without the direct reference. Caught by
compiling the sample rather than by eyeballing the reference list -- Samples~ is
invisible to Unity, so it was copied into Assets/ to build. Final state: 0
errors, 0 warnings.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
---
 ...Services.Samples.ServicesPlayground.asmdef | 20 +++++++++++++++++++
 1 file changed, 20 insertions(+)
 create mode 100644 Samples~/ServicesPlayground/GameLovers.Services.Samples.ServicesPlayground.asmdef

diff --git a/Samples~/ServicesPlayground/GameLovers.Services.Samples.ServicesPlayground.asmdef b/Samples~/ServicesPlayground/GameLovers.Services.Samples.ServicesPlayground.asmdef
new file mode 100644
index 0000000..abc0f91
--- /dev/null
+++ b/Samples~/ServicesPlayground/GameLovers.Services.Samples.ServicesPlayground.asmdef
@@ -0,0 +1,20 @@
+{
+    "name": "GameLovers.Services.Samples.ServicesPlayground",
+    "rootNamespace": "GameLovers.Services.Samples.ServicesPlayground",
+    "references": [
+        "GameLovers.Services",
+        "GameLovers.GameData",
+        "Unity.TextMeshPro",
+        "UnityEngine.UI",
+        "Unity.InputSystem"
+    ],
+    "includePlatforms": [],
+    "excludePlatforms": [],
+    "allowUnsafeCode": false,
+    "overrideReferences": false,
+    "precompiledReferences": [],
+    "autoReferenced": true,
+    "defineConstraints": [],
+    "versionDefines": [],
+    "noEngineReferences": false
+}

From fadc731bd5bf8d299751bd57ab8ae5b878a8b421 Mon Sep 17 00:00:00 2001
From: CoderGamester <game.gamester@gmail.com>
Date: Thu, 30 Jul 2026 00:34:14 +0100
Subject: [PATCH 5/5] fix: assign default actions when swapping in
 InputSystemUIInputModule

Under Active Input Handling = "Input System Package (New)" the swap destroyed
the scene's StandaloneInputModule and added an InputSystemUIInputModule via
AddComponent, which leaves its actions unassigned. An unassigned module
processes no input at all -- silently, with nothing logged -- so every button in
the sample was dead.

AssignDefaultActions() wires the default UI action map.

Found while driving the sibling uiservice UrpRendering sample through the Unity
MCP: buttons rendered, reported interactable, and did nothing on click. This
sample shares the same helper, copied from it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
---
 Samples~/ServicesPlayground/ServicesPlaygroundUI.cs | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/Samples~/ServicesPlayground/ServicesPlaygroundUI.cs b/Samples~/ServicesPlayground/ServicesPlaygroundUI.cs
index 16ee011..64703ab 100644
--- a/Samples~/ServicesPlayground/ServicesPlaygroundUI.cs
+++ b/Samples~/ServicesPlayground/ServicesPlaygroundUI.cs
@@ -182,7 +182,9 @@ private static void EnsureInputModuleOnEventSystem()
 			{
 				DestroyImmediate(legacy);
 			}
-			go.AddComponent<UnityEngine.InputSystem.UI.InputSystemUIInputModule>();
+			// AddComponent leaves the module's actions unassigned, and an unassigned module silently
+			// processes no input at all -- every button appears dead with nothing logged.
+			go.AddComponent<UnityEngine.InputSystem.UI.InputSystemUIInputModule>().AssignDefaultActions();
 #else
 			if (go.GetComponent<StandaloneInputModule>() == null)
 			{
