Condition object
A permanent-form condition contains only:
ConditionDefinition
ConditionId
ClosedObservationDomain
TypedPredicate
EvidenceUsePolicy
It does not contain a provider ID, check ID, query, trust lane, acquisition error, or caller-authored semantic status.
Authoring order
- Name one bounded canonical
ConditionId. - Select one closed observation domain with exact bounds and encoding law.
- Select the comparator-specific predicate variant lawful for that domain.
- State the evidence-use policy as factorized source, integrity, freshness, authorization, scope, independence, and retention facts.
- Add zero or more separate acquisition-operation bindings.
- Reference the condition from a propositionally satisfiable stage RET law.
Caller submission needs no fictional provider binding. Each submitted value is still admitted against the exact condition domain and use policy. Local or registered acquisition uses a separate binding that proves its operation and projection relation.
Initial domains
- bounded exact signed and unsigned integers;
- exact decimals with declared precision and scale;
- booleans;
- bounded strings and bytes;
- dates and instants with named semantics;
- closed bounded arrays and records;
- closed unions for which the predicate is lawful for every member.
There is no implicit coercion, generic binary floating-point comparison,
unnamed human-language collation, overloaded contains, or accepted arbitrary
JSON domain.
Predicate shape
Validated predicates retain their relation in the variant, for example:
Exists
ObservedAbsent
Equals(ValidatedComparableValue)
IntegerGreaterThan(ValidatedInteger)
IntegerClosedRange(InclusiveMinimum, InclusiveMaximum)
DecimalGreaterThan(ValidatedDecimal)
DecimalClosedRange(InclusiveMinimum, InclusiveMaximum)
DateClosedRange(InclusiveMinimum, InclusiveMaximum)
InstantClosedRange(InclusiveMinimum, InclusiveMaximum)
StringContains(ValidatedString)
CollectionContains(ValidatedComparableValue)
InSet(ValidatedNonEmptyCompatibleSet)
The current sealed representation implements the comparator-specific relation;
there is no comparator + optional expected JSON compatibility form. Inclusive
range constructors admit both endpoints through the exact owning domain and
reject reversed bounds during scenario admission.
Acquisition bindings
A binding names the target condition, exact operation/source or immutable provider-contract identity, validated schema-bound parameters, and projection into the condition domain. Equal query text never merges condition identities. One condition may admit several lawful paths when its policy permits them.
Network provider bindings are not selected for the initial target profile.
Current wire contract
The dag-v3 schema represents typed domains, comparator-specific predicates,
mandatory evidence-use policy, and acquisition bindings separately. Older
provider-coupled and flattened predicate syntax is rejected; no compatibility
field or migration route exists.