A rule that returns release has not released anything.
The order service takes a caller-supplied rule that decides whether an order is released or held for review. The host passes explicit inputs such as the order amount and the identity-check result. The rule returns decision data with the selected action and a reason. The host inspects that data, then acts, and in between it can still reject an unknown action, run a later authorization check or update the wrong order. Recording the input and the returned data shows where a disputed decision came from. What the host actually did has to be observed on the host.
The evaluator matters just as much. In Lispex 1.21, default source evaluation runs trusted code in-process. That is fine for trusted source when bounded execution is not needed, and it gives no resource guarantee for arbitrary caller source. Native embed and embed full are distinct bounded evaluators using import-free WASM and fresh instances, so a resource claim names the evaluator and the profile. Preparation and evaluation are each accounted against that profile. A limit on evaluation alone says nothing about preparation.
My plan is to log evaluator, profile, input and decision as one record, and attach the observed host action to it afterward.
