Skip to the content

Narabe並べ

Play forty-eight abstract board games through immutable moves, legal choices and replayable records.

Narabe means arranging in Japanese, as in gomoku-narabe: five in a row. About the name

Contents

Reference · Rules and records

VARIANT_SPECSconstant

Every rule set, as data. The engine reads these and never the variant name, so a new variant is a new row here plus its copy in variants.constants.ts.

Import it

import { VARIANT_SPECS } from "@johnmorrisdotca/narabe";

Definition

const VARIANT_SPECS: Record<RuleVariant, VariantSpec>

Members

NameTypeDescription
freestyleVariantSpec
standardVariantSpec
renjuVariantSpec
omokVariantSpec
caroVariantSpec
ninukiVariantSpec
connect6VariantSpec
tictactoeVariantSpec
trapThreeVariantSpec
dropFourVariantSpec
twistFiveVariantSpec
twistFourVariantSpec
squareFourVariantSpec
ringDropVariantSpec
holeDropVariantSpec
hotDropVariantSpec
clearDropVariantSpec
giveawayDropVariantSpec
edgeDropVariantSpec
dominoFiveVariantSpec
blockFiveVariantSpec
sannukiVariantSpec
wormDropVariantSpec
misereFiveVariantSpec
makerBreakerVariantSpec
wildTicTacToeVariantSpec
notaktoVariantSpec
toroidalFiveVariantSpec
reversiVariantSpec
classicReversiVariantSpec
antiReversiVariantSpec
miniReversiVariantSpec
grandReversiVariantSpec
honeycombVariantSpec
halmaVariantSpec
hexVariantSpec
hexFiveVariantSpec
obstacleFiveVariantSpec
rockfallVariantSpec
scatteredRocksVariantSpec
checkersVariantSpec
internationalDraughtsVariantSpec
brazilianDraughtsVariantSpec
canadianCheckersVariantSpec
russianDraughtsVariantSpec
poolCheckersVariantSpec
chineseCheckersVariantSpec
goVariantSpec

Examples

import { VARIANT_SPECS } from "@johnmorrisdotca/narabe";
console.log(VARIANT_SPECS);
{
  freestyle: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: null,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free', 'pro', 'longPro', 'swap', 'swap2' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: null,
    defaultBoard: null,
    analysis: true,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'lines',
    headStartTurns: 2
  },
  standard: {
    lineRule: { black: 'exact', white: 'exact' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 5,
    allowFirstPlayerChoice: false,
    firstStone: 'black',
    openings: [ 'free', 'pro', 'longPro', 'swap', 'swap2' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: null,
    defaultBoard: null,
    analysis: true,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'lines',
    headStartTurns: 2
  },
  renju: {
    lineRule: { black: 'exact', white: 'atLeast' },
    forbidden: { black: [Array], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 5,
    allowFirstPlayerChoice: false,
    firstStone: 'black',
    openings: [ 'free', 'rif', 'sakata', 'tarannikov', 'pro', 'longPro' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: null,
    defaultBoard: null,
    analysis: true,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'lines',
    headStartTurns: 2
  },
  omok: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [Array], white: [Array] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 5,
    allowFirstPlayerChoice: false,
    firstStone: 'black',
    openings: [ 'free', 'pro', 'longPro', 'swap', 'swap2' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: null,
    defaultBoard: null,
    analysis: true,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'lines',
    headStartTurns: 2
  },
  caro: {
    lineRule: { black: 'exactOpen', white: 'exactOpen' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 5,
    allowFirstPlayerChoice: false,
    firstStone: 'black',
    openings: [ 'free', 'pro', 'longPro', 'swap', 'swap2' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: null,
    defaultBoard: null,
    analysis: true,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'cells',
    headStartTurns: 2
  },
  ninuki: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: true,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 5,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free', 'pro', 'longPro', 'swap', 'swap2' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: null,
    defaultBoard: null,
    analysis: true,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: 10,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'lines',
    headStartTurns: 1
  },
  sannuki: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: true,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 5,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free', 'pro', 'longPro', 'swap', 'swap2' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: null,
    defaultBoard: null,
    analysis: true,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2, 3 ],
    capturesToWin: 15,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'lines',
    headStartTurns: 1
  },
  misereFive: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 5,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: null,
    defaultBoard: null,
    analysis: true,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: true,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'lines',
    headStartTurns: 0
  },
  makerBreaker: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 5,
    allowFirstPlayerChoice: false,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 6 ],
    defaultBoard: null,
    analysis: false,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: true,
    singleColour: false,
    makerBreaker: true,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'cells',
    headStartTurns: 1
  },
  wildTicTacToe: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 3,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 3 ],
    defaultBoard: null,
    analysis: false,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: true,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'cells',
    headStartTurns: 0
  },
  notakto: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 3,
    allowFirstPlayerChoice: false,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 3 ],
    defaultBoard: null,
    analysis: false,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: true,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: true,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'cells',
    headStartTurns: 0
  },
  connect6: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 2,
    firstTurnStones: 1,
    winLength: 6,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: null,
    defaultBoard: null,
    analysis: true,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'lines',
    headStartTurns: 0
  },
  tictactoe: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 3,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 3 ],
    defaultBoard: null,
    analysis: true,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'cells',
    headStartTurns: 0
  },
  trapThree: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 4,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'free',
    loseLength: 3,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 5 ],
    defaultBoard: null,
    analysis: true,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'cells',
    headStartTurns: 1
  },
  toroidalFive: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: null,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: null,
    defaultBoard: null,
    analysis: true,
    wrap: 'both',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'lines',
    headStartTurns: 2
  },
  obstacleFive: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: null,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: null,
    defaultBoard: null,
    analysis: true,
    wrap: 'none',
    deadSquares: 6,
    hotSquares: 2,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'lines',
    headStartTurns: 1
  },
  scatteredRocks: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: null,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 15 ],
    defaultBoard: null,
    analysis: true,
    wrap: 'none',
    deadSquares: 12,
    hotSquares: 2,
    rocks: { placement: 'scattered', arriveAfter: null },
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'lines',
    headStartTurns: 1
  },
  rockfall: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: null,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 15 ],
    defaultBoard: null,
    analysis: true,
    wrap: 'none',
    deadSquares: 20,
    hotSquares: 2,
    rocks: { placement: 'scattered', arriveAfter: 8 },
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'lines',
    headStartTurns: 2
  },
  dropFour: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 4,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'drop',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 7, 9, 10 ],
    defaultBoard: null,
    analysis: true,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'cells',
    headStartTurns: 1
  },
  ringDrop: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 4,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'drop',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 7, 9, 10 ],
    defaultBoard: null,
    analysis: true,
    wrap: 'columns',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'cells',
    headStartTurns: 1
  },
  holeDrop: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 4,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'drop',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 7, 9, 10 ],
    defaultBoard: null,
    analysis: true,
    wrap: 'none',
    deadSquares: 1,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'cells',
    headStartTurns: 1
  },
  hotDrop: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 4,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'drop',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 7, 9, 10 ],
    defaultBoard: null,
    analysis: true,
    wrap: 'none',
    deadSquares: 1,
    hotSquares: 1,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'cells',
    headStartTurns: 1
  },
  clearDrop: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 4,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'drop',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 7, 9, 10 ],
    defaultBoard: null,
    analysis: true,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: true,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'cells',
    headStartTurns: 1
  },
  giveawayDrop: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 4,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'drop',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 7, 9, 10 ],
    defaultBoard: null,
    analysis: true,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: true,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'cells',
    headStartTurns: 0
  },
  edgeDrop: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 4,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'edge',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 7, 9, 10 ],
    defaultBoard: null,
    analysis: true,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'cells',
    headStartTurns: 0
  },
  wormDrop: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 4,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'drop',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 7, 9, 10 ],
    defaultBoard: null,
    analysis: true,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 2,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'cells',
    headStartTurns: 1
  },
  dominoFive: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 5,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 13, 15, 19 ],
    defaultBoard: null,
    analysis: false,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: 'domino',
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'lines',
    headStartTurns: 0
  },
  blockFive: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 5,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 13, 15, 19 ],
    defaultBoard: null,
    analysis: false,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: 'tetro',
    singles: 6,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'lines',
    headStartTurns: 0
  },
  twistFive: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 5,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: 3,
    pieces: null,
    squareWins: false,
    boardSizes: [ 6 ],
    defaultBoard: null,
    analysis: false,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'cells',
    headStartTurns: 1
  },
  twistFour: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 4,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: 2,
    pieces: null,
    squareWins: false,
    boardSizes: [ 4 ],
    defaultBoard: null,
    analysis: false,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'cells',
    headStartTurns: 0
  },
  squareFour: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 4,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: 4,
    squareWins: true,
    boardSizes: [ 5 ],
    defaultBoard: null,
    analysis: false,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'lines',
    headStartTurns: 1
  },
  reversi: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 5,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 8 ],
    defaultBoard: null,
    analysis: false,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: true,
    startingDiscs: 'fixed',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: 'corners',
    grid: 'cells',
    headStartTurns: 0
  },
  classicReversi: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 5,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 8 ],
    defaultBoard: null,
    analysis: false,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: true,
    startingDiscs: 'laid',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: 'corners',
    grid: 'cells',
    headStartTurns: 1
  },
  antiReversi: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 5,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 8 ],
    defaultBoard: null,
    analysis: false,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: true,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: true,
    startingDiscs: 'fixed',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'cells',
    headStartTurns: 0
  },
  miniReversi: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 5,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 4, 6, 8 ],
    defaultBoard: null,
    analysis: false,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: true,
    startingDiscs: 'fixed',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: 'corners',
    grid: 'cells',
    headStartTurns: 0
  },
  grandReversi: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 5,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 10 ],
    defaultBoard: null,
    analysis: false,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: true,
    startingDiscs: 'fixed',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: 'corners',
    grid: 'cells',
    headStartTurns: 0
  },
  honeycomb: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 5,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 7, 9, 11, 13 ],
    defaultBoard: 11,
    analysis: false,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: true,
    startingDiscs: 'fixed',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: true,
    go: false,
    headStart: null,
    grid: 'lines',
    headStartTurns: 0
  },
  halma: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 5,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 8, 10, 16 ],
    defaultBoard: 16,
    analysis: false,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: true,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'cells',
    headStartTurns: 3
  },
  hex: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 5,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free', 'swap' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 11, 13, 19 ],
    defaultBoard: null,
    analysis: false,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: true,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'lines',
    headStartTurns: 3
  },
  hexFive: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 5,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free', 'swap' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 7, 9, 11, 13 ],
    defaultBoard: 11,
    analysis: true,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: true,
    go: false,
    headStart: null,
    grid: 'lines',
    headStartTurns: 2
  },
  checkers: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 5,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 8 ],
    defaultBoard: null,
    analysis: false,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: true,
    checkersRules: {
      menRows: 3,
      menCaptureBackward: false,
      flyingKings: false,
      captureChoice: 'free',
      crownMidCapture: 'stops',
      repetitionDraw: null,
      endgameCounts: []
    },
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: 'men',
    grid: 'cells',
    headStartTurns: 3
  },
  internationalDraughts: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 5,
    allowFirstPlayerChoice: false,
    firstStone: 'white',
    openings: [ 'free' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 10 ],
    defaultBoard: null,
    analysis: false,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: true,
    checkersRules: {
      menRows: 4,
      menCaptureBackward: true,
      flyingKings: true,
      captureChoice: 'maximum',
      crownMidCapture: 'passes',
      repetitionDraw: 3,
      endgameCounts: [Array]
    },
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: 'men',
    headStartTurns: 3,
    grid: 'cells'
  },
  brazilianDraughts: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 5,
    allowFirstPlayerChoice: false,
    firstStone: 'white',
    openings: [ 'free' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 8 ],
    defaultBoard: null,
    analysis: false,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: true,
    checkersRules: {
      menRows: 3,
      menCaptureBackward: true,
      flyingKings: true,
      captureChoice: 'maximum',
      crownMidCapture: 'passes',
      repetitionDraw: 3,
      endgameCounts: [Array]
    },
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: 'men',
    headStartTurns: 3,
    grid: 'cells'
  },
  canadianCheckers: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 5,
    allowFirstPlayerChoice: false,
    firstStone: 'white',
    openings: [ 'free' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 12 ],
    defaultBoard: null,
    analysis: false,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: true,
    checkersRules: {
      menRows: 5,
      menCaptureBackward: true,
      flyingKings: true,
      captureChoice: 'maximum',
      crownMidCapture: 'passes',
      repetitionDraw: 3,
      endgameCounts: [Array]
    },
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: 'men',
    headStartTurns: 2,
    grid: 'cells'
  },
  russianDraughts: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 5,
    allowFirstPlayerChoice: false,
    firstStone: 'white',
    openings: [ 'free' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 8 ],
    defaultBoard: null,
    analysis: false,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: true,
    checkersRules: {
      menRows: 3,
      menCaptureBackward: true,
      flyingKings: true,
      captureChoice: 'free',
      crownMidCapture: 'continues',
      repetitionDraw: 3,
      endgameCounts: [Array]
    },
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: 'men',
    headStartTurns: 3,
    grid: 'cells'
  },
  poolCheckers: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 5,
    allowFirstPlayerChoice: false,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 8 ],
    defaultBoard: null,
    analysis: false,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: true,
    checkersRules: {
      menRows: 3,
      menCaptureBackward: true,
      flyingKings: true,
      captureChoice: 'free',
      crownMidCapture: 'passes',
      repetitionDraw: null,
      endgameCounts: [Array]
    },
    chineseCheckers: false,
    hexagon: false,
    go: false,
    headStart: 'men',
    headStartTurns: 3,
    grid: 'cells'
  },
  chineseCheckers: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 5,
    allowFirstPlayerChoice: true,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 17 ],
    defaultBoard: null,
    analysis: false,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: true,
    hexagon: false,
    go: false,
    headStart: null,
    grid: 'lines',
    headStartTurns: 3
  },
  go: {
    lineRule: { black: 'atLeast', white: 'atLeast' },
    forbidden: { black: [], white: [] },
    captures: false,
    stonesPerTurn: 1,
    firstTurnStones: 1,
    winLength: 5,
    allowFirstPlayerChoice: false,
    firstStone: 'black',
    openings: [ 'free' ],
    placement: 'free',
    loseLength: null,
    quadrantSize: null,
    pieces: null,
    squareWins: false,
    boardSizes: [ 9, 13, 19 ],
    defaultBoard: 19,
    analysis: false,
    wrap: 'none',
    deadSquares: 0,
    hotSquares: 0,
    rocks: null,
    lineClear: false,
    misere: false,
    queue: null,
    singles: 0,
    captureSizes: [ 2 ],
    capturesToWin: null,
    wormholes: 0,
    anyColour: false,
    singleColour: false,
    makerBreaker: false,
    flips: false,
    startingDiscs: 'none',
    camps: false,
    connects: false,
    checkers: false,
    checkersRules: null,
    chineseCheckers: false,
    hexagon: false,
    go: true,
    headStart: 'stones',
    grid: 'lines',
    headStartTurns: 3
  }
}

What it prints (run when this page was built)

View sourceEdit on GitHubMade from the source of @johnmorrisdotca/narabe 1.3.0.