This document assumes prior experience with ECS, and only aims to motivate why ECS for Storyscript.

The Storyscript editing experience is very structured - it's not a typical compiler chain transforming plain text. With this structure, we have the opportunity to associate lots of independent pieces of data with things.

Take for example the following Storyscript snippet:

Slack is a thing. It's a thing that has a lot of different data attributes for example:

In fact here is a screenshot from our dev tools showing the components associated with this entity:

Similarly, let's look at the components for the whole line. There's information about how this block is structured in the page:

There's information about what type of block it is:

There's information about the token line: