One thing I've been thinking about is the addition of links that set variables as well as 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.