Parse and generate Portable Action Notation (PAN) strings for representing atomic actions in abstract strategy board games including chess, shogi, xiangqi, and others. PAN provides an intuitive operator-based syntax with six core operators: "-" (move to empty square), "+" (capture), "~" (special moves with side effects), "*" (drop to board), "." (drop with capture), and "=" (in-place transformation), plus "..." (pass turn). Supports coordinates via CELL specification and piece identifiers via EPIN specification. Handles transformations ("e7-e8=Q"), enhanced/diminished states ("+R", "-P"), and style derivation markers ("K'"). Provides comprehensive validation, immutable action objects, and functional API design. Examples: "e2-e4" (move), "d1+f3" (capture), "e1~g1" (castling), "P*e5" (drop), "e7-e8=Q" (promotion), "..." (pass), "+d4" (static capture), "e4=+P" (modify).

Required Ruby Version

>= 3.2.0

Authors

Cyril Kato

Versions

  1. 4.0.0 October 25, 2025 (15 KB)
  2. 3.0.0 June 05, 2025 (10 KB)
  3. 2.0.0 May 23, 2025 (9.5 KB)
  4. 1.3.0 August 17, 2021 (7 KB)
  5. 1.2.0 July 05, 2020 (6.5 KB)
Show all versions (11 total)

Pushed by

SHA 256 checksum