What problem does it solve? Writing stateful types in Jac requires knowing the exact has field syntax, and mistakes like ordering defaulted fields before required ones or adding dynamic attributes cause cryptic compile errors or runtime crashes. This Skill provides the authoritative rules and patterns for declaring fields on any Jac archetype. ## Core Features & Use Cases - Field Declaration Rules: Covers types, defaults, multi-field declarations, static fields, and the mandatory required-before-default ordering for obj, node, edge, and walker archetypes. - Computed Fields and Properties: Documents the postinit pattern for derived values and getter/setter property blocks with backing fields, including read-only enforcement. - Pitfall Prevention: Explains inheritance default constraints, reserved-word naming limits, access tag encapsulation (has:pub, has:protect, has:priv), and walker spawn parameter traps. - Use Case: When defining a node Account with a validated balance property and a computed interest field, load this Skill to get the correct has declarations, property accessors, and postinit implementation without hitting E2004 or E0080 errors. ## Quick Start Ask the AI to declare a Jac object with typed fields, a computed postinit field, and a validated property using the jac-has-fields conventions.