Resolved identity: immutable ruleset_id, a real ruleset_version, content_digest | Served. /decide and /explain both return ruleset_version (e.g. "v2") and content_digest |
Blocking field_errors force decision: "undetermined" | Served. An unusable input returns undetermined with the offending field in field_errors and missing_fields |
An undefined top-level request key returns 422 extra_forbidden | Served. An unknown body key is rejected, not silently ignored |
X-Aethis-Records-Omitted on catalogue reads | Served. GET /rulesets returns the header (0 when nothing was omitted) |
Publish-validated source_references[] on criteria | Served. /explain returns source_refs and source_references on every criterion. They are null on the first-party showcase rulesets, which do not yet declare citation keys — see Provenance and citations |
| Anonymous cross-origin access scoped per route and method | Served. The open surface answers any origin with GET, POST, OPTIONS and no credentials; every other route reflects only first-party origins |