> For the complete documentation index, see [llms.txt](https://supermax-8.gitbook.io/conversation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://supermax-8.gitbook.io/conversation/basics/step-architecture.md).

# Step Architecture

Basically, the first step to be executed is the first in the list of steps, and the second depends on the step in question. The step uses either a special next step system or the basic system.

The basic system works like this:

In a step, if the step uses the basic next system and has one of these keys

* "next:" or "n"
  * it's a list of steps with indentation and it's the first step of the list that will be chosen
  * it's text (list of step ids) ex: "step1,step2,step3" it's one of the steps randomly chosen
  * it's text (a step id) ex: "dontExist" but the step id doesn't exist, it's then the step below the current one that will be chosen, which allows having a list of steps that execute in list without having to give the order each time, you can just put next: "d" it's what I do d for down
* "nextRandom" or "nr"
  * it's a list of steps with indentation it's one of the steps randomly that will be chosen

Each step can have its own conditions like a conversation with a category&#x20;

```yaml
conditions:
```
