pub type Blocked { FriendlyPiece RivalPiece OutOfBounds StepLimit Capture }
FriendlyPiece
RivalPiece
OutOfBounds
StepLimit
Capture
pub type MoveLimit { Continuous Limited(n: Int) }
Continuous
Limited(n: Int)
pub fn project(board: Grid(Space), from: Coordinate) -> Set( Coordinate, )