- Sashité for Developers
- Specifications
- GGN
- 1.0.0
- Examples
GGN Examples
Practical examples demonstrating General Gameplay Notation v1.0.0.
Basic Movement Patterns
Simple Move
{
"C:R": {
"a1": {
"a4": [
{
"must": { "a2": "empty", "a3": "empty", "a4": "empty" }
}
]
}
}
}
Rook at Square a1 has the movement capability to reach Square a4 when all intermediate Squares and the destination are empty.
Move or Capture
{
"C:R": {
"a1": {
"a4": [
{
"must": { "a2": "empty", "a3": "empty", "a4": "empty" }
},
{
"must": { "a2": "empty", "a3": "empty", "a4": "enemy" }
}
]
}
}
}
Two distinct movement possibilities: rook can perform board-to-board Displacement to empty a4 OR board-to-hand Displacement (Capture) of an enemy Piece at a4.
Special Chess Moves
Castling
{
"C:+K": {
"e1": {
"g1": [
{
"must": { "f1": "empty", "g1": "empty", "h1": "C:+R" }
}
]
}
}
}
King in Enhanced State (+ modifier) has the movement capability to castle kingside if path Squares are empty and rook is in position.
En Passant
{
"C:P": {
"e5": {
"f6": [
{
"must": { "f6": "empty", "f5": "c:-p" }
}
]
}
}
}
White pawn has the movement capability to Capture en passant if f6 is empty and f5 contains a vulnerable black pawn in Diminished State (- modifier).
Pawn Promotion Zone
{
"C:P": {
"e7": {
"e8": [
{
"must": { "e8": "empty" }
}
],
"d8": [
{
"must": { "d8": "enemy" }
}
]
}
}
}
Pawn at e7 has movement capabilities to advance to e8 if empty or diagonally Capture to d8 if occupied by enemy Piece.
Drops and Reserves
Drop from Hand
{
"S:P": {
"*": {
"e5": [
{
"must": { "e5": "empty" }
}
]
}
}
}
Pawn in player’s Hand has the movement capability for hand-to-board Displacement (Placement) to e5 when the Square is empty.
Drop with File Restriction
{
"S:P": {
"*": {
"e4": [
{
"must": { "e4": "empty" },
"deny": {
"e1": "S:P", "e2": "S:P", "e3": "S:P",
"e5": "S:P", "e6": "S:P", "e7": "S:P",
"e8": "S:P", "e9": "S:P"
}
}
]
}
}
}
Pawn Placement to e4 has the movement capability when Square is empty and no other unpromoted pawn (in Normal State) exists on the e-file.
Complex Constraints
Xiangqi Cannon Capture
{
"x:c": {
"b2": {
"b8": [
{
"must": {
"b3": "empty", "b4": "empty",
"b5": "empty", "b6": "empty",
"b8": "enemy"
},
"deny": { "b7": "empty" }
}
]
}
}
}
Cannon has the movement capability to Capture by jumping over exactly one Piece: path Squares must be clear except for one platform Piece at b7.
Selective Capture Restriction
{
"C:R": {
"a1": {
"a8": [
{
"must": {
"a2": "empty", "a3": "empty", "a4": "empty",
"a5": "empty", "a6": "empty", "a7": "empty",
"a8": "enemy"
},
"deny": { "a8": "c:k" }
}
]
}
}
}
Rook has the movement capability to Capture any enemy Piece at a8 except the black king (specific Name exclusion).
Knight Jump
{
"C:N": {
"b1": {
"c3": [
{}
]
}
}
}
Knight has unconditional movement capability to c3 with no environmental constraints required.
State-Aware Movements
Enhanced State Pieces
{
"C:+R": {
"a1": {
"a4": [
{
"must": { "a2": "empty", "a3": "empty", "a4": "empty" }
}
]
}
}
}
Rook in Enhanced State (+ modifier) has movement capability constrained by path requirements.
Diminished State Capture
{
"c:p": {
"d4": {
"e3": [
{
"must": { "e3": "empty", "e4": "C:-P" }
}
]
}
}
}
Black pawn has the movement capability to Capture en passant only when white pawn is in Diminished State (- modifier), indicating vulnerability.
Multiple Destinations
{
"C:N": {
"e4": {
"c3": [
{
"must": { "c3": "empty" }
}
],
"c5": [
{
"must": { "c5": "empty" }
},
{
"must": { "c5": "enemy" }
}
],
"d2": [
{
"must": { "d2": "empty" }
}
]
}
}
}
Knight at e4 has movement capabilities to multiple destinations, each with their own environmental constraints and possibility variations.
Cross-Style Games
Mixed Piece Systems
{
"C:Q": {
"d4": {
"h8": [
{
"must": {
"e5": "empty", "f6": "empty",
"g7": "empty"
}
}
]
}
},
"x:m": {
"b1": {
"d2": [
{
"must": { "d2": "empty" },
"deny": { "c1": "enemy" }
}
]
}
}
}
Chess queen and Xiangqi horse coexisting with their respective Style-specific movement capabilities.
Advanced Patterns
Double Negation for Allied Piece
{
"S:L": {
"c3": {
"c4": [
{
"deny": { "c4": "enemy", "c4": "empty" }
}
]
}
}
}
Lance has movement capability to c4 only when it contains an allied Piece (neither empty nor enemy, evaluated from Active Player perspective).
Conditional Path
{
"C:B": {
"a1": {
"h8": [
{
"must": {
"b2": "empty", "c3": "empty", "d4": "empty",
"e5": "empty", "f6": "empty", "g7": "empty",
"h8": "empty"
}
},
{
"must": {
"b2": "empty", "c3": "empty", "d4": "empty",
"e5": "empty", "f6": "empty", "g7": "empty",
"h8": "enemy"
},
"deny": { "h8": "c:k", "h8": "c:q" }
}
]
}
}
}
Bishop has two distinct movement possibilities to h8: Displacement to empty Square, or Capture of any enemy Piece except king or queen.
Important Notes
Evaluation Context
All enemy evaluations in these examples are from the Active Player’s perspective - the player whose Turn it currently is, as defined by the protocol.
What GGN Represents
GGN encodes Mechanically Possible Moves (also called Pseudo-Legal Moves):
- Movement capabilities: Nominal abilities of Pieces based on Name, State, and Style attributes
- Environmental constraints: Board conditions that must (or must not) exist for movement capabilities to be realized
- Movement possibilities: Distinct combinations of capabilities and constraints for reaching the same destination
What GGN Does Not Represent
GGN deliberately excludes game-specific concerns that transform Mechanically Possible Moves into Legal Moves:
- Check State restrictions and Terminal Piece protections
- Historical conditions (castling rights timing, en passant temporal requirements)
- Turn-specific constraints beyond basic alternation
- Victory/defeat conditions and Terminal States
- Move execution mechanics and Action sequencing
- State transition consequences and cascading effects
- Competitive interpretations and rule-specific legality
Move Hierarchy Position
As defined in the protocol and glossary:
Protocol-Valid Move
↓ (+ piece movement capabilities)
Mechanically Possible Move / Pseudo-Legal Move ← GGN operates here
↓ (+ rule system constraints)
Legal Move
GGN operates at the Mechanically Possible Move level, encoding what Pieces can do geometrically based on their attributes, without incorporating game-specific legality rules.
Design Philosophy
GGN focuses exclusively on describing movement capabilities with environmental pre-conditions. Game engines and rule systems handle:
- Filtering Mechanically Possible Moves to determine Legal Moves
- Move validation against complete rule sets
- Move execution and state transitions
- Consequence evaluation and competitive interpretations
This separation enables GGN to remain rule-agnostic while providing a foundation for diverse rule systems.
