0.4.0

Catch-up release covering Phase 3-6 + velocity-identity. The Unity
SDK now mirrors the chain's full action surface as of 2026-05-03.

Phase 3 (fixed-shop swap pools):
- CreateSwapPoolAsync, SetSwapRateAsync, SwapAsync,
  ListSwapPoolsAsync, GetSwapPoolAsync.
- SwapPool with client-side Quote() that matches chain math.

Phase 4 (AMM pools):
- CreateAmmPoolAsync, AddLiquidityAsync, RemoveLiquidityAsync,
  AmmSwapAsync, ListAmmPoolsAsync, GetAmmPoolAsync.
- AmmCurve mirroring velocity_core::amm — SwapOutput, IntegerSqrt,
  MINIMUM_LIQUIDITY = 1000.
- AmmPool with QuoteSwap() for byte-exact chain-equivalent previews.

Phase 5 (flash loans):
- FlashSwapAsync + FlashStep variants (Swap / Transfer /
  AddLiquidity / RemoveLiquidity).
- FlashFee with FLASH_FEE_BPS = 5 and ceil-divide
  ComputeFlashFee.

Phase 6 (capability payment):
- NamespaceCapability enum + snake_case wire converter.
- CapabilityPrices, GetCapabilityPricesAsync,
  PurchaseCapabilityAsync.

velocity-identity bearer-token client:
- IdentityClient(baseUrl, bearerToken) with GetMeAsync,
  GetLinksAsync, IssueSigningClaimAsync.
- UserProfile, SigningClaim, VelocityAccountRef DTOs.
- VelocityHttpClient.BearerToken pass-through for any future
  bearer-auth surface.

Custodial-mode wrappers throughout — signed-envelope variants
(caller-signed Mint / Transfer / Swap / etc.) land in 0.5.0 once
chain-side wire shapes are confirmed (filed at siblings-comms/
blockchain/unity-sdk-asking-phase-3-6-wire-shapes.md).