engine_observables_api — the common-minimum query traits every
Hekate render lane (Nematic / Serval / Scrying) publishes for
downstream consumers (mere-host, Apparatus inspector, Hekate
indexing/extract pipeline).
See docs/2026-05-17_hekate_lanes_observables.md for the design. The "raw plane storage stays implementation detail of each lane; the permanent ABI is these query traits" framing is load-bearing — internal plane shapes can evolve, the trait surface here is what consumers depend on.
Modules
- [
semantic] — common semantic facts (title, headings, links, anchors) + engine-specific extensions (HTML / Nematic / feed). - [
fragment] — laid-out geometry queries (hit-test, box-model, anchor → fragments, selection rects). - [
interaction] — focus, selection, affordances at a point, activation target lookup. - [
loading] — request/response state, redirects, MIME, TLS, cache origin, errors.
Each trait carries a generation_id() -> u64 epoch (or its
equivalent) so consumers can cache against it: the value rolls
whenever the underlying plane regenerates.