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. Per-piece evaluation: Statuses are relative to individual Terminal Pieces
  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.

check

Simple check position:

{
  "setup": "4k^3/8/8/8/8/8/4R3/4K^3 / c/C",
  "moves": [],
  "status": "check"
}

Observable: The black king on e8 is in check — it can be captured by the white rook on e2. The game continues; Black must respond to the threat.

Per-piece evaluation: The status check applies to the specific Terminal Piece (the black king) that can be captured by an opponent’s Pseudo-Legal Move.

Rule-agnostic interpretation:


stale

Safe king position:

{
  "setup": "4k^3/8/8/8/8/8/8/R3K^3 / c/C",
  "moves": [],
  "status": "stale"
}

Observable: The black king on e8 is stale — it cannot be captured by any white piece. The white rook on a1 does not threaten the black king.

Per-piece evaluation: The status stale applies to the specific Terminal Piece (the black king) that cannot be captured by any opponent’s Pseudo-Legal Move.

Rule-agnostic interpretation:

Note: For a given Terminal Piece, stale and check are mutually exclusive — the piece is either threatened or safe.


checkmate

Scholar’s Mate position:

{
  "setup": "+r1bq+k^b1+r/+p+p+p+p1+p+p+p/2n2n2/4p2Q/2B1P3/8/+P+P+P+P1+P+P+P/+RNB1+K^1N+R / 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: The black king on e8 is in check (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 same king in check.

Per-piece evaluation: The status checkmate applies to the specific Terminal Piece (the black king) that is in check and remains in check regardless of the active player’s moves.

Rule-agnostic interpretation:


stalemate

Stalemate position:

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

Observable: The black king on h8 is stale (not in check). Moves are mechanically possible (king could move to g8 or h7), but all such moves would put the same king in check.

Per-piece evaluation: The status stalemate applies to the specific Terminal Piece (the black king) that is currently stale but would be in check after any Pseudo-Legal Move.

Rule-agnostic interpretation:


nomove

Complete blockage position:

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

Observable: The 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.

Per-piece evaluation: Unlike check, stale, checkmate, and stalemate, the status nomove is not relative to a specific Terminal Piece. It only expresses that no Pseudo-Legal movement is available for the active player.

Rule-agnostic interpretation:

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


bareking

Bare kings position:

{
  "setup": "4k^3/8/8/8/8/8/8/4K^3 / C/c",
  "moves": [],
  "status": "bareking"
}

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": "rnsmk^snr/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.


timelimit

Active position with time exceeded:

{
  "setup": "+rnbq+k^bn+r/+p+p+p+p+p+p+p+p/8/8/4P3/8/+P+P+P+P1+P+P+P/+RNBQ+K^BN+R / c/C",
  "moves": [
    ["e2-e4", 0.0]
  ],
  "status": "timelimit"
}

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

Rule-agnostic interpretation:


Cross-Game Applicability

Same Status, Different Games

Western Chess checkmate:

{
  "setup": "+r1bq+k^b1+r/+p+p+p+p1+p+p+p/2n2n2/4p2Q/2B1P3/8/+P+P+P+P1+P+P+P/+RNB1+K^1N+R / c/C",
  "status": "checkmate"
}

Japanese Shōgi checkmate:

{
  "setup": "ln1gk^1snl/1r5b1/p1ppppppp/9/1p7/2P6/PP1PPPPPP/1B5R1/LNSGK^GSNL P/p s/S",
  "status": "checkmate"
}

Chinese Xiangqi checkmate:

{
  "setup": "3a1k^3/9/9/9/9/9/9/9/4R4/3AK^4 / X/x",
  "status": "checkmate"
}

Same CGSN status (checkmate) applies across different game traditions, demonstrating rule-agnostic universality. In each case, the status is relative to the specific Terminal Piece (the king/general) that is in check and cannot escape.


Integration with PCN

Status Explicitly Declared

{
  "sides": {
    "first": { "style": "CHESS" },
    "second": { "style": "chess" }
  },
  "setup": "+rnbq+k^bn+r/+p+p+p+p+p+p+p+p/8/8/4P3/8/+P+P+P+P1+P+P+P/+RNBQ+K^BN+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": "+r1bq+k^b1+r/+p+p+p+p1+p+p+p/2n2n2/4p2Q/2B1P3/8/+P+P+P+P1+P+P+P/+RNB1+K^1N+R / 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 by evaluating the black king’s status.


Summary

Key Principles

  1. Per-piece evaluation: check, stale, checkmate, and stalemate are relative to a specific Terminal Piece, not to all Terminal Pieces collectively
  2. Inferable statuses (check, stale, checkmate, stalemate, nomove, etc.) can be omitted — position provides information
  3. Explicit-only statuses (resignation, timelimit, repetition, etc.) must be recorded — cannot be derived
  4. Blockage taxonomy: nomove = mechanical blockage (no moves available); checkmate/stalemate = rule-based constraint on a specific Terminal Piece
  5. Rule-agnostic design: Same status, different competitive interpretations

Usage Guidelines

Always explicitly record:

Can omit when position is clear:

Validate appropriately: