Sashité for Developers
  1. Sashité for Developers
  2. Specifications
  3. CGSN
  4. 1.0.0
  5. Examples

CGSN Examples

Practical scenarios illustrating Chess Game Status Notation v1.0.0 core concepts.


Overview

This document demonstrates CGSN’s key principles through focused examples:

  1. Inferable vs. Explicit-only: Which statuses can be derived from position
  2. Blockage taxonomy: Mechanical vs. rule-based constraints
  3. Rule-agnostic interpretation: How status remains independent of competitive outcomes

Inferable Statuses

Statuses that can be determined from position analysis when game rules are known.

checkmate

Scholar’s Mate position:

{
  "setup": "r1bqkb1r/pppp1ppp/2n2n2/4p2Q/2B1P3/8/PPPP1PPP/RNB1K1NR / c/C",
  "moves": [
    ["e2-e4", 0.0], ["e7-e5", 0.0],
    ["f1-c4", 0.0], ["b8-c6", 0.0],
    ["d1-h5", 0.0], ["g8-f6", 0.0],
    ["h5-f7", 0.0]
  ],
  "status": "checkmate"
}

Observable: Black king on e8 is in check state (capturable by white queen on f7). Moves are mechanically possible (e.g., king moves to d8, d7, or f8), but all such moves would leave the king in check state.

Rule-agnostic interpretation:


stalemate

Stalemate position:

{
  "setup": "7k/5Q2/6K1/8/8/8/8/8 / c/C",
  "moves": [],
  "status": "stalemate"
}

Observable: Black king on h8 is not in check state. Moves are mechanically possible (king could move to g8 or h7), but all such moves would place the king in check state.

Rule-agnostic interpretation:


staleturn

Complete blockage position:

{
  "setup": "8/8/8/3ppp2/3PKP2/3PPP2/8/8 / c/C",
  "moves": [],
  "status": "staleturn"
}

Observable: White king on e4 is completely surrounded by pieces. No moves are mechanically possible according to piece movement capabilities - every square the king could move to is occupied, and no other white pieces can move.

Rule-agnostic interpretation:

Note: This demonstrates pure mechanical blockage, independent of check considerations.


bare_king

Bare kings position:

{
  "setup": "4k3/8/8/8/8/8/8/4K3 / C/c",
  "moves": [],
  "status": "bare_king"
}

Observable: Only kings (terminal pieces) remain on the board. All other pieces have been captured.

Rule-agnostic interpretation:


Explicit-Only Statuses

Statuses requiring information external to position — must be explicitly recorded.

resignation

Mid-game position with resignation:

{
  "setup": "rnsmksnr/8/pppppppp/8/8/PPPPPPPP/8/RNSKMSNR / M/m",
  "moves": [],
  "status": "resignation"
}

Why explicit-only: Position is playable. Nothing in the position indicates resignation occurred.

Rule-agnostic interpretation:

Note: This example uses Makruk starting position, demonstrating that resignation can occur in any game tradition, even before the first move.


time_limit

Active position with time exceeded:

{
  "setup": "+rnbq+kbn+r/+p+p+p+p+p+p+p+p/8/8/4P3/8/+P+P+P+P1+P+P+P/+RNBQ+KBN+R / c/C",
  "moves": [
    ["e2-e4", 0.0]
  ],
  "status": "time_limit"
}

Why explicit-only: Time information is not encoded in position.

Rule-agnostic interpretation:


Cross-Game Applicability

Same Status, Different Games

Western Chess checkmate:

{
  "setup": "r1bqkb1r/pppp1ppp/2n2n2/4p2Q/2B1P3/8/PPPP1PPP/RNB1K1NR / c/C",
  "status": "checkmate"
}

Japanese Shōgi checkmate:

{
  "setup": "ln1gk1snl/1r5b1/p1ppppppp/9/1p7/2P6/PP1PPPPPP/1B5R1/LNSGKGSNL P/p s/S",
  "status": "checkmate"
}

Chinese Xiangqi checkmate:

{
  "setup": "3a1k3/9/9/9/9/9/9/9/4R4/3AK4 / X/x",
  "status": "checkmate"
}

Same CGSN status (checkmate) applies across different game traditions, demonstrating rule-agnostic universality.


Integration with PCN

Status Explicitly Declared

{
  "sides": {
    "first": { "style": "CHESS" },
    "second": { "style": "chess" }
  },
  "setup": "+rnbq+kbn+r/+p+p+p+p+p+p+p+p/8/8/4P3/8/+P+P+P+P1+P+P+P/+RNBQ+KBN+R / c/C",
  "moves": [
    ["e2-e4", 0.0]
  ],
  "status": "resignation"
}

PCN explicitly declares resignation (explicit-only status, cannot be inferred).


Status Omitted (Inferable)

{
  "sides": {
    "first": { "style": "CHESS" },
    "second": { "style": "chess" }
  },
  "setup": "r1bqkb1r/pppp1ppp/2n2n2/4p2Q/2B1P3/8/PPPP1PPP/RNB1K1NR / c/C",
  "moves": [
    ["e2-e4", 0.0], ["e7-e5", 0.0],
    ["f1-c4", 0.0], ["b8-c6", 0.0],
    ["d1-h5", 0.0], ["g8-f6", 0.0],
    ["h5-f7", 0.0]
  ]
}

PCN omits status. Implementation can infer checkmate from position.


Summary

Key Principles

  1. Inferable statuses (checkmate, stalemate, staleturn) can be omitted—position provides information
  2. Explicit-only statuses (resignation, time_limit, repetition, etc.) must be recorded—cannot be derived
  3. Blockage taxonomy: staleturn = mechanical blockage; checkmate/stalemate = rule-based constraint
  4. Rule-agnostic design: Same status, different competitive interpretations

Usage Guidelines

Always explicitly record:

Can omit when position is clear:

Validate appropriately: