BETAmodules.com is in beta — open to partnerships & joint ventures.Build with us

sashite-pan

v4.0.0RubyGems· Ruby

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).

The verdict
Aging — last published 7 months ago — check before adopting. Check the repo for activity before adopting.
Check the repo for activity before adopting.
Live from the RubyGems registry · derived rules, not AI
How it scores
MaintenanceAging
PopularityNiche
SecurityClean
LicensePermissive
DepsZero deps
Maintenance
Last published 7 months ago — check before adopting.
Popularity
12 downloads / week
Security
No known advisories for this version (OSV).
License
MIT
Dependencies
No runtime dependencies
Recent releases
  • 4.0.07 months ago
  • 3.0.012 months ago
  • 2.0.0over a year ago
  • 1.3.04 years ago
  • 1.2.05 years ago
  • 1.1.05 years ago
  • 1.0.05 years ago
  • 0.2.011 years ago
sashite-pan — 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). (Ruby / RubyGems) · Modules