changedOutput schema / oneOf
Previous value: -[
- {
- "properties": {
- "claim_schema": {
- "description": "JSON Schema for the claim dictionary.",
- "type": "object"
- },
- "diagnostics": {
- "items": {
- "properties": {
- "line": {
- "type": [
- "integer",
- "null"
- ]
- },
- "message": {
- "type": "string"
- },
- "severity": {
- "enum": [
- "error",
- "warning"
- ],
- "type": "string"
- }
- },
- "required": [
- "severity",
- "message"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "label": {
- "description": "The ruleset's stored application-domain label (TJP-642), as ids under `vocabulary_version`. Null when the ruleset carries none, or when this account has labeling disabled. A label never alters a result; the level-two proposal text a caller sent is matched and dropped, never stored or returned.",
- "properties": {
- "confidence": {
- "enum": [
- "high",
- "medium",
- "low",
- null
- ],
- "type": [
- "string",
- "null"
- ]
- },
- "declined": {
- "type": "boolean"
- },
- "level_one": {
- "description": "Level-one domain id. Null only when declined.",
- "enum": [
- "finance",
- "consumer_finance",
- "capital_markets",
- "insurance",
- "regulatory_compliance",
- "hr_workforce",
- "security_access",
- "security_classification",
- "healthcare",
- "legal_contracts",
- "procurement",
- "engineering_release",
- "content_safety",
- "other",
- null
- ],
- "type": [
- "string",
- "null"
- ]
- },
- "level_two": {
- "description": "Level-two term id, from GET /v1/vocabulary. Null when the proposal matched no published term (the proposal was counted toward promotion instead) or none was offered.",
- "pattern": "^l2-[0-9]{4,}$",
- "type": [
- "string",
- "null"
- ]
- },
- "updated_at": {
- "description": "UTC, ISO 8601.",
- "type": "string"
- },
- "vocabulary_version": {
- "example": "v1",
- "type": "string"
- }
- },
- "required": [
- "vocabulary_version",
- "level_one",
- "level_two",
- "confidence",
- "declined",
- "updated_at"
- ],
- "type": [
- "object",
- "null"
- ]
- },
- "manifest": {
- "properties": {
- "claims": {
- "items": {
- "properties": {
- "boolean_subtype": {
- "type": "string"
- },
- "claim": {
- "type": "string"
- },
- "context": {
- "type": "string"
- },
- "data_type": {
- "enum": [
- "boolean",
- "numeric",
- "enum"
- ],
- "type": "string"
- },
- "ordered": {
- "type": "boolean"
- },
- "question": {
- "description": "Shown to the extracting model.",
- "type": "string"
- },
- "range": {
- "properties": {
- "max": {
- "type": "number"
- },
- "min": {
- "type": "number"
- }
- },
- "type": "object"
- },
- "required": {
- "type": "boolean"
- },
- "unit": {
- "type": [
- "string",
- "null"
- ]
- },
- "unknown_allowed": {
- "const": true,
- "type": "boolean"
- },
- "unknown_sentinel": {
- "description": "Present only when this claim's own vocabulary contains a member spelled like the sentinel. Then the string means that member and this names the value that means undetermined (null).",
- "type": "string"
- },
- "vocabulary": {
- "items": {
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "claim",
- "data_type",
- "question",
- "required",
- "unknown_allowed"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "rules": {
- "items": {
- "description": "One rule, with the assertions it states. A rule is the unit a policy is written in; an assertion is the unit the engine answers, and one rule may state several. A ruleset compiled here is a single DSAIL source and the grammar has no grouping construct, so today every rule holds exactly one assertion and carries its name — read results through this level anyway and a rule that states more costs you nothing.",
- "properties": {
- "assertions": {
- "items": {
- "description": "One assertion a rule states. The engine answers per assertion, so this is the unit a check reports on.",
- "properties": {
- "line": {
- "type": [
- "integer",
- "null"
- ]
- },
- "name": {
- "type": "string"
- },
- "source": {
- "type": [
- "string",
- "null"
- ]
- },
- "unknown_policy": {
- "enum": [
- "optimistic",
- "pessimistic",
- "neutral"
- ],
- "type": "string"
- }
- },
- "required": [
- "name",
- "unknown_policy"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "rule": {
- "type": "string"
- }
- },
- "required": [
- "rule",
- "assertions"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "ruleset_hash": {
- "type": "string"
- }
- },
- "required": [
- "ruleset_hash",
- "claims",
- "rules"
- ],
- "type": "object"
- },
- "ok": {
- "const": true,
- "type": "boolean"
- },
- "review": {
- "description": "A plain-text rendering of what this ruleset asks and decides, for a person about to approve it. Derived from the manifest on every compile, never stored, so it cannot drift from the contract a caller was handed.",
- "type": "string"
- },
- "ruleset_hash": {
- "description": "sha256 of the normalised source. This is the object key.",
- "type": "string"
- },
- "source": {
- "description": "The normalised DSAIL source that hashed to `ruleset_hash`, so a caller that only ever compiles has something to show or diff without a separate load-by-name call.",
- "type": "string"
- },
- "stored": {
- "properties": {
- "parent_hash": {
- "type": [
- "string",
- "null"
- ]
- },
- "revision_depth": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "summary": {
- "description": "The same thing in one sentence, for a row in a list rather than a page a person reads.",
- "type": "string"
- },
- "unbridged_units": {
- "description": "Unit pairs this ruleset compares that no loaded converter bridges, attributed by the engine to the rule that cannot be lowered. Each one answers UNKNOWN for every claim dictionary until a converter is added.",
- "items": {
- "properties": {
- "cause": {
- "enum": [
- "missing",
- "ambiguous"
- ],
- "type": "string"
- },
- "from": {
- "type": "string"
- },
- "rule": {
- "type": "string"
- },
- "to": {
- "type": "string"
- }
- },
- "required": [
- "rule",
- "from",
- "to",
- "cause"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "unit_library_hash": {
- "description": "The project unit library this compile read. Half of a result's provenance; null selects the six built-in standards.",
- "type": [
- "string",
- "null"
- ]
- },
- "validation_contract": {
- "description": "Exactly what check will reject, known before submitting.",
- "type": "object"
- },
- "versions": {
- "description": "Which engine and which wire contract produced this response.",
- "properties": {
- "engine": {
- "example": "dsail-core",
- "type": "string"
- },
- "engine_version": {
- "type": "string"
- },
- "language_version": {
- "description": "DSAIL language version.",
- "type": "string"
- },
- "service_version": {
- "type": "string"
- },
- "supported_language_versions": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "wire_version": {
- "type": "string"
- }
- },
- "required": [
- "engine",
- "engine_version",
- "language_version",
- "service_version",
- "wire_version"
- ],
- "type": "object"
- }
- },
- "required": [
- "ok",
- "ruleset_hash",
- "source",
- "manifest",
- "review",
- "summary",
- "claim_schema",
- "validation_contract",
- "diagnostics",
- "versions"
- ],
- "type": "object"
- },
- {
- "properties": {
- "error": {
- "properties": {
- "actual": {
- "type": "integer"
- },
- "budget": {
- "type": "string"
- },
- "code": {
- "enum": [
- "VALIDATION_REJECTED",
- "COMPILE_FAILED",
- "BUDGET_EXCEEDED",
- "RULESET_NOT_FOUND",
- "ENGINE_ERROR",
- "BAD_REQUEST",
- "CREDENTIAL_REQUIRED",
- "CREDENTIAL_INVALID",
- "CREDENTIAL_SCOPE",
- "EVALUATION_LIMIT",
- "ENTITLEMENT_EXCEEDED",
- "TIER_UNAVAILABLE"
- ],
- "type": "string"
- },
- "diagnostics": {
- "items": {
- "properties": {
- "line": {
- "type": [
- "integer",
- "null"
- ]
- },
- "message": {
- "type": "string"
- },
- "severity": {
- "enum": [
- "error",
- "warning"
- ],
- "type": "string"
- }
- },
- "required": [
- "severity",
- "message"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "docs": {
- "description": "The docs-site page that resolves this code (markdown). Fetch it before retrying blind.",
- "format": "uri",
- "type": "string"
- },
- "failure_count": {
- "description": "How many fields failed in total. Equal to the length of `failures` unless a very large rejection was truncated, which the message says.",
- "type": "integer"
- },
- "failures": {
- "description": "EVERY failing field, not the first one.",
- "items": {
- "properties": {
- "expected": {
- "type": "string"
- },
- "field": {
- "type": "string"
- },
- "received": {
- "type": "string"
- }
- },
- "required": [
- "field",
- "expected",
- "received"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "hint": {
- "description": "The grammar guide, carried on compile failures so the next call can succeed without a human.",
- "type": "string"
- },
- "limit": {
- "type": "integer"
- },
- "message": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message"
- ],
- "type": "object"
- },
- "ok": {
- "const": false,
- "type": "boolean"
- },
- "versions": {
- "description": "Which engine and which wire contract produced this response.",
- "properties": {
- "engine": {
- "example": "dsail-core",
- "type": "string"
- },
- "engine_version": {
- "type": "string"
- },
- "language_version": {
- "description": "DSAIL language version.",
- "type": "string"
- },
- "service_version": {
- "type": "string"
- },
- "supported_language_versions": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "wire_version": {
- "type": "string"
- }
- },
- "required": [
- "engine",
- "engine_version",
- "language_version",
- "service_version",
- "wire_version"
- ],
- "type": "object"
- }
- },
- "required": [
- "ok",
- "error",
- "versions"
- ],
- "type": "object"
- }
-]New value: +[
+ {
+ "properties": {
+ "claim_schema": {
+ "description": "JSON Schema for the claim dictionary.",
+ "type": "object"
+ },
+ "diagnostics": {
+ "items": {
+ "properties": {
+ "line": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "message": {
+ "type": "string"
+ },
+ "severity": {
+ "enum": [
+ "error",
+ "warning"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "severity",
+ "message"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "label": {
+ "description": "The ruleset's stored application-domain label (TJP-642), as ids under `vocabulary_version`. Null when the ruleset carries none, or when this account has labeling disabled. A label never alters a result; the level-two proposal text a caller sent is matched and dropped, never stored or returned.",
+ "properties": {
+ "confidence": {
+ "enum": [
+ "high",
+ "medium",
+ "low",
+ null
+ ],
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "declined": {
+ "type": "boolean"
+ },
+ "level_one": {
+ "description": "Level-one domain id. Null only when declined.",
+ "enum": [
+ "finance",
+ "consumer_finance",
+ "capital_markets",
+ "insurance",
+ "regulatory_compliance",
+ "hr_workforce",
+ "security_access",
+ "security_classification",
+ "healthcare",
+ "legal_contracts",
+ "procurement",
+ "engineering_release",
+ "content_safety",
+ "other",
+ null
+ ],
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "level_two": {
+ "description": "Level-two term id, from GET /v1/vocabulary. Null when the proposal matched no published term (the proposal was counted toward promotion instead) or none was offered.",
+ "pattern": "^l2-[0-9]{4,}$",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "updated_at": {
+ "description": "UTC, ISO 8601.",
+ "type": "string"
+ },
+ "vocabulary_version": {
+ "example": "v1",
+ "type": "string"
+ }
+ },
+ "required": [
+ "vocabulary_version",
+ "level_one",
+ "level_two",
+ "confidence",
+ "declined",
+ "updated_at"
+ ],
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "manifest": {
+ "properties": {
+ "claims": {
+ "items": {
+ "properties": {
+ "boolean_subtype": {
+ "type": "string"
+ },
+ "claim": {
+ "type": "string"
+ },
+ "context": {
+ "type": "string"
+ },
+ "data_type": {
+ "enum": [
+ "boolean",
+ "numeric",
+ "enum"
+ ],
+ "type": "string"
+ },
+ "ordered": {
+ "type": "boolean"
+ },
+ "question": {
+ "description": "Shown to the extracting model.",
+ "type": "string"
+ },
+ "range": {
+ "properties": {
+ "max": {
+ "type": "number"
+ },
+ "min": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "required": {
+ "type": "boolean"
+ },
+ "unit": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "unknown_allowed": {
+ "const": true,
+ "type": "boolean"
+ },
+ "unknown_sentinel": {
+ "description": "Present only when this claim's own vocabulary contains a member spelled like the sentinel. Then the string means that member and this names the value that means undetermined (null).",
+ "type": "string"
+ },
+ "vocabulary": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "claim",
+ "data_type",
+ "question",
+ "required",
+ "unknown_allowed"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "rules": {
+ "items": {
+ "description": "One rule, with the assertions it states. A rule is the unit a policy is written in; an assertion is the unit the engine answers, and one rule may state several. A ruleset compiled here is a single DSAIL source and the grammar has no grouping construct, so today every rule holds exactly one assertion and carries its name — read results through this level anyway and a rule that states more costs you nothing.",
+ "properties": {
+ "assertions": {
+ "items": {
+ "description": "One assertion a rule states. The engine answers per assertion, so this is the unit a check reports on.",
+ "properties": {
+ "line": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "name": {
+ "type": "string"
+ },
+ "source": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "unknown_policy": {
+ "enum": [
+ "optimistic",
+ "pessimistic",
+ "neutral"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "unknown_policy"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "rule": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "rule",
+ "assertions"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "ruleset_hash": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "ruleset_hash",
+ "claims",
+ "rules"
+ ],
+ "type": "object"
+ },
+ "ok": {
+ "const": true,
+ "type": "boolean"
+ },
+ "review": {
+ "description": "A plain-text rendering of what this ruleset asks and decides, for a person about to approve it. Derived from the manifest on every compile, never stored, so it cannot drift from the contract a caller was handed.",
+ "type": "string"
+ },
+ "ruleset_hash": {
+ "description": "sha256 of the normalised source. This is the object key.",
+ "type": "string"
+ },
+ "source": {
+ "description": "The normalised DSAIL source that hashed to `ruleset_hash`, so a caller that only ever compiles has something to show or diff without a separate load-by-name call.",
+ "type": "string"
+ },
+ "stored": {
+ "properties": {
+ "parent_hash": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "revision_depth": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "summary": {
+ "description": "The same thing in one sentence, for a row in a list rather than a page a person reads.",
+ "type": "string"
+ },
+ "unbridged_units": {
+ "description": "Unit pairs this ruleset compares that no loaded converter bridges, attributed by the engine to the rule that cannot be lowered. Each one answers UNKNOWN for every claim dictionary until a converter is added.",
+ "items": {
+ "properties": {
+ "cause": {
+ "enum": [
+ "missing",
+ "ambiguous"
+ ],
+ "type": "string"
+ },
+ "from": {
+ "type": "string"
+ },
+ "rule": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "rule",
+ "from",
+ "to",
+ "cause"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "unit_library_hash": {
+ "description": "The project unit library this compile read. Half of a result's provenance; null selects the six built-in standards.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "validation_contract": {
+ "description": "Exactly what check will reject, known before submitting.",
+ "type": "object"
+ },
+ "versions": {
+ "description": "Which engine and which wire contract produced this response.",
+ "properties": {
+ "engine": {
+ "example": "dsail-core",
+ "type": "string"
+ },
+ "engine_version": {
+ "type": "string"
+ },
+ "language_version": {
+ "description": "DSAIL language version.",
+ "type": "string"
+ },
+ "service_version": {
+ "type": "string"
+ },
+ "supported_language_versions": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "wire_version": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "engine",
+ "engine_version",
+ "language_version",
+ "service_version",
+ "wire_version"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "ok",
+ "ruleset_hash",
+ "source",
+ "manifest",
+ "review",
+ "summary",
+ "claim_schema",
+ "validation_contract",
+ "diagnostics",
+ "versions"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "error": {
+ "properties": {
+ "actual": {
+ "description": "How much the request used, where that is known. Absent for solver_memory_mb: the solver stops at the limit.",
+ "type": "integer"
+ },
+ "budget": {
+ "type": "string"
+ },
+ "code": {
+ "enum": [
+ "VALIDATION_REJECTED",
+ "COMPILE_FAILED",
+ "BUDGET_EXCEEDED",
+ "RULESET_NOT_FOUND",
+ "ENGINE_ERROR",
+ "ENGINE_BUSY",
+ "BAD_REQUEST",
+ "CREDENTIAL_REQUIRED",
+ "CREDENTIAL_INVALID",
+ "CREDENTIAL_SCOPE",
+ "EVALUATION_LIMIT",
+ "ENTITLEMENT_EXCEEDED",
+ "TIER_UNAVAILABLE"
+ ],
+ "type": "string"
+ },
+ "diagnostics": {
+ "items": {
+ "properties": {
+ "line": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "message": {
+ "type": "string"
+ },
+ "severity": {
+ "enum": [
+ "error",
+ "warning"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "severity",
+ "message"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "docs": {
+ "description": "The docs-site page that resolves this code (markdown). Fetch it before retrying blind.",
+ "format": "uri",
+ "type": "string"
+ },
+ "failure_count": {
+ "description": "How many fields failed in total. Equal to the length of `failures` unless a very large rejection was truncated, which the message says.",
+ "type": "integer"
+ },
+ "failures": {
+ "description": "EVERY failing field, not the first one.",
+ "items": {
+ "properties": {
+ "expected": {
+ "type": "string"
+ },
+ "field": {
+ "type": "string"
+ },
+ "received": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "field",
+ "expected",
+ "received"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "hint": {
+ "description": "The grammar guide, carried on compile failures so the next call can succeed without a human.",
+ "type": "string"
+ },
+ "limit": {
+ "type": "integer"
+ },
+ "message": {
+ "type": "string"
+ },
+ "retry_after_ms": {
+ "description": "ENGINE_BUSY only: when to retry. The REST door also sends it, in seconds, as Retry-After.",
+ "type": "integer"
+ }
+ },
+ "required": [
+ "code",
+ "message"
+ ],
+ "type": "object"
+ },
+ "ok": {
+ "const": false,
+ "type": "boolean"
+ },
+ "versions": {
+ "description": "Which engine and which wire contract produced this response.",
+ "properties": {
+ "engine": {
+ "example": "dsail-core",
+ "type": "string"
+ },
+ "engine_version": {
+ "type": "string"
+ },
+ "language_version": {
+ "description": "DSAIL language version.",
+ "type": "string"
+ },
+ "service_version": {
+ "type": "string"
+ },
+ "supported_language_versions": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "wire_version": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "engine",
+ "engine_version",
+ "language_version",
+ "service_version",
+ "wire_version"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "ok",
+ "error",
+ "versions"
+ ],
+ "type": "object"
+ }
+]