What problem does it solve? Writing typed Jac code requires knowing its specific type system rules: mandatory annotations on every def parameter and has field, the as cast escape hatch, handling any values at untyped boundaries, and avoiding common checker errors like E1001, E1030, and W3037. This Skill provides the complete reference so you write type-correct Jac code the first time and can diagnose type-check failures quickly. ## Core Features & Use Cases - Type Annotation Rules: Covers required annotations on def parameters, has fields, and return types, plus union types (X | Y), optionals (T | None), and None-narrowing with isinstance guards. - Boundary Handling: Documents the 3-step playbook for landing any values from Python interop, JSON, or walker reports into typed destinations using typed sources, isinstance narrowing, or as casts. - Advanced Constructs: Explains import type for circular imports, ambient typing names (Callable, Protocol, TypeVar), type aliases, generics with declared type params, and their verified pitfalls. - Use Case: When jac check fails with E1032 (Type is Unknown) after chaining a Self-returning method, consult this Skill to learn that Self resolves to Unknown and you should return the concrete archetype name instead. ## Quick Start Load the jac-types skill and explain why my Jac function fails jac check with error E1001 when assigning a walker report to a typed list.