Choose Your Own Adventure

> doing it the bullshit way

## about

this is a choose your own adventure game fueled by recfiles and stuff

![example](doc/example.png)

## requirements

- recutils v1.9: data and querying and templates

- mustache v4.2.0: more different templating

- just v1.4.0: command runner

- graphviz version 5.0.1: to make a graph

- GNU troff (groff) version 1.23.0: build pdf and ascii

## getting started

the whole game is in a recfile

each record has an `id`.

each record has a `text` field that is the narrative text of the section, including branching choices.

branches should refernece the `name` of another field in {{mustachequotes}}.

to build the output, we will build a `data` object mapping all names to ids (with recsel and sed; see the justfile for details). next, mustache will use that data object to replace the template strings in the recfile with id numbers. finally the expanded data will be piped through recfmt, which will dump the text of the game.

you can also create a graph of the story nodes with `just graph` if you have graphviz installed. this is handy for visualing your story paths, studying the shape of your story, and seeing if you have any islands or orphan nodes. it does pretty much the same thing as `just build`, except it outputs a DOT file, and then creates `graph.png`.
