# versions

> Reference for the versions tool of Author: versions, with every action and the arguments you can pass.

Source: https://author.geenius.io/docs/reference/versions/

Named versions with word diffs and restore. Save a version before you rewrite a person's prose.

Call it as `geenius_author(tool: "versions", action: "<action>", args: {...})` through Geenius OS.

## Actions

| Action | What it does |
|---|---|
| `list` | The book's saved versions, newest first. Rules: book_id: newest first, each with how many scenes changed since. |
| `get` | One saved version: its tree, words and pinned profile revisions. Rules: version_id: its tree, words per scene, the pinned profile revisions and which profiles changed since. |
| `save` | Freeze the book now as a named version. Rules: book_id, name?, note?: freeze the book now (tree, every scene's text, the revision of each cast profile). |
| `diff` | Word-by-word differences between two versions (or now). Rules: book_id, from (a version_id or \"now\"), to? (default \"now\"), scene_id?: scene by scene, word by word (runs of eq/add/del). |
| `restore` | Bring a version's text back (the current book is saved first). Rules: version_id, scene_ids?: bring that text back (a scene deleted since is made again); the book as it was is saved first as an automatic version. |
| `delete` | Delete a saved version. Rules: version_id. |

## Arguments we have checked

### versions · list

The book's saved versions, newest first. Rules: book_id: newest first, each with how many scenes changed since.

- `book_id` (required)

### versions · get

One saved version: its tree, words and pinned profile revisions. Rules: version_id: its tree, words per scene, the pinned profile revisions and which profiles changed since.

- `version_id` (required)

### versions · save

Freeze the book now as a named version. Rules: book_id, name?, note?: freeze the book now (tree, every scene's text, the revision of each cast profile).

- `book_id` (required)
- `name`
- `note`
- `title`

### versions · diff

Word-by-word differences between two versions (or now). Rules: book_id, from (a version_id or \"now\"), to? (default \"now\"), scene_id?: scene by scene, word by word (runs of eq/add/del).

- `book_id` (required)
- `from`
- `scene_id`
- `to`
- `version_id`

### versions · restore

Bring a version's text back (the current book is saved first). Rules: version_id, scene_ids?: bring that text back (a scene deleted since is made again); the book as it was is saved first as an automatic version.

- `scene_ids`
- `version_id` (required)

### versions · delete

Delete a saved version. Rules: version_id.

- `version_id` (required)

> [!TIP]
> Ask for the exact arguments of any action with `action: "help", of: "list"`. The server answers from its own definitions, so that answer is always current.

> [!NOTE]
> Restoring brings a version's text back and saves the current book first.

