flatgraph
flatgraph is a successor to overflowdb, serving as an in-memory property graph database written in Scala. It supports multiple node and edge types, with adjacency lists that preserve well-defined neighbor ordering and full handling of self-edges. Core operations include adding and deleting nodes and edges, accessing neighbors, setting node properties, and managing a single optional edge property per edge. Edge properties are unboxed for primitives, support null for non-primitives, and incur negligible memory cost when unused. The library uses an edge identity model that pairs directional half-edges positionally within adjacency lists, ensuring consistent property values across paired half-edges. Batched graph updates are applied as if unbatched to preserve ordering semantics. flatgraph provides file-based input and output, with a binary format that stores a JSON manifest at the end of the file for easy inspection via command-line tools like tail and jless. By default, diffgraph application, deserialization, a