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. Rule-agnostic interpretation: How status remains independent of competitive outcomes
  3. Integration patterns: Usage within PCN

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"], ["e7", "e5"],
    ["f1", "c4"], ["b8", "c6"],
    ["d1", "h5"], ["g8", "f6"],
    ["h5", "f7"]
  ],
  "status": "checkmate"
}

Observable: Black king on e8 is attacked by white queen on f7, no legal moves available.

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 has no legal moves but is not in check.

Rule-agnostic interpretation:


insufficient

Bare kings position:

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

Observable: Only kings remain. Under Western chess rules, checkmate is impossible.

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 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"]
  ],
  "status": "time_limit"
}

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

Rule-agnostic interpretation:


repetition

Position with threefold repetition:

{
  "setup": "+r1bq+kbn+r/+p+p+p+p1+p+p+p/2n5/8/8/2N5/+P+P+P+P1+P+P+P/+R1BQ+KBN+R / C/c",
  "moves": [
    ["b1", "c3"], ["b8", "c6"],
    ["c3", "b1"], ["c6", "b8"],
    ["b1", "c3"], ["b8", "c6"],
    ["c3", "b1"], ["c6", "b8"]
  ],
  "status": "repetition"
}

Why explicit-only: Requires complete move history to detect repetition.

Rule-agnostic interpretation:


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": [
    ["e7", "e5"]
  ],
  "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"], ["e7", "e5"],
    ["f1", "c4"], ["b8", "c6"],
    ["d1", "h5"], ["g8", "f6"],
    ["h5", "f7"]
  ]
}

PCN omits status. Implementation can infer checkmate from position.


Status Declared for Clarity

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

Even though insufficient is inferable, explicit declaration removes ambiguity.


Cross-Game Applicability

Western Chess

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

Japanese Shōgi

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

Chinese Xiangqi

{
  "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.


Summary

Key Principles

  1. Inferable statuses (checkmate, stalemate, insufficient) can be omitted—position provides information
  2. Explicit-only statuses (resignation, time_limit, repetition) must be recorded—cannot be derived
  3. Rule-agnostic design: Same status, different competitive interpretations
  4. Integration flexibility: Works seamlessly with PCN and other formats

Usage Guidelines

Always explicitly record:

Can omit when position is clear:

Validate appropriately: