Droppable Reserve Operations Placement (DROP) Specification
- Version: 1.0.0
- Author: Sashité
- Published: June 17, 2025
- License: MIT License
Overview
DROP defines a simple, standardized notation for piece reserve locations in board games where captured pieces can be held and/or placed onto the board. This applies to games like shōgi, crazyhouse, go, and other games featuring capture-and-drop mechanics.
Format
DROP uses a single character to represent all off-board reserve locations:
Reserve Location: *
(asterisk)
- Unicode: U+002A
- ASCII: 42
- UTF-8: 0x2A
Validation
\A\*\z
Usage Examples
Movement Notation
* → e4 Place piece from reserve to board position e4
e4 → * Capture piece at e4 to reserve
e2 → e4 Regular on-board movement (using CELL coordinates)
Game Context Examples
Shōgi
- Reserve:
*
- Board:
a1
toi9
(CELL coordinates) - Drop move:
* → e5
(place piece from reserve)
Crazyhouse
- Reserve:
*
- Board:
a1
toh8
(CELL coordinates) - Drop move:
* → e4
(place captured piece)
Integration with CELL
DROP complements the CELL specification to provide complete location coverage:
- On-board positions: CELL coordinates (
a1
,e4
,a1A
, etc.) - Off-board reserve: DROP location (
*
)
Combined grammar:
<location> ::= <cell> | <drop>
<drop> ::= "*"
Design Rationale
Why the asterisk?
- Universal keyboard availability
- High visual contrast with CELL coordinates
- Commonly used as a “wildcard” symbol
- Single character keeps notation concise
Simplicity by design
DROP intentionally uses just one character because reserve locations don’t need dimensional complexity—context determines meaning (player’s reserve, captured pieces, stone supply, etc.).
Relationship to Other Notations
Notation | Purpose | Relationship to DROP |
---|---|---|
CELL | Multi-dimensional board coordinates | DROP complements CELL by providing "*" notation for off-board reserve locations |
MIN | Concise move identification | Uses DROP location for source/destination in drop and capture moves |
PMN | Mechanical move decomposition | Uses DROP location for reserve-related actions in move sequences |
Reference Implementations
This section lists available libraries and tools that implement the DROP specification.
Ruby
- Drop.rb - Reference implementation