Expand description
Typed read-models that decouple consumers from FF’s storage engine.
Today the only call here is FlowFabricWorker::describe_execution,
which replaces the HGETALL-on-exec_core pattern downstream consumers
rely on with a typed snapshot. The engine remains free to rename
hash fields or restructure keys under this surface — see issue #58
for the strategic context (decoupling ahead of a Postgres backend
port).
Snapshot types (ExecutionSnapshot, AttemptSummary, LeaseSummary,
FlowSnapshot) live in ff_core::contracts so non-SDK consumers
(tests, REST server, future alternate backends) can share them
without depending on ff-sdk.