Thank you for providing your story format, but it's also helpful to know the version number. Twine 2.1.3 comes with two versions of Harlowe, v1.2.4 (for older projects started before v2 came out) and v2.0.1, and that information can be important as it lets us know which features we have access to.
There's a lot of information in your passage, which is good. However, I don't know exactly what you mean by amendments, and I'm not sure how you plan to implement a side scroller, which makes answering this difficult. From the other parts of your answer, though, it seems you want to develop little "packages" of variable changes to use throughout your story. My suggestion would be to leverage Twine's passage structure for that.
For example, if you want a passage to have the "bonfire" trait as you describe, create a passage, and name it something, like "trait-bonfire", then place the code you need in that passage;
:: trait-bonfire
{
(set: $temperature to it + 3)
(set: $airQuality to it + 1)
}
Then, to apply that trait and its code in a passage, use a (display:) macro.
(display: "trait-bonfire")\
There's a bonfire here!
Notes:
- Raising variables in this way (by adding or subtracting) can be risky in some cases, since if a player can return to that passage, they could "cheat" by going back and forth between two passages and gaining a lot of bonuses. There are many ways to solve this issue, but without knowing more about your game, it's hard to offer specifics.
- You should declare your variables to a starting value (we call this initializing them) in a passage with the tag "startup".