fc690d66c7
Extract MutablePoint, AffinePoint, and PointScratch from Point.kt into PointTypes.kt (140 lines). Rename Point.kt to ECPoint.kt (897 lines) to match the single top-level declaration (ktlint convention). Remove dead code: - addWnafJacobian: private function never called (replaced by addWnafMixedPP with effective-affine tables) Remove 5 KeyCodec wrapper functions from ECPoint that just delegated (liftX, hasEvenY, parsePublicKey, serializeUncompressed, serializeCompressed). Callers in Secp256k1.kt and PointTest.kt now use KeyCodec directly, making ownership clear: KeyCodec owns key encoding/decoding, ECPoint owns point arithmetic. Update Secp256k1.kt header documentation with current benchmark numbers (verify 1.7x, sign 0.9x faster than native, etc.) and a concise list of optimizations. No functional or performance changes — all 170 tests pass, benchmark numbers unchanged. https://claude.ai/code/session_017UbWduFi1sLUsgVUMUH2nx