feat: migrate state and complete live systems

- replace the Haskell bridge with transactional SQLite state and validation

- centralize versions and harden resource, capture, and release tooling

- complete active gacha schedules, point exchange, and mail grants

- add equipment refinement, presets, and ordinary formation workflows

- improve client plugins, request timing, and normalized persistence
This commit is contained in:
2026-09-24 22:43:03 +08:00
parent 113e941bef
commit f94cfa1cf3
162 changed files with 13714 additions and 12632 deletions
@@ -5,6 +5,7 @@
<Nullable>disable</Nullable>
<AssemblyName>BD2LocalIdentity</AssemblyName>
<RootNamespace>Bd2LocalIdentity</RootNamespace>
<BD2PluginVersionKey>local_identity</BD2PluginVersionKey>
</PropertyGroup>
<Target Name="RequireGameDir" BeforeTargets="ResolveReferences" Condition="'$(GameDir)' == ''">
<Error Text="GameDir is required. Build with -p:GameDir=&lt;local-client-directory&gt;." />
@@ -27,4 +28,5 @@
<Private>false</Private>
</Reference>
</ItemGroup>
<Import Project="..\VersionSource.targets" />
</Project>