- Sashité for Developers
- Specifications
- PCN
- 1.0.0
- Examples
- Minimal Documents
Minimal Documents (PCN v1.0.0)
This page collects tiny, valid PCN documents you can copy/paste.
They illustrate the minimum required section (setup), then progressively add optional parts: meta, sides, periods, plies, and outcome.
All examples are shown in both TOML and JSON formats.
1. Absolute Minimum (Required Only)
Only the required setup section with a FEEN position. Nothing else.
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"
}
}
2. Chess Starting Position
Standard chess starting position, nothing else.
TOML
[setup]
feen = "+rnbq+k^bn+r/+p+p+p+p+p+p+p+p/8/8/8/8/+P+P+P+P+P+P+P+P/+RNBQ+K^BN+R / C/c"
JSON
{
"setup": {
"feen": "+rnbq+k^bn+r/+p+p+p+p+p+p+p+p/8/8/8/8/+P+P+P+P+P+P+P+P/+RNBQ+K^BN+R / C/c"
}
}
3. Minimal With One Ply
Adds a single move. No timing, no metadata.
TOML
[setup]
feen = "+rnbq+k^bn+r/+p+p+p+p+p+p+p+p/8/8/8/8/+P+P+P+P+P+P+P+P/+RNBQ+K^BN+R / C/c"
[[plies]]
pmn = "e2-e4"
JSON
{
"setup": {
"feen": "+rnbq+k^bn+r/+p+p+p+p+p+p+p+p/8/8/8/8/+P+P+P+P+P+P+P+P/+RNBQ+K^BN+R / C/c"
},
"plies": [
{ "pmn": "e2-e4" }
]
}
4. Minimal Metadata
Adds lightweight metadata.
TOML
[meta]
name = "Casual Game"
started_at = 2025-01-27T10:00:00Z
[setup]
feen = "+rnbq+k^bn+r/+p+p+p+p+p+p+p+p/8/8/8/8/+P+P+P+P+P+P+P+P/+RNBQ+K^BN+R / C/c"
[[plies]]
pmn = "e2-e4"
[[plies]]
pmn = "e7-e5"
JSON
{
"meta": {
"name": "Casual Game",
"started_at": "2025-01-27T10:00:00Z"
},
"setup": {
"feen": "+rnbq+k^bn+r/+p+p+p+p+p+p+p+p/8/8/8/8/+P+P+P+P+P+P+P+P/+RNBQ+K^BN+R / C/c"
},
"plies": [
{ "pmn": "e2-e4" },
{ "pmn": "e7-e5" }
]
}
5. Minimal Players
Defines players with names and variants.
TOML
[sides.first]
name = "Alice"
variant = "Chess"
[sides.second]
name = "Bob"
variant = "Chess"
[setup]
feen = "+rnbq+k^bn+r/+p+p+p+p+p+p+p+p/8/8/8/8/+P+P+P+P+P+P+P+P/+RNBQ+K^BN+R / C/c"
[[plies]]
pmn = "g1-f3"
JSON
{
"sides": {
"first": {
"name": "Alice",
"variant": "Chess"
},
"second": {
"name": "Bob",
"variant": "Chess"
}
},
"setup": {
"feen": "+rnbq+k^bn+r/+p+p+p+p+p+p+p+p/8/8/8/8/+P+P+P+P+P+P+P+P/+RNBQ+K^BN+R / C/c"
},
"plies": [
{ "pmn": "g1-f3" }
]
}
6. Minimal With Time Control (Fischer)
Adds Match-wide time control: 5 minutes + 3 seconds increment.
TOML
[[periods]]
duration_ms = 300000
increment_ms = 3000
[setup]
feen = "+rnbq+k^bn+r/+p+p+p+p+p+p+p+p/8/8/8/8/+P+P+P+P+P+P+P+P/+RNBQ+K^BN+R / C/c"
[[plies]]
pmn = "e2-e4"
elapsed_ms = 8000
[[plies]]
pmn = "e7-e5"
elapsed_ms = 12000
JSON
{
"periods": [
{ "duration_ms": 300000, "increment_ms": 3000 }
],
"setup": {
"feen": "+rnbq+k^bn+r/+p+p+p+p+p+p+p+p/8/8/8/8/+P+P+P+P+P+P+P+P/+RNBQ+K^BN+R / C/c"
},
"plies": [
{ "pmn": "e2-e4", "elapsed_ms": 8000 },
{ "pmn": "e7-e5", "elapsed_ms": 12000 }
]
}
7. Minimal Byōyomi (Per-Ply)
30 seconds per move, no main time bank.
TOML
[[periods]]
duration_ms = 30000
plies = 1
[setup]
feen = "+rnbq+k^bn+r/+p+p+p+p+p+p+p+p/8/8/8/8/+P+P+P+P+P+P+P+P/+RNBQ+K^BN+R / C/c"
[[plies]]
pmn = "e2-e4"
elapsed_ms = 15000
JSON
{
"periods": [
{ "duration_ms": 30000, "plies": 1 }
],
"setup": {
"feen": "+rnbq+k^bn+r/+p+p+p+p+p+p+p+p/8/8/8/8/+P+P+P+P+P+P+P+P/+RNBQ+K^BN+R / C/c"
},
"plies": [
{ "pmn": "e2-e4", "elapsed_ms": 15000 }
]
}
8. Minimal With Outcome
Adds a match result.
TOML
[setup]
feen = "+rnbq+k^bn+r/+p+p+p+p+p+p+p+p/8/8/8/8/+P+P+P+P+P+P+P+P/+RNBQ+K^BN+R / C/c"
[[plies]]
pmn = "e2-e4"
[[plies]]
pmn = "e7-e5"
[outcome]
result = "1-0"
JSON
{
"setup": {
"feen": "+rnbq+k^bn+r/+p+p+p+p+p+p+p+p/8/8/8/8/+P+P+P+P+P+P+P+P/+RNBQ+K^BN+R / C/c"
},
"plies": [
{ "pmn": "e2-e4" },
{ "pmn": "e7-e5" }
],
"outcome": {
"result": "1-0"
}
}
9. Minimal Draw by Agreement
Draw offer accepted by both players.
TOML
[setup]
feen = "+rnbq+k^bn+r/+p+p+p+p+p+p+p+p/8/8/8/8/+P+P+P+P+P+P+P+P/+RNBQ+K^BN+R / C/c"
[[plies]]
pmn = "e2-e4"
[[plies]]
pmn = "e7-e5"
draw_offer = true
[[plies]]
pmn = "g1-f3"
draw_offer = true
[outcome]
result = "1/2-1/2"
JSON
{
"setup": {
"feen": "+rnbq+k^bn+r/+p+p+p+p+p+p+p+p/8/8/8/8/+P+P+P+P+P+P+P+P/+RNBQ+K^BN+R / C/c"
},
"plies": [
{ "pmn": "e2-e4" },
{ "pmn": "e7-e5", "draw_offer": true },
{ "pmn": "g1-f3", "draw_offer": true }
],
"outcome": {
"result": "1/2-1/2"
}
}
10. Minimal With Checkmate
A very short game ending in checkmate (Scholar’s Mate pattern).
TOML
[setup]
feen = "+rnbq+k^bn+r/+p+p+p+p+p+p+p+p/8/8/8/8/+P+P+P+P+P+P+P+P/+RNBQ+K^BN+R / C/c"
[[plies]]
pmn = "e2-e4"
[[plies]]
pmn = "e7-e5"
[[plies]]
pmn = "f1-c4"
[[plies]]
pmn = "b8-c6"
[[plies]]
pmn = "d1-h5"
[[plies]]
pmn = "g8-f6"
assessment = "blunder"
[[plies]]
pmn = "h5+f7"
check = true
mate = true
[outcome]
result = "1-0"
JSON
{
"setup": {
"feen": "+rnbq+k^bn+r/+p+p+p+p+p+p+p+p/8/8/8/8/+P+P+P+P+P+P+P+P/+RNBQ+K^BN+R / C/c"
},
"plies": [
{ "pmn": "e2-e4" },
{ "pmn": "e7-e5" },
{ "pmn": "f1-c4" },
{ "pmn": "b8-c6" },
{ "pmn": "d1-h5" },
{ "pmn": "g8-f6", "assessment": "blunder" },
{ "pmn": "h5+f7", "check": true, "mate": true }
],
"outcome": {
"result": "1-0"
}
}
Quick Reference
| Section | Required | Description |
|---|---|---|
setup |
Yes | Initial position (must contain at least feen) |
meta |
No | Match metadata (name, event, site, etc.) |
links |
No | External resource links |
periods |
No | Time control (Match-wide) |
sides |
No | Player information (name, variant, elo) |
plies |
No | Sequence of moves |
outcome |
No | Match result |
Ply Properties
| Property | Type | Description |
|---|---|---|
pmn |
string | Move in PMN format |
feen |
string | Resulting position |
elapsed_ms |
integer | Thinking time in milliseconds |
assessment |
enum | "good", "mistake", "brilliant", "blunder", "interesting", "dubious" |
check |
boolean | Move delivers check |
mate |
boolean | Move delivers checkmate |
draw_offer |
boolean | Player offers/accepts draw |
comment |
string | Free-text annotation |
See Also
- Time Control Systems — Detailed time control examples
- Game Outcomes — Various termination scenarios
- Complete Game Records — Full-featured examples
