diff --git a/Directory.Build.props b/Directory.Build.props
new file mode 100644
index 0000000..c8a3c67
--- /dev/null
+++ b/Directory.Build.props
@@ -0,0 +1,10 @@
+
+
+ $(CULTLIB_ROOT)
+ $(MSBuildThisFileDirectory)..\CultLib
+
+ 42dce3611a81adc5c5fac54cadbaa5637d6022d3
+ C:\Program Files\Git\cmd\git.exe
+ git
+
+
diff --git a/Directory.Build.targets b/Directory.Build.targets
new file mode 100644
index 0000000..46d436a
--- /dev/null
+++ b/Directory.Build.targets
@@ -0,0 +1,30 @@
+
+
+
+
+ <_CultLibReference Include="@(ProjectReference)"
+ Condition="$([System.String]::Copy('%(Filename)').StartsWith('GameCult.')) or '%(Filename)' == 'CultMath'" />
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/README.md b/README.md
index 15358ff..7e75b96 100644
--- a/README.md
+++ b/README.md
@@ -80,3 +80,14 @@ Add the Unity package by local path, alongside `org.gamecult.cultlib` (see
Then open `GameCult > Brokkr` in Unity. The window mirrors editor state to a
CultMesh cache file in the project.
+
+## Building against CultLib
+
+Builds are pinned to CultLib 2.0.0 (tag `cultlib-unity-v2.0.0`, revision `42dce3611a81adc5c5fac54cadbaa5637d6022d3`); the build fails if the CultLib checkout differs or is dirty. Create a pinned worktree and point the build at it:
+
+```powershell
+git -C worktree add --detach cultlib-unity-v2.0.0
+dotnet build -p:CultLibRoot= # or set CULTLIB_ROOT=
+```
+
+Without an override the sibling `..\CultLib` checkout is used and must itself be at that tag.
diff --git a/brokkr-command/Brokkr.Command.csproj b/brokkr-command/Brokkr.Command.csproj
index 5e322cd..6c173d8 100644
--- a/brokkr-command/Brokkr.Command.csproj
+++ b/brokkr-command/Brokkr.Command.csproj
@@ -4,7 +4,6 @@
net10.0
enable
enable
- ..\..\CultLib
diff --git a/brokkr-contracts.Tests/Brokkr.Contracts.Tests.csproj b/brokkr-contracts.Tests/Brokkr.Contracts.Tests.csproj
index 816b32f..31ac48e 100644
--- a/brokkr-contracts.Tests/Brokkr.Contracts.Tests.csproj
+++ b/brokkr-contracts.Tests/Brokkr.Contracts.Tests.csproj
@@ -4,7 +4,6 @@
enable
enable
false
- ..\..\CultLib
diff --git a/brokkr-contracts/Brokkr.Contracts.csproj b/brokkr-contracts/Brokkr.Contracts.csproj
index 7413d56..51d0d0f 100644
--- a/brokkr-contracts/Brokkr.Contracts.csproj
+++ b/brokkr-contracts/Brokkr.Contracts.csproj
@@ -5,7 +5,6 @@
enable
latest
false
- ..\..\CultLib