Reference · Rules, solvers and generation
CHALLENGESconstant
WHAT A TSUNAGI LEVEL ASKS OF A PLAYER, read from its board: the challenges on it, where it sits in its block's lesson, and how hard it measured. John, 2026-09-26: "at the bottom of every map, show the obstacles or difficulty level in one row… so the user can see that the level they are on has certain challenges", and of the block's last two: "users should know that the ninth [now 15th] would be a sort of experience and the 10th [16th] is the hardest".
Imports carry their .ts so the level script can read the same rules.
Import it
import { CHALLENGES } from "@johnmorrisdotca/tsunagi";
Definition
const CHALLENGES: readonly Challenge[] = ["bridges", "walls", "waypoints", "wrap", "portals", "explosions", "strokes", "hexagon", "sparse"]
Examples
import { CHALLENGES } from "@johnmorrisdotca/tsunagi";
console.log(CHALLENGES);[
'bridges', 'walls',
'waypoints', 'wrap',
'portals', 'explosions',
'strokes', 'hexagon',
'sparse'
]What it prints (run when this page was built)