- Sashité for Developers
- Specifications
- PCN
- 1.0.0
- Examples
- 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
- Minimal Documents — Basic structure examples
- Time Control Systems — Timing configurations
- Traditional Games — Complete game examples
- Cross-Variant Games — Multi-variant scenarios
