What problem does it solve? Writing graph-persistent code in Jac requires knowing the exact arrow-operator syntax, typed edge construction, and filter semantics of Object-Spatial Programming, and small mistakes silently produce wrong results or runtime errors. ## Core Features & Use Cases - Node and Edge Modeling: Define graph-persistent node and typed edge archetypes with has fields and typed endpoints for correct type inference. - Traversal and Filtering: Read graphs with direction-aware references, nested [?...] filters, edge-attribute predicates, multi-hop chains, and assign comprehensions for bulk updates. - Pitfall Avoidance: Documents verified failure modes such as silently dropped edge-field assignments, untyped edge predicates raising runtime errors, and stale .jac/ persistence between runs. - Use Case: When modeling a social network in Jac, use this guide to declare edge Follows: Person --> Person, connect users with +>:Follows(since=2020):+>, and query adult followers with [me ->:Follows:since > 2020:-> [?:Person, age >= 18]]. ## Quick Start Ask the AI to model your entities as Jac nodes and edges and write a filtered multi-hop graph query using these OSP patterns.