# ADR-017: Pointer abstraction is forward-looking, not v1 ## Status Accepted ## Context There's a structural analogy between ujsx's `ValuePointer`/`selectNode`/`setNode` and graph node/edge addressing. Typed graph pointers (via JPATH Module or reactive signals) could provide compile-time-safe graph queries. ## Decision For v1, repository functions use direct key-based addressing (`findNode(graphId, nodeKey)`). Typed pointers are a post-v1 concern. The Module's existence makes typed pointers feasible later because it provides the schema the pointer validates against, but implementing them now adds complexity without clear benefit. ## Consequences - v1 repository API uses string-based keys for node/edge lookups - Attribute access is untyped JSON retrieval (`node.attributes.requestId`) - The Module validates attribute shapes, but query paths are strings - The pointer abstraction can layer on top of the repository later ## References - [metagraph-module.md](../metagraph-module.md) - [forward-look.md](../forward-look.md)