What problem does it solve? Writing Algorand smart contracts in TypeScript (PuyaTs) fails when developers use standard JavaScript patterns like number types, union types, or reference semantics, causing Puya compiler errors and runtime failures. ## Core Features & Use Cases - AVM Type Rules: Enforces uint64, bytes, and biguint usage instead of JavaScript number, with correct constructors like Uint64(). - Value Semantics Guidance: Explains when and why to use clone() for structs, arrays, and storage reads/writes. - Storage Patterns: Covers GlobalState, LocalState, Box, and BoxMap including MBR funding requirements for box storage. - Transactions & ABI: Details group transactions (gtxn), inner transactions (itxn) with fee pooling, method decorators, and lifecycle methods. - Use Case: When a Puya compiler error appears for Item | null union types or BoxMap writes fail, consult this Skill to apply the correct AVM-compatible pattern. ## Quick Start Ask how to fix a Puya compiler error or how to use a specific Algorand TypeScript feature like BoxMap, clone(), or inner transactions.