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 foundational, compact ASCII format for identifying styles in abstract strategy board games. SIN serves as a primitive building block in the Sashité ecosystem, using a single ASCII letter with case encoding to simultaneously represent style identity and player assignment.

As a foundational primitive, SIN is completely self-contained and provides the minimal viable format for style identification. It does not depend on or derive from any other specifications.

A SIN identifier consists of two semantic components:


Terminology

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


Dependencies

None. SIN is a foundational primitive with no dependencies.


Format Specification

Structure

<character>

Where <character> is an ASCII letter (A-Z or a-z) representing both style identity and player assignment.

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

Foundational Design

Primitive Principles

As a foundational primitive, SIN follows these design principles:

  1. Minimal viable format: Single character provides maximum compactness
  2. Self-contained: No external dependencies or derivation requirements
  3. Extensible foundation: Can be extended by more descriptive systems like SNN
  4. Universal applicability: Works across all abstract strategy game contexts
  5. Deterministic behavior: Clear, unambiguous identification rules

Character Assignment

SIN characters are assigned directly without derivation from external sources:


Attribute Encoding

SIN encodes style attributes using this correspondence:

Attribute SIN Encoding Examples
Character ASCII letter (A-Z) C = Chess, S = Shogi, X = Xiangqi
Assignment Letter case Uppercase = First player, Lowercase = Second player

Assignment Rules

Interpretation Examples

SIN Style Assignment Interpretation
C Chess First player First player uses Chess style
c Chess Second player Second player uses Chess style
O Ōgi First player First player uses Ōgi style
o Ōgi Second player Second player uses Ōgi style

Relationship with SNN

SIN and SNN are independent primitives that serve complementary roles:

Optional Correspondence

While both specifications can be used independently, they may be related through:

Important Notes

  1. No dependency: SIN does not depend on SNN, nor SNN on SIN
  2. Bidirectional mapping requires context: Converting between SIN and SNN requires external mapping information
  3. Independent usage: Systems may use SIN alone, SNN alone, or both with defined mappings
  4. Multiple mappings: One SIN character may correspond to multiple SNN names in different contexts

System Constraints

Character Availability

SIN provides 26 possible identifiers for unique styles (A-Z), with case encoding providing player assignment.

Player Limitation

SIN supports exactly two players through case distinction:

Context Dependency

The meaning of SIN characters depends on context:


Design Properties


Examples

See SIN Examples for practical implementation guidance and cross-style scenarios.


Reference Implementations

Ruby