/// import { type Cell, Default, handler, recipe, UI } from "commontools"; interface Player { playerName: string; score: number; level: number; } interface GameState { stats: Default< Player, { playerName: "Player 1"; score: 500; level: 10; } >; } const incrementScore = handler }>( (_, { stats }) => { const currentScore = stats.key("score").get(); stats.key("score").set(currentScore + 10); }, ); const levelUp = handler }>( (_, { stats }) => { const currentLevel = stats.key("level").get(); stats.key("level").set(currentLevel + 1); }, ); export default recipe("Game Stats with Default", (state) => { return { [UI]: ( Game Stats Player: {state.stats.playerName} Level: {state.stats.level} Score: {state.stats.score} Add 10 Points Level Up ), stats: state.stats, }; });
Player: {state.stats.playerName}
Level: {state.stats.level}
Score: {state.stats.score}