Sashité for Developers
  1. Sashité for Developers
  2. Specifications
  3. PCN
  4. 1.0.0
  5. Examples
  6. Special Moves

Special Moves (PCN v1.0.0)

This page shows PMN operators used for non-standard actions in PCN.

All examples are shown in both TOML and JSON formats.


Quick Reference

Operator Name Usage
~ Special path Castling, en passant
+ Capture Movement capture (src+dst) or static capture (+dst)
* Drop Place piece from hand (P*e5)
. Drop with capture Drop that captures (P.e5)
= Transform Promotion (e7-e8=Q) or in-place mutation (e4=+P)
... Pass Skip turn

Note: Legality depends on the Rule System. PCN is rule-agnostic.


1. Castling (~)

Kingside castling in chess. The ~ operator indicates a special path move.

TOML

[sides.first]
variant = "Chess"

[sides.second]
variant = "Chess"

[setup]
feen = "+r2q1+rk^1/+p+p+p+p1+p+p+p/2n2n2/1Bb1p3/4P3/5N2/+P+P+P+P1+P+P+P/+RNBQ1+RK^1 / C/c"

[[plies]]
pmn = "e1~g1"
elapsed_ms = 2400
comment = "Kingside castling"

JSON

{
  "sides": {
    "first": { "variant": "Chess" },
    "second": { "variant": "Chess" }
  },
  "setup": {
    "feen": "+r2q1+rk^1/+p+p+p+p1+p+p+p/2n2n2/1Bb1p3/4P3/5N2/+P+P+P+P1+P+P+P/+RNBQ1+RK^1 / C/c"
  },
  "plies": [
    {
      "pmn": "e1~g1",
      "elapsed_ms": 2400,
      "comment": "Kingside castling"
    }
  ]
}

2. Queenside Castling (~)

TOML

[setup]
feen = "+r3+k^2+r/+p+p+p+p+p+p+p+p/8/8/8/8/+P+P+P+P+P+P+P+P/+R3+K^2+R / C/c"

[[plies]]
pmn = "e1~c1"
comment = "Queenside castling"

JSON

{
  "setup": {
    "feen": "+r3+k^2+r/+p+p+p+p+p+p+p+p/8/8/8/8/+P+P+P+P+P+P+P+P/+R3+K^2+R / C/c"
  },
  "plies": [
    {
      "pmn": "e1~c1",
      "comment": "Queenside castling"
    }
  ]
}

3. En Passant (~)

En passant capture uses the special path operator.

TOML

[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"

[[plies]]
pmn = "e5~f6"
elapsed_ms = 3100
comment = "En passant capture"

JSON

{
  "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"
  },
  "plies": [
    {
      "pmn": "e5~f6",
      "elapsed_ms": 3100,
      "comment": "En passant capture"
    }
  ]
}

4. Movement Capture (+)

Standard capture: piece moves from source to destination, capturing the piece there.

TOML

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

[[plies]]
pmn = "c4+f7"
check = true
elapsed_ms = 4000
comment = "Bishop captures on f7 with check"

[[plies]]
pmn = "e8+f7"
elapsed_ms = 5500
comment = "King recaptures"

JSON

{
  "setup": {
    "feen": "+rnbq+k^b1+r/+p+p+p+p1+p+p+p/5n2/4p3/2B1P3/5N2/+P+P+P+P1+P+P+P/+RNBQ+K^2+R / C/c"
  },
  "plies": [
    {
      "pmn": "c4+f7",
      "check": true,
      "elapsed_ms": 4000,
      "comment": "Bishop captures on f7 with check"
    },
    {
      "pmn": "e8+f7",
      "elapsed_ms": 5500,
      "comment": "King recaptures"
    }
  ]
}

5. Static Capture (+dst)

Capture notation with destination only (origin implied by context).

TOML

[setup]
feen = "8/8/8/4p3/3P4/8/8/8 / C/c"

[[plies]]
pmn = "+e5"
comment = "Static capture on e5"

JSON

{
  "setup": {
    "feen": "8/8/8/4p3/3P4/8/8/8 / C/c"
  },
  "plies": [
    {
      "pmn": "+e5",
      "comment": "Static capture on e5"
    }
  ]
}

6. Promotion (=)

Pawn promotion on reaching the last rank.

TOML

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

[[plies]]
pmn = "a7-a8=Q"
elapsed_ms = 2200
comment = "Pawn promotes to Queen"

JSON

{
  "setup": {
    "feen": "4k^3/P7/4K^3/8/8/8/8/8 / C/c"
  },
  "plies": [
    {
      "pmn": "a7-a8=Q",
      "elapsed_ms": 2200,
      "comment": "Pawn promotes to Queen"
    }
  ]
}

7. Underpromotion

Promoting to a piece other than Queen.

TOML

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

[[plies]]
pmn = "a7-a8=N"
elapsed_ms = 4800
assessment = "interesting"
comment = "Underpromotion to Knight"

JSON

{
  "setup": {
    "feen": "4k^3/P7/4K^3/8/8/8/8/8 / C/c"
  },
  "plies": [
    {
      "pmn": "a7-a8=N",
      "elapsed_ms": 4800,
      "assessment": "interesting",
      "comment": "Underpromotion to Knight"
    }
  ]
}

8. Capture with Promotion

Pawn captures and promotes in the same move.

TOML

[setup]
feen = "3rk^3/2P5/4K^3/8/8/8/8/8 / C/c"

[[plies]]
pmn = "c7+d8=Q"
check = true
comment = "Capture and promote to Queen with check"

JSON

{
  "setup": {
    "feen": "3rk^3/2P5/4K^3/8/8/8/8/8 / C/c"
  },
  "plies": [
    {
      "pmn": "c7+d8=Q",
      "check": true,
      "comment": "Capture and promote to Queen with check"
    }
  ]
}

9. Drop (*) — Shōgi

Placing a piece from hand onto the board.

TOML

[sides.first]
variant = "Shogi"

[sides.second]
variant = "Shogi"

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

[[plies]]
pmn = "B*f5"
elapsed_ms = 2000
comment = "Drop bishop at f5"

JSON

{
  "sides": {
    "first": { "variant": "Shogi" },
    "second": { "variant": "Shogi" }
  },
  "setup": {
    "feen": "lnsgk^g1nl/1r5s1/pppppp1pp/6p2/9/2P6/PP1PPPPPP/7R1/LNSGK^GSNL B/ S/s"
  },
  "plies": [
    {
      "pmn": "B*f5",
      "elapsed_ms": 2000,
      "comment": "Drop bishop at f5"
    }
  ]
}

10. Drop with Capture (.) — Variant

A drop that also captures a piece on the target square (variant-specific).

TOML

[sides.first]
variant = "Shogi"

[sides.second]
variant = "Shogi"

[setup]
feen = "lnsgk^gsnl/1r5b1/ppppppppp/9/4p4/9/PPPPPPPPP/1B5R1/LNSGK^GSNL P/ S/s"

[[plies]]
pmn = "P.e5"
elapsed_ms = 1500
comment = "Drop pawn capturing on e5"

JSON

{
  "sides": {
    "first": { "variant": "Shogi" },
    "second": { "variant": "Shogi" }
  },
  "setup": {
    "feen": "lnsgk^gsnl/1r5b1/ppppppppp/9/4p4/9/PPPPPPPPP/1B5R1/LNSGK^GSNL P/ S/s"
  },
  "plies": [
    {
      "pmn": "P.e5",
      "elapsed_ms": 1500,
      "comment": "Drop pawn capturing on e5"
    }
  ]
}

11. In-Place Transform (=)

Piece changes type without moving (variant-specific).

TOML

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

[[plies]]
pmn = "e4=+P"
comment = "In-place promotion"

JSON

{
  "setup": {
    "feen": "8/8/8/8/4P3/8/8/8 / C/c"
  },
  "plies": [
    {
      "pmn": "e4=+P",
      "comment": "In-place promotion"
    }
  ]
}

12. Pass Move (...)

Skip a turn (legality depends on Rule System).

TOML

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

[[plies]]
pmn = "..."
comment = "First player passes"

[[plies]]
pmn = "..."
comment = "Second player passes"

JSON

{
  "setup": {
    "feen": "8/8/8/8/8/8/8/8 / C/c"
  },
  "plies": [
    {
      "pmn": "...",
      "comment": "First player passes"
    },
    {
      "pmn": "...",
      "comment": "Second player passes"
    }
  ]
}

13. Mixed Special Sequence

A game fragment combining multiple special moves.

TOML

[setup]
feen = "+r2q+k^bn+r/+p+p+p+p1+p+p+p/2n5/1Bb1p3/4P3/5N2/+P+P+P+P1+P+P+P/+RNBQ+K^2+R / C/c"

[[plies]]
pmn = "e1~g1"
elapsed_ms = 1900
comment = "Castling kingside"

[[plies]]
pmn = "c4+f7"
check = true
elapsed_ms = 3200
comment = "Bishop sacrifice"

[[plies]]
pmn = "e8+f7"
elapsed_ms = 2100
comment = "King takes bishop"

JSON

{
  "setup": {
    "feen": "+r2q+k^bn+r/+p+p+p+p1+p+p+p/2n5/1Bb1p3/4P3/5N2/+P+P+P+P1+P+P+P/+RNBQ+K^2+R / C/c"
  },
  "plies": [
    {
      "pmn": "e1~g1",
      "elapsed_ms": 1900,
      "comment": "Castling kingside"
    },
    {
      "pmn": "c4+f7",
      "check": true,
      "elapsed_ms": 3200,
      "comment": "Bishop sacrifice"
    },
    {
      "pmn": "e8+f7",
      "elapsed_ms": 2100,
      "comment": "King takes bishop"
    }
  ]
}

See Also