At its most basic, Ink can be used to write a branching dialogue tree or a non-linear Choose Your Own Adventure story with multiple endings, but its real strength is allowing non-technical writers to create dynamic narratives using only minimal markup syntax. The text remains readable allowing an author to follow the story flow by eye, and edit at any point to add new branching options and alternate text, update variables, and reconnect to the main story.
There’s no programming loop. Instead an ink runtime follows a single path through the text, typically following a goto link, jumping directly to sections called knots and their order-prioritized sub-sections called stitches – with a name like ink it would be reasonable to expect the metaphors would be about pens and writing but an inkle loom is a device for weaving straps out of one continuous thread wound around pegs (an elegant metaphor that isn’t terribly helpful in understanding ink’s syntax).
Ink runtime keeps track of which sections of the story have already been visited, automatically removing the options that have already been picked. Multiple choice dialog branches can be nested in place, creating conversational diversions before seamlessly weaving back into the main thread. Authors can write in natural prose, following conventions of visual novels or interactive fiction, and not worry about specialized code or relying on programmers to generate the options.