Skip to content

Branch main Contract SurfaceDifference

github-actions[bot] edited this page May 31, 2026 · 75 revisions

Contract: Surfacedifference

Back to Branch Overview

Field Value
Branch main
Source specs/contracts/SurfaceDifference.schema.json
Commit 5b2aac39fcf8
Synced (UTC) 2026-05-31T11:22:29Z

Visual Context

Contract pages define the machine-checkable object shape that crosses a lifecycle boundary.

flowchart LR
  Producer["Lifecycle producer"] --> Contract["Contract schema"]
  Contract --> Example["Schema example"]
  Example --> Validator["Schema validator"]
  Contract --> Fixture["Conformance fixture output"]
  Fixture --> Gate["Base-design gate"]
Loading

Reading Checklist

Question Where to look
Which lifecycle boundary uses it? Read description, required fields, and linked references.
What diagnostics are mandatory? Inspect diagnostic reference fields and rule-reference links.
How is it validated? Compare this schema with fixtures/schema_examples/ and conformance vectors.

JSON Payload

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "SurfaceDifference",
  "description": "Evidence-only JSON surface difference record.",
  "type": "object",
  "properties": {
    "differenceID": {
      "type": "string"
    },
    "path": {
      "$ref": "JsonPointer.schema.json"
    },
    "differenceKind": {
      "type": "string",
      "enum": [
        "MISSING",
        "ADDED",
        "REMOVED",
        "REPLACED",
        "TYPE_CHANGED",
        "ARRAY_CHANGED"
      ]
    },
    "observedDocument": {
      "$ref": "JsonDocumentReference.schema.json"
    },
    "desiredDocument": {
      "$ref": "JsonDocumentReference.schema.json"
    },
    "diagnosticReference": {
      "$ref": "DiagnosticReference.schema.json"
    }
  },
  "required": [
    "differenceID",
    "path",
    "differenceKind",
    "observedDocument",
    "desiredDocument",
    "diagnosticReference"
  ],
  "additionalProperties": false
}

Clone this wiki locally