Runtime values
Optional
Some rules need to name a value that changes during play: oxygen left, the current score, progress toward an objective. A runtime value gives that changing value one stable name. Its address always starts with runtime..
02-mechanics.md, naming the oxygen of a diving game
The oxygen left right now is
runtime.oxygen_seconds. Read it after each full second spent diving and immediately after anything restores it.
Writing the name in a numbered chapter is the whole declaration. There is no separate list. The sentence around the name says what the value means and when it is read. After that, the name can be used in every chapter, in clocks.json, and in acceptance tests.
The name does not create, store or update the value. Your rules say how it changes. The builder, the person, team or AI that turns your package into a game, chooses how to implement it.
If a test uses a runtime name that no chapter and no clock declares, the validator (the checking tool) reports RUNTIME_UNDECLARED and tells you to declare it. The code names the exact rule. The validator cannot catch a misspelling. A misspelled name looks like a new value. Before handoff, read your runtime names once and remove near-duplicates.
A clock can also declare a runtime value by naming it in its advances list. The Modes and clocks chapter explains that optional file.
Full rules: OpenGDD specification, §4b.