- Sashité for Developers
- Specifications
- CGSN
- 1.0.0
- 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:
- Inferable vs. Explicit-only: Which statuses can be derived from position
- Rule-agnostic interpretation: How status remains independent of competitive outcomes
- 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:
- Traditional chess: White wins
- Suicide chess: White loses (opponent forced to capture)
- CGSN records: “Terminal piece in checkmate position”
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:
- Western chess: Draw
- Some variants: Loss for stalemated player
- CGSN records: “No legal moves, terminal piece not in check”
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:
- Western chess: Draw
- Variants with different rules: May continue
- CGSN records: “Insufficient material for checkmate”
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:
- Traditional: Resigning player loses
- CGSN records: “A player resigned” (not which player)
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:
- Blitz: Player loses
- Correspondence: May be adjudicated
- CGSN records: “Time limit was exceeded”
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:
- Western chess: Draw claimable
- Xiangqi: Different repetition rules
- CGSN records: “Position repetition occurred”
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
- Inferable statuses (
checkmate,stalemate,insufficient) can be omitted—position provides information - Explicit-only statuses (
resignation,time_limit,repetition) must be recorded—cannot be derived - Rule-agnostic design: Same status, different competitive interpretations
- Integration flexibility: Works seamlessly with PCN and other formats
Usage Guidelines
Always explicitly record:
resignation,time_limit,move_limit,agreement,illegal_move,repetition
Can omit when position is clear:
checkmate,stalemate,bare_king,mare_king,insufficient,in_progress
Validate appropriately:
- Verify status string format
- Check against defined CGSN values
- Optionally validate status-position consistency for inferable statuses
