Currently, we write a lot of:
scope:Spring(
scope:Computed(function()
...
end),
50
)
What if instead, you could write more of:
scope:Computed(function()
...
end):Spring(50)
In short, the proposal would be to allow extending the metatable of created state objects to include method calls to state object constructors that declare themselves as chainable.
In the future, this could lead to functional-style pipelines:
numCoins
:Map(function(use, x) return x - use(itemPrice) end)
:Spring(50)
:Map(function(use, x) return math.round(x) end)
:Map(function(use, x) return `You have {x} coins` end)