Proposed Structure for Semantics Chapter
X.1 Introduction to Semantics: in this section we explain what we mean by semantics for OSC 2.0
X.2 Static Checks: in this section, we provide an overview of the type checking and other well-formedness checks that ensure that an OSC 2.0 script is well-formed. This may link to subsections of other chapters e.g. types but I think it would be good to have those links.
X.3 Execution Semantics: this section explores the runtime concerns for the language: how to, (as close to uniformly as possible) ensure that all implementations of OSC 2.0 are similar modulo lowest level agent models. We split the actual semantics exposition into several subsections
X.3.1 Core Execution Semantics: this section details the core concepts of the semantics for the simplest possible subset of the language
X.3.2 Phase Execution Semantics: this section extends the semantics with the phase temporal aspects of the languages e.g. serial, parallel, mix, oneof etc. So, with this, we introduce the ability to create multiple-phase scenarios
X.3.3 Constraint Execution Semantics: this section adds the constraints that are available
X.3.4 Remainder Semantics: this section gives the final bits and pieces
X.4 Pragmatics Issues with Simulator Integration: we then provide some detail of the bits that we cannot control formally above and provide some advice on how to make an implementation of the language.
X.4.1 Simulator state issues around the state of the simulator and its model of time.
X.4.2 Interaction with external models: we explicitly cover this.
Note: there are potentially more subsections for X.4 once we delve into it a bit more
Note: the subsections X.3.X and X.4.X might change as we discover the layers of the language.