Sashité for Developers
  1. Sashité for Developers
  2. Specifications
  3. PCN
  4. 1.0.0
  5. Examples
  6. 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


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:


See Also