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

Style Identifier Notation (SIN) Specification


Overview

Style Identifier Notation (SIN) provides a compact, ASCII-based format for identifying styles in abstract strategy board games. SIN uses single-character identifiers with case encoding to represent both style identity and player assignment simultaneously.

SIN translates style attributes into a minimal notation system using a single ASCII character that encodes both the style family and the controlling player.


Terminology

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


Concept

Style Identity and Player Assignment

SIN addresses the fundamental need to identify which style system governs piece behavior while simultaneously indicating which player controls pieces of that style. In cross-style scenarios where different players use different game traditions, this dual encoding becomes essential for unambiguous piece identification.

Dual-Purpose Encoding

Each SIN identifier serves two functions:

This approach enables compact representation while maintaining the clarity needed for complex multi-style game scenarios.

Canonical Representation

SIN enforces canonical representation where each style-player combination has exactly one valid identifier. This ensures consistent interpretation across different implementations and contexts.


Format Specification

Structure

<style-letter>

Grammar (BNF)

<sin> ::= <uppercase-letter> | <lowercase-letter>

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

Regular Expression

\A[A-Za-z]\z

Style Attribute Mapping

SIN encodes style attributes using the following correspondence:

Style Attribute SIN Encoding Examples
Style Family Letter choice C/c = Chess, S/s = Shōgi
Player Assignment Letter case C = First player, c = Second player

Canonical principle: Each style-player combination has exactly one SIN representation.


System Constraints

Style Limitation

SIN provides 26 possible identifiers per player using ASCII letters.

Player Limitation

SIN supports exactly two players through case distinction:

This limitation aligns with the Protocol’s two-player constraint and ensures consistency across the Sashité ecosystem.


Design Properties


Examples

See SIN Examples for practical implementation guidance.

Reference Implementations

Ruby