One thing I've been thinking about is the addition of links that, when clicked, set or alter variables while simultaneously going to passages. Many would agree that this could potentially simplify a number of Twine coding cases.
A proprietary "Twine clone" program called AXMA has this functionality in the form of this extension to the link syntax:
[[Kiss her once|Flower Patch{$kisses = 1}]] [[Kiss her twice|Flower Patch{$kisses = 2}]] [[Kiss her four times|Flower Patch{$kisses = 4}]]
<<set>>
-style declaration. I feel ambiguous about this syntax - it seems like it doesn't mesh with the rest of Twine's syntax, using curly braces just for this one occurrence.
In my mind, I've been turning over a possible alternative, one which continues the use of the pipe character as a separator between parameters of the link syntax:
[[Kiss her once|Flower Patch|$kisses = 1]] [[Kiss her twice|Flower Patch|$kisses = 2]] [[Kiss her four times|Flower Patch|$kisses = 4]]
<<insert>>
and <<goto>>
macros:<<insert "rush off">><<set $stealth = 0>><<goto "Glasshouse">><<endinsert>> <<insert "sneak off">><<set $stealth = 1>><<goto "Glasshouse">><<endinsert>>
<<insert>>
as long as it finishes with <<goto>>
. It also makes use of already extant macros in a clever way.