Evaluation
One stateless evaluation: a protocol named from the host's catalog, a canon-case/1 case snapshot, the canon-evidence/1 records that go with it, the canon-decisions/1 explicit decisions taken for it and an optional trusted evaluation time go in; Canon's decision comes out, or a refusal naming the input it could not use. It decides and never acts, reads no clock and calls no network or model.
loom.evaluation is one of loom's bounded contexts. All domains.
Types
ActionStatus
loom.evaluation.ActionStatus is one of Admissible, ApprovalRequired and Blocked.
CaseSnapshot
loom.evaluation.CaseSnapshot wraps Json and is not interchangeable with one: the whole value of naming it separately is the crossings the model then refuses.
ClaimValue
loom.evaluation.ClaimValue is one of True, False and Unknown.
DecidedAction
loom.evaluation.DecidedAction is a record of four fields:
- action —
String status—loom.evaluation.ActionStatusrequires—List<String>reasons—List<Json>
DecidedClaim
loom.evaluation.DecidedClaim is a record of two fields:
- claim —
String value—loom.evaluation.ClaimValue
DecidedObligation
loom.evaluation.DecidedObligation is a record of two fields:
- obligation —
String open—Boolean
EvaluationDecision
loom.evaluation.EvaluationDecision is a record of seven fields:
protocol—loom.evaluation.ProtocolNamecase—Stringactions—List<loom.evaluation.DecidedAction>claims—List<loom.evaluation.DecidedClaim>obligations—List<loom.evaluation.DecidedObligation>- outcome —
Optional<String>, which may be absent canon—Json
EvaluationInput
loom.evaluation.EvaluationInput is one of Request, Protocol, Snapshot, Evidence, Time and Decisions.
EvaluationRefusal
loom.evaluation.EvaluationRefusal is a record of four fields:
input—loom.evaluation.EvaluationInputevidence_index—Optional<Integer>, which may be absentcode—Stringmessage—String
EvaluationRequest
loom.evaluation.EvaluationRequest is a record of five fields:
protocol—loom.evaluation.ProtocolNamesnapshot—loom.evaluation.CaseSnapshot- evidence —
List<loom.evaluation.EvidenceRecord> at—Optional<Timestamp>, which may be absentdecisions—List<loom.evaluation.ExplicitDecision>
EvidenceRecord
loom.evaluation.EvidenceRecord wraps Json and is not interchangeable with one: the whole value of naming it separately is the crossings the model then refuses.
ExplicitDecision
loom.evaluation.ExplicitDecision is a record of four fields:
decision—String- outcome —
String principal—Stringcase_revision—String
ProtocolName
loom.evaluation.ProtocolName wraps String and is not interchangeable with one: the whole value of naming it separately is the crossings the model then refuses.
Three of the types above are reached by nothing else in this system: loom.evaluation.EvaluationDecision, loom.evaluation.EvaluationRefusal and loom.evaluation.EvaluationRequest. No entity, view, command, event, error or crossing names them, so it is either vocabulary something outside this specification uses or a leftover — and only a person can tell which.
Generated from loom v1 · model digest 687ce3d39bdb34d56d1fe0c221f558534fa9c3e8eda9e34862b5b742d61331e9 · contract digest slice-sha256/2:145aeb51320e9c7469cbc1391afdaf083e248696ba61584fce81ff87cf66218b. Do not edit this file; change the specification and regenerate it with task docs-generate.