module Sashite::Gan

GAN (General Actor Notation) implementation for Ruby

Provides a rule-agnostic format for identifying game actors in abstract strategy board games by combining Style Name Notation (SNN) and Piece Identifier Notation (PIN) with a colon separator and consistent case encoding.

GAN represents all four fundamental piece attributes from the Game Protocol:

Format: <snn>:<pin>

Examples:

"CHESS:K"    - First player chess king
"chess:k"    - Second player chess king
"SHOGI:+P"   - First player enhanced shōgi pawn
"xiangqi:-g" - Second player diminished xiangqi general

See: sashite.dev/specs/gan/1.0.0/