- Sashité for Developers
- Specifications
- PCN
- 1.0.0
- Examples
- Cross-Variant Games
Cross-Variant Games (PCN v1.0.0)
This page demonstrates cross-variant games where players use different rule systems within a single PCN document.
All examples are shown in both TOML and JSON formats.
Quick Reference
How Cross-Variant Works
- Each player’s
variantproperty specifies their movement tradition. - The FEEN
setupencodes the style-turn pair (e.g.,C/mfor Chess vs Makruk). - Each ply is validated against the acting player’s variant.
- PMN notation remains consistent across variants.
- Time control is Match-wide and symmetric — both players share the same Periods.
Variant Examples
| Variant | Description |
|---|---|
Chess |
Western/International Chess |
Shogi |
Japanese Chess |
Xiangqi |
Chinese Chess |
Makruk |
Thai Chess |
1. Chess vs Makruk — Basic
Different variants per player, no time control.
TOML
[meta]
name = "East Meets West"
comment = "Cross-variant exhibition"
[sides.first]
name = "Western Champion"
variant = "Chess"
[sides.second]
name = "Thai Champion"
variant = "Makruk"
[setup]
feen = "rnsmk^snr/8/pppppppp/8/8/8/+P+P+P+P+P+P+P+P/-RNBQK^BN-R / C/m"
[[plies]]
pmn = "e2-e4"
[[plies]]
pmn = "d6-d5"
[[plies]]
pmn = "e4+d5"
[[plies]]
pmn = "e6+d5"
JSON
{
"meta": {
"name": "East Meets West",
"comment": "Cross-variant exhibition"
},
"sides": {
"first": {
"name": "Western Champion",
"variant": "Chess"
},
"second": {
"name": "Thai Champion",
"variant": "Makruk"
}
},
"setup": {
"feen": "rnsmk^snr/8/pppppppp/8/8/8/+P+P+P+P+P+P+P+P/-RNBQK^BN-R / C/m"
},
"plies": [
{ "pmn": "e2-e4" },
{ "pmn": "d6-d5" },
{ "pmn": "e4+d5" },
{ "pmn": "e6+d5" }
]
}
Note: The FEEN style-turn C/m indicates first player uses Chess (C), second uses Makruk (m).
2. Chess vs Shōgi — With Drops
Chess player vs Shōgi player, demonstrating shōgi drops.
TOML
[meta]
name = "Hybrid Match"
event = "Cross-Variant Championship"
[sides.first]
name = "Chess Master"
variant = "Chess"
[sides.second]
name = "Shogi Master"
variant = "Shogi"
[setup]
feen = "-rnbqk^bn-r/+p+p+p+p+p+p+p+p/8/8/8/8/+P+P+P+P+P+P+P+P/-RNBQK^BN-R P/ C/s"
[[plies]]
pmn = "e2-e4"
elapsed_ms = 5000
[[plies]]
pmn = "P*e5"
elapsed_ms = 3000
comment = "Shogi player drops a pawn"
[[plies]]
pmn = "d2-d4"
elapsed_ms = 8000
[[plies]]
pmn = "e5+d4/p"
elapsed_ms = 4000
comment = "Shogi pawn captures Chess pawn — captured pawn changes side (P → p)"
JSON
{
"meta": {
"name": "Hybrid Match",
"event": "Cross-Variant Championship"
},
"sides": {
"first": {
"name": "Chess Master",
"variant": "Chess"
},
"second": {
"name": "Shogi Master",
"variant": "Shogi"
}
},
"setup": {
"feen": "-rnbqk^bn-r/+p+p+p+p+p+p+p+p/8/8/8/8/+P+P+P+P+P+P+P+P/-RNBQK^BN-R P/ C/s"
},
"plies": [
{ "pmn": "e2-e4", "elapsed_ms": 5000 },
{ "pmn": "P*e5", "elapsed_ms": 3000, "comment": "Shogi player drops a pawn" },
{ "pmn": "d2-d4", "elapsed_ms": 8000 },
{ "pmn": "e5+d4/p", "elapsed_ms": 4000, "comment": "Shogi pawn captures Chess pawn — captured pawn changes side (P → p)" }
]
}
Note: The drop notation (P*e5) is valid for the Shōgi player but would be illegal for the Chess player.
3. Chess vs Xiangqi
Chess player vs Xiangqi player.
TOML
[sides.first]
name = "Western Player"
variant = "Chess"
[sides.second]
name = "Chinese Player"
variant = "Xiangqi"
[setup]
feen = "-rnbqk^bn-r/+p+p+p+p+p+p+p+p/8/8/8/8/+P+P+P+P+P+P+P+P/-RNBQK^BN-R / C/x"
[[plies]]
pmn = "e2-e4"
[[plies]]
pmn = "c7-c6"
[[plies]]
pmn = "d2-d4"
[[plies]]
pmn = "d7-d5"
JSON
{
"sides": {
"first": {
"name": "Western Player",
"variant": "Chess"
},
"second": {
"name": "Chinese Player",
"variant": "Xiangqi"
}
},
"setup": {
"feen": "-rnbqk^bn-r/+p+p+p+p+p+p+p+p/8/8/8/8/+P+P+P+P+P+P+P+P/-RNBQK^BN-R / C/x"
},
"plies": [
{ "pmn": "e2-e4" },
{ "pmn": "c7-c6" },
{ "pmn": "d2-d4" },
{ "pmn": "d7-d5" }
]
}
4. Cross-Variant with Time Control
A cross-variant game with Fischer time control. Both players share the same time budget.
TOML
[meta]
event = "Exhibition Match"
started_at = 2025-01-27T15:00:00Z
[[periods]]
duration_ms = 600000
increment_ms = 5000
[sides.first]
name = "Grandmaster"
variant = "Chess"
elo = 2650
[sides.second]
name = "Professional"
variant = "Shogi"
elo = 2500
[setup]
feen = "-rnbqk^bn-r/+p+p+p+p+p+p+p+p/8/8/8/8/+P+P+P+P+P+P+P+P/-RNBQK^BN-R / C/s"
[[plies]]
pmn = "e2-e4"
elapsed_ms = 5000
[[plies]]
pmn = "d7-d5"
elapsed_ms = 8000
[[plies]]
pmn = "e4+d5"
elapsed_ms = 3000
comment = "Chess captures Shogi pawn — piece enters Chess hand without mutation, permanently out of play (Chess has no drops)"
[[plies]]
pmn = "c7-c6"
elapsed_ms = 4000
comment = "Shogi player advances a pawn"
[outcome]
result = "1/2-1/2"
JSON
{
"meta": {
"event": "Exhibition Match",
"started_at": "2025-01-27T15:00:00Z"
},
"periods": [
{ "duration_ms": 600000, "increment_ms": 5000 }
],
"sides": {
"first": {
"name": "Grandmaster",
"variant": "Chess",
"elo": 2650
},
"second": {
"name": "Professional",
"variant": "Shogi",
"elo": 2500
}
},
"setup": {
"feen": "-rnbqk^bn-r/+p+p+p+p+p+p+p+p/8/8/8/8/+P+P+P+P+P+P+P+P/-RNBQK^BN-R / C/s"
},
"plies": [
{ "pmn": "e2-e4", "elapsed_ms": 5000 },
{ "pmn": "d7-d5", "elapsed_ms": 8000 },
{ "pmn": "e4+d5", "elapsed_ms": 3000, "comment": "Chess captures Shogi pawn — piece enters Chess hand without mutation, permanently out of play (Chess has no drops)" },
{ "pmn": "c7-c6", "elapsed_ms": 4000, "comment": "Shogi player advances a pawn" }
],
"outcome": {
"result": "1/2-1/2"
}
}
5. Unrated Exhibition — No Time Control
A casual cross-variant exhibition with no time control and no ELO implications.
TOML
[meta]
name = "Casual Exhibition"
comment = "No time pressure, no ratings"
[sides.first]
name = "Expert"
variant = "Chess"
[sides.second]
name = "Beginner"
variant = "Makruk"
[setup]
feen = "rnsmk^snr/8/pppppppp/8/8/8/+P+P+P+P+P+P+P+P/-RNBQK^BN-R / C/m"
[[plies]]
pmn = "e2-e4"
[[plies]]
pmn = "d6-d5"
[[plies]]
pmn = "e4+d5"
[outcome]
result = "1-0"
JSON
{
"meta": {
"name": "Casual Exhibition",
"comment": "No time pressure, no ratings"
},
"sides": {
"first": {
"name": "Expert",
"variant": "Chess"
},
"second": {
"name": "Beginner",
"variant": "Makruk"
}
},
"setup": {
"feen": "rnsmk^snr/8/pppppppp/8/8/8/+P+P+P+P+P+P+P+P/-RNBQK^BN-R / C/m"
},
"plies": [
{ "pmn": "e2-e4" },
{ "pmn": "d6-d5" },
{ "pmn": "e4+d5" }
],
"outcome": {
"result": "1-0"
}
}
6. Shōgi vs Makruk
Two Asian chess variants facing each other.
TOML
[meta]
name = "Asian Chess Battle"
[sides.first]
name = "Japanese Player"
variant = "Shogi"
[sides.second]
name = "Thai Player"
variant = "Makruk"
[setup]
feen = "lnsgk^gsnl/1r5b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGK^GSNL / S/m"
[[plies]]
pmn = "7g-7f"
[[plies]]
pmn = "d6-d5"
[[plies]]
pmn = "2g-2f"
[[plies]]
pmn = "c6-c5"
JSON
{
"meta": {
"name": "Asian Chess Battle"
},
"sides": {
"first": {
"name": "Japanese Player",
"variant": "Shogi"
},
"second": {
"name": "Thai Player",
"variant": "Makruk"
}
},
"setup": {
"feen": "lnsgk^gsnl/1r5b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGK^GSNL / S/m"
},
"plies": [
{ "pmn": "7g-7f" },
{ "pmn": "d6-d5" },
{ "pmn": "2g-2f" },
{ "pmn": "c6-c5" }
]
}
Validation Rules
In cross-variant games:
- Each ply is validated against the acting player’s variant
- Drops (
*) are valid for Shōgi but not for Chess - Piece movements follow each variant’s rules
- Drops (
- The FEEN style-turn encodes both variants
- First letter (uppercase): first player’s variant
- Second letter (lowercase): second player’s variant
- PMN notation is consistent
- The same operators (
-,+,*,~,=) work across all variants - Coordinate systems follow CELL specification
- The same operators (
- Time control is Match-wide and symmetric
- Both players share the same
periodsconfiguration - PCN does not model per-player time budgets
- Both players share the same
See Also
- Traditional Games — Single-variant examples
- Special Moves — PMN operators for drops, promotions
- Complete Game Records — Full-featured examples
