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: