Directory.Build.targets is imported by Unity's generated root csprojs too,
which take CultMath from the UPM DLL, so IDE builds of Assembly-CSharp broke
whenever the sibling CultLib was dirty, elsewhere, or missing. The guard now
runs only when a ProjectReference names the CultMath project under
CultLibRoot: Aetheria.Shared directly, AetherDb through the SDK's
transitive project references.
Checked: Assembly-CSharp skips the target; Aetheria.Shared still fails on a
wrong CultLibRevision, on CULTLIB_ROOT pointing at a scratch clone on another
commit, and AetherDb fails on that clone made dirty.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Directory.Build.props names CultLibRoot (CULTLIB_ROOT, else the sibling
checkout) and pins CultLibRevision to f0605367 (CultMath 0.2.1 on main).
Directory.Build.targets carries Delvehold's VerifyCultLibRevision guard,
checking for CultMath.csproj: HEAD must equal the pin and the worktree must
be clean.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>