What problem does it solve? Server-side Jac code needs a reliable way to store, query, and evolve relational data without a separate ORM or database layer, and schema edits must not silently destroy persisted rows. ## Core Features & Use Cases - Graph-as-database modeling: Create entities by attaching nodes to root with typed edges, then query them with list-comprehension traversals, bracket predicates, and len() aggregation. - Find-by-id and view models: Resolve nodes with jid() loops or O(1) jobj() lookups, and project viewer-relative to_view() view models for endpoint responses. - Schema evolution without data loss: Handle field renames, class renames, and type changes via schema_alias, schema_drop, and schema_upgrade, with attic preservation and quarantine recovery through jac db commands. - Use Case: When a renamed field causes users to apparently lose data, declare a schema_alias so old values flow into the new field instead of the attic. ## Quick Start Ask the AI to write a Jac server endpoint that creates a Post node attached to a User with a typed Wrote edge and returns all published posts as view models.