- Sashité for Developers
- Specifications
- PCN
- 1.0.0
- Examples
- Draw Offers
Draw Offers (PCN v1.0.0)
This page demonstrates draw offer scenarios using the draw_offer property on plies.
All examples are shown in both TOML and JSON formats.
Quick Reference
Draw Offer Protocol
| Action | PCN Representation |
|---|---|
| Player offers a draw | draw_offer = true on their ply |
| Player accepts a draw | draw_offer = true on their responding ply |
| Draw agreed | Both consecutive draw_offer = true, plus outcome.result = "1/2-1/2" |
Rules
- A draw offer is made alongside a move (not separately)
- The offer stands until the opponent makes their move
- If the opponent also sets
draw_offer = true, the draw is accepted - The result is recorded in
outcome.result
1. Draw Offer Made (Not Yet Accepted)
One player offers a draw; the game continues.
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 = "g1-f3"
draw_offer = true
comment = "White offers a draw"
[[plies]]
pmn = "b8-c6"
comment = "Black declines by continuing play"
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": "g1-f3", "draw_offer": true, "comment": "White offers a draw" },
{ "pmn": "b8-c6", "comment": "Black declines by continuing play" }
]
}
Note: Black’s move without draw_offer implicitly declines the offer.
2. Draw Offer Accepted
Both players agree to a draw.
TOML
[meta]
name = "Friendly Game"
[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 = "g1-f3"
draw_offer = true
comment = "White offers a draw"
[[plies]]
pmn = "b8-c6"
draw_offer = true
comment = "Black accepts"
[outcome]
result = "1/2-1/2"
JSON
{
"meta": {
"name": "Friendly Game"
},
"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": "g1-f3", "draw_offer": true, "comment": "White offers a draw" },
{ "pmn": "b8-c6", "draw_offer": true, "comment": "Black accepts" }
],
"outcome": {
"result": "1/2-1/2"
}
}
3. Counter-Offer Pattern
One player declines, then later offers their own draw.
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 = "d2-d4"
[[plies]]
pmn = "d7-d5"
draw_offer = true
comment = "Black offers a draw"
[[plies]]
pmn = "c2-c4"
comment = "White declines"
[[plies]]
pmn = "e7-e6"
[[plies]]
pmn = "b1-c3"
draw_offer = true
comment = "White now offers a draw"
[[plies]]
pmn = "g8-f6"
draw_offer = true
comment = "Black accepts"
[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": "d2-d4" },
{ "pmn": "d7-d5", "draw_offer": true, "comment": "Black offers a draw" },
{ "pmn": "c2-c4", "comment": "White declines" },
{ "pmn": "e7-e6" },
{ "pmn": "b1-c3", "draw_offer": true, "comment": "White now offers a draw" },
{ "pmn": "g8-f6", "draw_offer": true, "comment": "Black accepts" }
],
"outcome": {
"result": "1/2-1/2"
}
}
4. Multiple Declined Offers
Several draw offers throughout a game, all declined.
TOML
[meta]
name = "Fighting Game"
[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
comment = "Early draw offer"
[[plies]]
pmn = "g1-f3"
comment = "Declined"
[[plies]]
pmn = "b8-c6"
[[plies]]
pmn = "f1-b5"
draw_offer = true
comment = "Another draw offer"
[[plies]]
pmn = "a7-a6"
comment = "Declined again"
[[plies]]
pmn = "b5-a4"
[[plies]]
pmn = "g8-f6"
[outcome]
result = "1-0"
JSON
{
"meta": {
"name": "Fighting Game"
},
"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, "comment": "Early draw offer" },
{ "pmn": "g1-f3", "comment": "Declined" },
{ "pmn": "b8-c6" },
{ "pmn": "f1-b5", "draw_offer": true, "comment": "Another draw offer" },
{ "pmn": "a7-a6", "comment": "Declined again" },
{ "pmn": "b5-a4" },
{ "pmn": "g8-f6" }
],
"outcome": {
"result": "1-0"
}
}
5. Draw Offer with Time Pressure
A draw offer accepted under time pressure.
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 = 5000
[[plies]]
pmn = "e7-e5"
elapsed_ms = 8000
[[plies]]
pmn = "g1-f3"
elapsed_ms = 120000
draw_offer = true
comment = "White offers after long think"
[[plies]]
pmn = "b8-c6"
elapsed_ms = 95000
draw_offer = true
comment = "Black accepts, also low on time"
[outcome]
result = "1/2-1/2"
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": 5000 },
{ "pmn": "e7-e5", "elapsed_ms": 8000 },
{
"pmn": "g1-f3",
"elapsed_ms": 120000,
"draw_offer": true,
"comment": "White offers after long think"
},
{
"pmn": "b8-c6",
"elapsed_ms": 95000,
"draw_offer": true,
"comment": "Black accepts, also low on time"
}
],
"outcome": {
"result": "1/2-1/2"
}
}
Semantics Summary
| Scenario | First draw_offer |
Second draw_offer |
Result |
|---|---|---|---|
| Offer made | true |
absent/false |
Game continues |
| Offer accepted | true |
true |
Draw agreed |
| Offer declined | true |
absent (next move) | Game continues |
The draw_offer property:
- Is optional (defaults to
false) - Is attached to a specific ply
- Represents an offer when made, acceptance when responding to an offer
See Also
- Game Outcomes — All termination scenarios
- Complete Game Records — Full-featured examples
