# Narabe 並べ — Board game rules engine: gomoku, Reversi, Go, checkers > Narabe 並べ — Board game rules engine: gomoku, Reversi, Go, checkers: forty-eight abstract games, immutable moves, replay, SVG boards and React. Pure TypeScript, zero dependencies. Install with `npm install @johnmorrisdotca/narabe`. Every page below is also an HTML page at the same address ending in .html; the documentation's home is https://johnmorrisdotca.github.io/narabe/docs/. The examples on the reference pages are run when the site is built, and what they print is shown under them. ## Guides - [Getting started](https://johnmorrisdotca.github.io/narabe/docs/guides/getting-started.md): Install Narabe, create a game and play two moves. - [Offer legal moves](https://johnmorrisdotca.github.io/narabe/docs/guides/legal-choices.md): Ask the engine for legal moves, handle every stage of a turn, and never assume a click ends it. - [Play and score Go](https://johnmorrisdotca.github.io/narabe/docs/guides/go-and-scoring.md): Play Go with the base API, score by area, and use the lower-level Go functions. - [Save and replay a record](https://johnmorrisdotca.github.io/narabe/docs/guides/save-and-replay.md): Save a record as settings and moves, replay it with its choices and clock, and spot a replay that stops early. - [Draw with SVG and React](https://johnmorrisdotca.github.io/narabe/docs/guides/draw-and-react.md): Draw the current position as SVG and keep game state in React. - [Embed a board position](https://johnmorrisdotca.github.io/narabe/docs/guides/embed-a-position.md): Embed a board as an element, an iframe or a module, and keep attributes and structured options apart. - [State and data-driven rules](https://johnmorrisdotca.github.io/narabe/docs/guides/state-and-rules.md): See how one state value and data-driven variant specs hold 48 games, and how seats differ from colours. - [Game length and draw limits](https://johnmorrisdotca.github.io/narabe/docs/guides/game-length.md): Understand why board size does not bound a game, choose a draw limit, and bound simulations. - [Troubleshooting and FAQ](https://johnmorrisdotca.github.io/narabe/docs/guides/troubleshooting.md): Find out why a move changes nothing, what null means, and why an embedded board is blank or a replay stops. - [Upgrading and moving from other engines](https://johnmorrisdotca.github.io/narabe/docs/guides/upgrading.md): Keep the 1.x contract and move from engines that change the board directly. ## Reference - [@johnmorrisdotca/narabe/react](https://johnmorrisdotca.github.io/narabe/docs/api/react/index.md): `useNarabe`, a React hook over the engine: one game's state and the moves a board can make on it. - [@johnmorrisdotca/narabe/draw](https://johnmorrisdotca.github.io/narabe/docs/api/draw/index.md): SVG boards - [@johnmorrisdotca/narabe/element](https://johnmorrisdotca.github.io/narabe/docs/api/element/index.md): Board element - [@johnmorrisdotca/narabe/element/define](https://johnmorrisdotca.github.io/narabe/docs/api/element-define/index.md): Register the board - [@johnmorrisdotca/narabe/rules/go](https://johnmorrisdotca.github.io/narabe/docs/api/rules-go/index.md): Go rules - [@johnmorrisdotca/narabe](https://johnmorrisdotca.github.io/narabe/docs/api/main/index.md): Narabe 並べ: one rules engine for forty-eight abstract board games. ## Optional - [Changelog](https://johnmorrisdotca.github.io/narabe/docs/changelog.md): every release - [Every export, in full](https://johnmorrisdotca.github.io/narabe/llms-full.txt) - [Source](https://github.com/johnmorrisdotca/narabe)