Style Identifier Notation (SIN) Specification
- Version: 1.0.0
- Author: Sashité
- Published: June 23, 2025
- License: MIT License
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:
- Style Family Identification: The letter choice indicates which rule system applies
- Player Assignment: The letter case indicates which player uses this style as their native system
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:
- First player: Uppercase letters (
A-Z
) - Second player: Lowercase letters (
a-z
)
This limitation aligns with the Protocol’s two-player constraint and ensures consistency across the Sashité ecosystem.
Design Properties
- ASCII compatibility: Maximum portability across systems
- Rule-agnostic: Independent of specific game mechanics
- Minimal overhead: Single character per style-player combination
Examples
See SIN Examples for practical implementation guidance.
Reference Implementations
Ruby
- SIN.rb – Reference implementation with validation and ecosystem integration.