Sashité for Developers
  1. Sashité for Developers
  2. Specifications
  3. PCN
  4. 1.0.0
  5. Examples
  6. Positions Only

Positions Only (PCN v1.0.0)

This page collects setup-only documents — positions without plies — for puzzles, endgame studies, opening snapshots, teaching positions, or cross-variant setups.

All examples are shown in both TOML and JSON formats.

Minimum valid PCN requires only setup with a feen property.


1. Empty Board

The absolute minimum PCN document.

TOML

[setup]
feen = "8/8/8/8/8/8/8/8 / C/c"

JSON

{
  "setup": {
    "feen": "8/8/8/8/8/8/8/8 / C/c"
  }
}

Use case: Neutral canvas for editors, coordinate testing, or CELL integration checks.


2. Chess Puzzle — Mate in One

A tactical puzzle position.

TOML

[meta]
name = "Mate in One"
comment = "White to play and mate"

[setup]
feen = "+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"

JSON

{
  "meta": {
    "name": "Mate in One",
    "comment": "White to play and mate"
  },
  "setup": {
    "feen": "+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"
  }
}

3. Endgame Study — King and Pawn

A classic endgame study position.

TOML

[meta]
name = "King and Pawn Study"
comment = "Can White promote the pawn?"

[setup]
feen = "8/8/8/8/4k^3/8/4P3/4K^3 / C/c"

JSON

{
  "meta": {
    "name": "King and Pawn Study",
    "comment": "Can White promote the pawn?"
  },
  "setup": {
    "feen": "8/8/8/8/4k^3/8/4P3/4K^3 / C/c"
  }
}

4. Opening Snapshot — Italian Game

Save a named opening position without committing to a line.

TOML

[meta]
name = "Italian Game"
comment = "After 1.e4 e5 2.Nf3 Nc6 3.Bc4"

[setup]
feen = "+r1bq+k^bn+r/+p+p+p+p1+p+p+p/2n5/4p3/2B1P3/5N2/+P+P+P+P1+P+P+P/+RNBQ+K^2+R / C/c"

JSON

{
  "meta": {
    "name": "Italian Game",
    "comment": "After 1.e4 e5 2.Nf3 Nc6 3.Bc4"
  },
  "setup": {
    "feen": "+r1bq+k^bn+r/+p+p+p+p1+p+p+p/2n5/4p3/2B1P3/5N2/+P+P+P+P1+P+P+P/+RNBQ+K^2+R / C/c"
  }
}

5. Shōgi Position — Midgame Diagram

A shōgi training position.

TOML

[meta]
name = "Shōgi Midgame"
event = "Training Diagram"

[sides.first]
variant = "Shogi"

[sides.second]
variant = "Shogi"

[setup]
feen = "lnsgk^gsnl/1r5b1/pppp1pppp/5p3/9/2P6/PP1PPPPPP/1B5R1/LNSGK^GSNL / S/s"

JSON

{
  "meta": {
    "name": "Shōgi Midgame",
    "event": "Training Diagram"
  },
  "sides": {
    "first": { "variant": "Shogi" },
    "second": { "variant": "Shogi" }
  },
  "setup": {
    "feen": "lnsgk^gsnl/1r5b1/pppp1pppp/5p3/9/2P6/PP1PPPPPP/1B5R1/LNSGK^GSNL / S/s"
  }
}

6. Shōgi — Drop Puzzle

A shōgi position with pieces in hand for drop puzzles.

TOML

[meta]
name = "Drop Puzzle"
comment = "Find the winning drop"

[sides.first]
variant = "Shogi"

[sides.second]
variant = "Shogi"

[setup]
feen = "lnsgk^g1nl/1r5s1/pppppp1pp/6p2/9/2P6/PP1PPPPPP/7R1/LNSGK^GSNL B/b S/s"

JSON

{
  "meta": {
    "name": "Drop Puzzle",
    "comment": "Find the winning drop"
  },
  "sides": {
    "first": { "variant": "Shogi" },
    "second": { "variant": "Shogi" }
  },
  "setup": {
    "feen": "lnsgk^g1nl/1r5s1/pppppp1pp/6p2/9/2P6/PP1PPPPPP/7R1/LNSGK^GSNL B/b S/s"
  }
}

Note: The FEEN hand notation (B/b) encodes pieces available for drops.


7. Xiangqi Position — Cannon Checkmate

A xiangqi tactical position.

TOML

[meta]
name = "Cannon Checkmate"
comment = "Red to play and win"

[sides.first]
variant = "Xiangqi"

[sides.second]
variant = "Xiangqi"

[setup]
feen = "3ak4/4a4/9/9/9/9/9/4C4/4A4/3AK4 / X/x"

JSON

{
  "meta": {
    "name": "Cannon Checkmate",
    "comment": "Red to play and win"
  },
  "sides": {
    "first": { "variant": "Xiangqi" },
    "second": { "variant": "Xiangqi" }
  },
  "setup": {
    "feen": "3ak4/4a4/9/9/9/9/9/4C4/4A4/3AK4 / X/x"
  }
}

8. En Passant Theme

A position demonstrating the en passant opportunity.

TOML

[meta]
name = "En Passant Theme"
comment = "White can capture en passant"

[setup]
feen = "+rnbq+k^bn+r/+p+p+p1+p1+p+p/8/3pPp2/8/8/+P+P+P+P1+P+P+P/+RNBQ+K^BN+R / C/c"

JSON

{
  "meta": {
    "name": "En Passant Theme",
    "comment": "White can capture en passant"
  },
  "setup": {
    "feen": "+rnbq+k^bn+r/+p+p+p1+p1+p+p/8/3pPp2/8/8/+P+P+P+P1+P+P+P/+RNBQ+K^BN+R / C/c"
  }
}

9. Cross-Variant Setup — Chess vs Makruk

A frozen snapshot for cross-variant comparison.

TOML

[meta]
name = "Chess vs Makruk"
comment = "Cross-variant exhibition setup"

[sides.first]
name = "Western"
variant = "Chess"

[sides.second]
name = "Thai"
variant = "Makruk"

[setup]
feen = "rnsmk^snr/8/pppppppp/8/8/8/+P+P+P+P+P+P+P+P/+RNBQ+K^BN+R / C/m"

JSON

{
  "meta": {
    "name": "Chess vs Makruk",
    "comment": "Cross-variant exhibition setup"
  },
  "sides": {
    "first": { "name": "Western", "variant": "Chess" },
    "second": { "name": "Thai", "variant": "Makruk" }
  },
  "setup": {
    "feen": "rnsmk^snr/8/pppppppp/8/8/8/+P+P+P+P+P+P+P+P/+RNBQ+K^BN+R / C/m"
  }
}

10. Stalemate Position

A position for stalemate detection.

TOML

[meta]
name = "Stalemate"
comment = "Black to move - is it stalemate?"

[setup]
feen = "7k^/5Q2/6K^1/8/8/8/8/8 / c/C"

JSON

{
  "meta": {
    "name": "Stalemate",
    "comment": "Black to move - is it stalemate?"
  },
  "setup": {
    "feen": "7k^/5Q2/6K^1/8/8/8/8/8 / c/C"
  }
}

11. Position with Player Context

A position with full player information for analysis.

TOML

[meta]
name = "Tournament Position Analysis"
event = "World Championship"
round = "5"

[sides.first]
name = "Grandmaster A"
variant = "Chess"
elo = 2750

[sides.second]
name = "Grandmaster B"
variant = "Chess"
elo = 2720

[setup]
feen = "+r1bq1rk^1/+p+p+p2+p+p+p/2n2n2/3p4/2PP4/2N2N2/+P+P3+P+P+P/+R1BQ+K^B1+R / C/c"

JSON

{
  "meta": {
    "name": "Tournament Position Analysis",
    "event": "World Championship",
    "round": "5"
  },
  "sides": {
    "first": {
      "name": "Grandmaster A",
      "variant": "Chess",
      "elo": 2750
    },
    "second": {
      "name": "Grandmaster B",
      "variant": "Chess",
      "elo": 2720
    }
  },
  "setup": {
    "feen": "+r1bq1rk^1/+p+p+p2+p+p+p/2n2n2/3p4/2PP4/2N2N2/+P+P3+P+P+P/+R1BQ+K^B1+R / C/c"
  }
}

A puzzle linking to an external source.

TOML

[meta]
name = "Daily Puzzle #1234"
comment = "White to play and win"

[[links]]
rel = "canonical"
href = "https://chess.example.com/puzzle/1234"

[setup]
feen = "+r2q1rk^1/+p+p2+p+p+p+p/2n1+pn2/2b5/2BP4/2N2N2/+P+P+P2+P+P+P/+R1BQ1+RK^1 / C/c"

JSON

{
  "meta": {
    "name": "Daily Puzzle #1234",
    "comment": "White to play and win"
  },
  "links": [
    {
      "rel": "canonical",
      "href": "https://chess.example.com/puzzle/1234"
    }
  ],
  "setup": {
    "feen": "+r2q1rk^1/+p+p2+p+p+p+p/2n1+pn2/2b5/2BP4/2N2N2/+P+P+P2+P+P+P/+R1BQ1+RK^1 / C/c"
  }
}

Tips for Position-Only Documents

Include When
setup.feen Always (required)
meta.name To identify the position
meta.comment To describe the puzzle or study goal
sides When variant or player context matters
links To reference external sources

From Position to Game

You can later add plies to continue from the same position:

# Start with just the position
[setup]
feen = "..."

# Later, add moves
[[plies]]
pmn = "..."

See Also