Canonical style

public class Pong extend Game {
  public const [u16; 2] Screen = [320, 240];

  public void Update() {
    if (Input.held(Key.Up)) {
      // update game state
    }
  }
}

What exists today

The source specification describes classes, structs, fixed arrays, attributes, functions, conditions, loops, comments, modules and imports. HIR support includes expressions, assignments, calls, member access, arrays, if/else, while, and return.

What is still in motion

match, payload enums, scene references, compile-time pool allocation and stronger type checking are listed as future compiler work. The documentation labels them as planned rather than treating them as syntax you can depend on.

Language lint

Current kalcite lint FILE.klc adds a static review pass to the edit–check–run loop. It flags unbounded fields, missing or invalid pool capacities, incomplete node references, overly terse public functions, and native-code escape hatches.

Terminal output from Kalcite lint showing KLC3001 and KLC3002 native-code warnings
Real CLI output from examples/native_escape: warnings make portable-cost boundaries visible without pretending the native code is forbidden.

Errors return a failing exit status, so the same command can protect CI. Read the complete Kally lint reference for every current rule.