Streck Changelog

What's new in Streck 2.0

Version 2.0

New Features

Explicit Parameter Typing

Functions now support explicit type annotations for parameters. Two new keywords have been introduced: monetary for numeric values and string for text values. This makes your code clearer and helps catch errors early.

Before (Streck 1.x):

func Sale(priceInclVat) {
    bookkeep Company1 {
        debit A1920 with priceInclVat
        credit A3010 with priceInclVat
    } comment 'Sale recorded.'
}

After (Streck 2.0):

func Sale(monetary priceInclVat) {
    bookkeep Company1 {
        debit A1920 with priceInclVat
        credit A3010 with priceInclVat
    } comment 'Sale recorded.'
}

String Parameters

Functions can now accept text values using the string keyword. Combined with string interpolation, this enables more expressive output.

func Greet(string name) {
    print 'Hello, \(name)!\n'
}

func Invoice(string customer, monetary amount) {
    print 'Invoice for \(customer)\n'
    print 'Amount due: \(amount)\n'
}

String Interpolation

String variables can now be embedded directly in print and comment statements using the \(variablename) syntax.

func Invoice(string customer, monetary amount) {
    bookkeep Company1 {
        debit A1510 with amount
        credit A3010 with amount
    } comment 'Invoice to \(customer).'
}

Updated Resources

The manual, MCP server, and all examples have been updated to reflect the Streck 2.0 syntax as of September 15, 2026.

Migration Guide

To migrate your Streck 1.x files to Streck 2.0, add the monetary keyword before each numeric parameter in your function definitions. If you have parameters that should hold text, use the string keyword instead.