pub(crate) async fn eval_measure(
__arg0: State<Arc<AppState>>,
ro: Option<Extension<ReadOnly>>,
__arg2: Path<u32>,
body: Result<Json<EvalReq>, JsonRejection>,
) -> Result<Json<Vec<Cell>>, ApiError>Expand description
Incremental / what-if evaluation. Builds a short-lived live Engine over
all derived measures, applies the batch of edits as deltas, and returns the
recomputed snapshot for measure :id as [{coord: [[cat_name,item_name]..], value}].
Stateless by design: the Engine owns a worker thread and a live dataflow
and is not cheaply shareable across async tasks, so v1 rebuilds one per
request inside spawn_blocking. A persistent per-session engine pool is a
later optimization. Edits are pure what-if unless "persist": true, in
which case each edit is also written to the model store.