Sashité for Developers
  1. Sashité for Developers
  2. Specifications
  3. EPIN
  4. 1.0.0

Extended Piece Identifier Notation (EPIN) Specification


Overview

Extended Piece Identifier Notation (EPIN) extends Piece Identifier Notation (PIN) to provide style-aware piece representation in abstract strategy board games. EPIN adds a derivation marker that distinguishes pieces by their style origin, enabling cross-style game scenarios and piece origin tracking.

EPIN represents all four fundamental piece attributes:

EPIN maintains full backward compatibility with PIN while adding style differentiation capabilities.


Terminology

For complete definitions of terms used in this document, see the Glossary.


Dependencies

EPIN builds upon Piece Identifier Notation (PIN) specification:

PIN provides the foundational character, case encoding, and state modifier system that EPIN extends with style information.


Format Specification

Structure

<pin>[<suffix>]

Grammar (BNF)

<epin> ::= <pin>
        | <pin> <derivation>

<derivation> ::= "'"

<pin> ::= <letter>
       | <state-modifier> <letter>

<state-modifier> ::= "+" | "-"
<letter> ::= <uppercase-letter> | <lowercase-letter>

<uppercase-letter> ::= "A" | "B" | "C" | ... | "Z"
<lowercase-letter> ::= "a" | "b" | "c" | ... | "z"

Regular Expression

\A[-+]?[A-Za-z]'?\z

PIN Extension

Extension Relationship

EPIN extends PIN by adding style derivation information while preserving all PIN capabilities:

PIN Foundation: All PIN identifiers are valid EPIN identifiers Style Extension: EPIN adds optional derivation markers to indicate style origin

Piece Attribute Mapping

EPIN extends PIN’s attribute encoding with style information:

Piece Attribute EPIN Encoding Examples
Name ASCII letter choice (from PIN) KingK/k, KnightN/n
Side Letter case (from PIN) K = First player, k = Second player
State State modifier (from PIN) +K = Enhanced, -K = Diminished, K = Normal
Style Derivation marker K = Native style, K' = Foreign style

Style Derivation Logic

When both sides use the same native style, derivation markers become optional as P and P' pieces are functionally equivalent.

Example: In a Chess vs. Makruk match:


Cross-Style Scenarios

Style Origin Tracking

EPIN enables tracking of piece origins in cross-style games where pieces may change ownership or style through game mechanics:

Native pieces (no derivation marker):

Foreign pieces (with ' derivation marker):

Example Scenarios

Chess vs. Ōgi:

Same Style Games:


Conversion to QPI

EPIN pieces can be converted to QPI format using the match’s side-style associations:

Conversion Rules

EPIN Format Style Selection
Native (no suffix) Current side’s native style
Derived (' suffix) Opposite side’s native style

Example: Chess vs. Ōgi Match

Side-style associations:

Conversions:

The QPI case always matches the EPIN case, ensuring side consistency.


System Constraints

Native Style Requirement

EPIN requires each side to have a defined native style:

The native style assignment is rule-dependent and remains fixed throughout the match. During gameplay, pieces may change style through mutations, with the derivation marker indicating whether the current style matches the piece’s side native style.

PIN Inheritance

EPIN inherits all PIN constraints and capabilities:


Integration with PIN

Full Backward Compatibility

EPIN maintains complete backward compatibility with PIN:

Extension Benefits

EPIN adds cross-style capabilities while preserving PIN’s:


Design Properties


Examples

See EPIN Examples for practical implementation guidance.


Reference Implementations

Ruby