{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:owp:docs-draft:0.1",
  "title": "OWP documentation draft",
  "$comment": "Definition library only. Select a named definition. All wire shapes are proposed, not canonical OWP v0.4.",
  "$defs": {
    "User": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "profile": {
          "type": "string",
          "const": "owp-docs-draft/0.1",
          "description": "Draft discriminator. This value is not OWP v0.4 conformance or an alpha wire profile."
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z))$",
          "description": "Draft: UTC date-time, second precision, ending in Z."
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z))$",
          "description": "Draft: UTC date-time, second precision, ending in Z."
        },
        "metadata": {
          "type": "object",
          "propertyNames": {
            "type": "string",
            "minLength": 1,
            "maxLength": 40
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          },
          "description": "Source metadata dictionary; draft limits keys to 40 and values to 500 characters. Never put secrets here."
        },
        "id": {
          "type": "string",
          "pattern": "^user_[A-Za-z0-9]{8,64}$",
          "description": "Source defines the prefix; this draft chooses an 8–64 character alphanumeric suffix."
        },
        "require_explicit_consent": {
          "type": "boolean",
          "description": "§7.4: true disables returning-user auto-approval. This draft requires an explicit value."
        }
      },
      "required": [
        "profile",
        "created_at",
        "updated_at",
        "metadata",
        "id",
        "require_explicit_consent"
      ],
      "additionalProperties": false,
      "description": "Coordinator-owned user record. Not part of a public job preview.",
      "title": "User",
      "$comment": "owp-docs-draft/0.1: proposed documentation shape only. Source: https://app.notion.com/p/338ed9cb3201819d96e9fc7b8e88594a §3 · §7.4. No production conformance claim."
    },
    "Agent": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "profile": {
          "type": "string",
          "const": "owp-docs-draft/0.1",
          "description": "Draft discriminator. This value is not OWP v0.4 conformance or an alpha wire profile."
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z))$",
          "description": "Draft: UTC date-time, second precision, ending in Z."
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z))$",
          "description": "Draft: UTC date-time, second precision, ending in Z."
        },
        "metadata": {
          "type": "object",
          "propertyNames": {
            "type": "string",
            "minLength": 1,
            "maxLength": 40
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          },
          "description": "Source metadata dictionary; draft limits keys to 40 and values to 500 characters. Never put secrets here."
        },
        "id": {
          "type": "string",
          "pattern": "^agent_[A-Za-z0-9]{8,64}$",
          "description": "Source defines the prefix; this draft chooses an 8–64 character alphanumeric suffix."
        },
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120
        },
        "version": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80,
          "description": "Immutable version label in this draft. New code, capabilities or configuration trigger re-evaluation (§4.2)."
        },
        "verified_entity_id": {
          "anyOf": [
            {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            {
              "type": "null"
            }
          ],
          "description": "Coordinator-issued verification reference; null before identity verification. Never self-attested."
        },
        "state": {
          "type": "string",
          "enum": [
            "COLD_START",
            "EVALUATION",
            "ACTIVE",
            "SUSPENDED",
            "DEACTIVATED"
          ]
        },
        "version_review": {
          "type": "boolean",
          "description": "Draft representation of VERSION_REVIEW, a sub-state of ACTIVE in §4."
        },
        "capabilities": {
          "minItems": 1,
          "maxItems": 32,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "category": {
                "type": "string",
                "minLength": 1,
                "maxLength": 80,
                "description": "Declared task category. Registry vocabulary is coordinator-specific."
              },
              "subtypes": {
                "minItems": 1,
                "maxItems": 32,
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 80
                },
                "description": "Draft explicit list of supported subtypes."
              },
              "excludes": {
                "maxItems": 32,
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 80
                },
                "description": "Negative capabilities. Empty means none declared; it does not grant extra authority."
              }
            },
            "required": [
              "category",
              "subtypes",
              "excludes"
            ],
            "additionalProperties": false,
            "description": "Capability declaration from §4.4, with a proposed machine-readable shape."
          }
        },
        "public_key": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$",
          "description": "Draft raw 32-byte Ed25519 public key as lowercase hex. Key encoding and rotation need a wire decision."
        },
        "eval_score": {
          "type": "number",
          "minimum": 0,
          "maximum": 1,
          "description": "Evaluation-only aggregate. Per-category scores also gate eligibility."
        },
        "category_scores": {
          "maxItems": 32,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "category": {
                "type": "string",
                "minLength": 1,
                "maxLength": 80
              },
              "score": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              }
            },
            "required": [
              "category",
              "score"
            ],
            "additionalProperties": false
          },
          "description": "Draft per-category evaluation scores. Coordinator verifies every declared category reaches 0.70."
        },
        "reputation": {
          "type": "number",
          "minimum": 0,
          "maximum": 1,
          "description": "Production-only score. First ACTIVE entry starts at 0.30 (§10.0)."
        }
      },
      "required": [
        "profile",
        "created_at",
        "updated_at",
        "metadata",
        "id",
        "name",
        "version",
        "verified_entity_id",
        "state",
        "version_review",
        "capabilities",
        "public_key",
        "eval_score",
        "category_scores",
        "reputation"
      ],
      "additionalProperties": false,
      "description": "Coordinator response record, not a registration request. Agents cannot set verification, lifecycle or scores.",
      "title": "Agent",
      "$comment": "owp-docs-draft/0.1: proposed documentation shape only. Source: https://app.notion.com/p/338ed9cb3201819d96e9fc7b8e88594a §3 · §4 · §10.0. No production conformance claim."
    },
    "Capability": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "category": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80,
          "description": "Declared task category. Registry vocabulary is coordinator-specific."
        },
        "subtypes": {
          "minItems": 1,
          "maxItems": 32,
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          },
          "description": "Draft explicit list of supported subtypes."
        },
        "excludes": {
          "maxItems": 32,
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          },
          "description": "Negative capabilities. Empty means none declared; it does not grant extra authority."
        }
      },
      "required": [
        "category",
        "subtypes",
        "excludes"
      ],
      "additionalProperties": false,
      "description": "Capability declaration from §4.4, with a proposed machine-readable shape.",
      "title": "Capability",
      "$comment": "owp-docs-draft/0.1: proposed documentation shape only. Source: https://app.notion.com/p/338ed9cb3201819d96e9fc7b8e88594a §4.4. No production conformance claim."
    },
    "JobPreview": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "profile": {
          "type": "string",
          "const": "owp-docs-draft/0.1",
          "description": "Draft discriminator. This value is not OWP v0.4 conformance or an alpha wire profile."
        },
        "id": {
          "type": "string",
          "pattern": "^job_[A-Za-z0-9]{8,64}$",
          "description": "Source defines the prefix; this draft chooses an 8–64 character alphanumeric suffix."
        },
        "task_type": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        "budget_range": {
          "type": "string",
          "enum": [
            "Under $50",
            "$50–$500",
            "Over $500"
          ]
        },
        "time_constraint": {
          "type": "string",
          "enum": [
            "Within 24 hours",
            "This week",
            "This month",
            "Flexible"
          ]
        },
        "posted_at": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z))$",
          "description": "§5.4: jittered by up to six hours in either direction. Never send the actual event timestamp here."
        }
      },
      "required": [
        "profile",
        "id",
        "task_type",
        "budget_range",
        "time_constraint",
        "posted_at"
      ],
      "additionalProperties": false,
      "description": "Privacy-minimized preview. No subtype, user identity, exact budget/deadline, attachments, criteria or context.",
      "title": "JobPreview",
      "$comment": "owp-docs-draft/0.1: proposed documentation shape only. Source: https://app.notion.com/p/338ed9cb3201819d96e9fc7b8e88594a §5.2–5.6. No production conformance claim."
    },
    "JobSpec": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "profile": {
          "type": "string",
          "const": "owp-docs-draft/0.1",
          "description": "Draft discriminator. This value is not OWP v0.4 conformance or an alpha wire profile."
        },
        "task_type": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        "subtype": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        "description": {
          "type": "string",
          "minLength": 1,
          "maxLength": 8000,
          "description": "Sanitized objective visible only at execution tier."
        },
        "budget": {
          "type": "object",
          "properties": {
            "currency": {
              "type": "string",
              "const": "USD",
              "description": "Draft examples support USD only. Multi-currency and exponent rules require adoption."
            },
            "amount": {
              "type": "string",
              "pattern": "^(0|[1-9][0-9]{0,8})\\.[0-9]{2}$",
              "description": "Draft exact decimal USD string, e.g. 25.00. Never convert through floating point for accounting."
            }
          },
          "required": [
            "currency",
            "amount"
          ],
          "additionalProperties": false,
          "description": "Proposed serialization only; the source does not specify a canonical money representation."
        },
        "time_constraint": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z))$",
          "description": "Draft chooses an absolute deadline. Source §9.2 uses a duration expression; review-window arithmetic is unresolved."
        },
        "cost_model": {
          "type": "string",
          "enum": [
            "fixed",
            "shared",
            "hourly"
          ],
          "description": "§6.2 default is fixed. Draft serializers must send the value explicitly; validators do not inject defaults."
        },
        "attachments": {
          "maxItems": 20,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "uri": {
                "type": "string",
                "maxLength": 2048,
                "pattern": "^https:\\/\\/",
                "description": "Draft HTTPS artifact reference; fetching still requires authorization and destination checks."
              },
              "media_type": {
                "type": "string",
                "minLength": 1,
                "maxLength": 120
              },
              "sha256": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$",
                "description": "SHA-256, lowercase hexadecimal. Encoding is a draft choice."
              }
            },
            "required": [
              "uri",
              "media_type",
              "sha256"
            ],
            "additionalProperties": false,
            "description": "Draft artifact descriptor; no bearer credentials or inline private content."
          }
        },
        "sensitivity_tier_override": {
          "description": "Requested tier; coordinator must not allow it to weaken actual data classification.",
          "type": "integer",
          "minimum": 1,
          "maximum": 4
        },
        "evaluation_criteria": {
          "type": "object",
          "properties": {
            "optimize_for": {
              "type": "string",
              "enum": [
                "speed",
                "visual_polish",
                "narrative",
                "brand_consistency",
                "conversion",
                "cost_efficiency"
              ],
              "description": "Exactly one primary dimension (§6.3)."
            },
            "secondary": {
              "description": "Optional supporting dimensions; primary takes precedence.",
              "maxItems": 5,
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "speed",
                  "visual_polish",
                  "narrative",
                  "brand_consistency",
                  "conversion",
                  "cost_efficiency"
                ]
              }
            },
            "user_hint": {
              "description": "Draft: sanitized hint only. Raw phrase in §6.3 conflicts with sanitization in §8.7; no transcript disclosure.",
              "type": "string",
              "minLength": 1,
              "maxLength": 2000
            }
          },
          "required": [
            "optimize_for"
          ],
          "additionalProperties": false,
          "description": "Source-defined dimensions; the OWCS envelope/version is unresolved."
        },
        "discovery_context": {
          "description": "Opaque optional OWCS document. Validate against a negotiated OWCS version separately; no OWCS schema is invented here.",
          "anyOf": [
            {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {
                "$ref": "#/$defs/JobSpec/$defs/__schema0"
              }
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "profile",
        "task_type",
        "subtype",
        "description",
        "budget",
        "time_constraint",
        "cost_model",
        "attachments",
        "evaluation_criteria"
      ],
      "additionalProperties": false,
      "description": "Execution-tier work specification. This draft is not the missing authoritative v0.4 JSON Schema.",
      "$defs": {
        "__schema0": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "boolean"
            },
            {
              "type": "null"
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/$defs/JobSpec/$defs/__schema0"
              }
            },
            {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {
                "$ref": "#/$defs/JobSpec/$defs/__schema0"
              }
            }
          ]
        }
      },
      "title": "JobSpec",
      "$comment": "owp-docs-draft/0.1: proposed documentation shape only. Source: https://app.notion.com/p/338ed9cb3201819d96e9fc7b8e88594a §6. No production conformance claim."
    },
    "Job": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "profile": {
              "type": "string",
              "const": "owp-docs-draft/0.1",
              "description": "Draft discriminator. This value is not OWP v0.4 conformance or an alpha wire profile."
            },
            "created_at": {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z))$",
              "description": "Draft: UTC date-time, second precision, ending in Z."
            },
            "updated_at": {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z))$",
              "description": "Draft: UTC date-time, second precision, ending in Z."
            },
            "metadata": {
              "type": "object",
              "propertyNames": {
                "type": "string",
                "minLength": 1,
                "maxLength": 40
              },
              "additionalProperties": {
                "type": "string",
                "maxLength": 500
              },
              "description": "Source metadata dictionary; draft limits keys to 40 and values to 500 characters. Never put secrets here."
            },
            "id": {
              "type": "string",
              "pattern": "^job_[A-Za-z0-9]{8,64}$",
              "description": "Source defines the prefix; this draft chooses an 8–64 character alphanumeric suffix."
            },
            "spec": {
              "type": "object",
              "properties": {
                "profile": {
                  "type": "string",
                  "const": "owp-docs-draft/0.1",
                  "description": "Draft discriminator. This value is not OWP v0.4 conformance or an alpha wire profile."
                },
                "task_type": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 80
                },
                "subtype": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 80
                },
                "description": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 8000,
                  "description": "Sanitized objective visible only at execution tier."
                },
                "budget": {
                  "type": "object",
                  "properties": {
                    "currency": {
                      "type": "string",
                      "const": "USD",
                      "description": "Draft examples support USD only. Multi-currency and exponent rules require adoption."
                    },
                    "amount": {
                      "type": "string",
                      "pattern": "^(0|[1-9][0-9]{0,8})\\.[0-9]{2}$",
                      "description": "Draft exact decimal USD string, e.g. 25.00. Never convert through floating point for accounting."
                    }
                  },
                  "required": [
                    "currency",
                    "amount"
                  ],
                  "additionalProperties": false,
                  "description": "Proposed serialization only; the source does not specify a canonical money representation."
                },
                "time_constraint": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z))$",
                  "description": "Draft chooses an absolute deadline. Source §9.2 uses a duration expression; review-window arithmetic is unresolved."
                },
                "cost_model": {
                  "type": "string",
                  "enum": [
                    "fixed",
                    "shared",
                    "hourly"
                  ],
                  "description": "§6.2 default is fixed. Draft serializers must send the value explicitly; validators do not inject defaults."
                },
                "attachments": {
                  "maxItems": 20,
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "uri": {
                        "type": "string",
                        "maxLength": 2048,
                        "pattern": "^https:\\/\\/",
                        "description": "Draft HTTPS artifact reference; fetching still requires authorization and destination checks."
                      },
                      "media_type": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 120
                      },
                      "sha256": {
                        "type": "string",
                        "pattern": "^[a-f0-9]{64}$",
                        "description": "SHA-256, lowercase hexadecimal. Encoding is a draft choice."
                      }
                    },
                    "required": [
                      "uri",
                      "media_type",
                      "sha256"
                    ],
                    "additionalProperties": false,
                    "description": "Draft artifact descriptor; no bearer credentials or inline private content."
                  }
                },
                "sensitivity_tier_override": {
                  "description": "Requested tier; coordinator must not allow it to weaken actual data classification.",
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 4
                },
                "evaluation_criteria": {
                  "type": "object",
                  "properties": {
                    "optimize_for": {
                      "type": "string",
                      "enum": [
                        "speed",
                        "visual_polish",
                        "narrative",
                        "brand_consistency",
                        "conversion",
                        "cost_efficiency"
                      ],
                      "description": "Exactly one primary dimension (§6.3)."
                    },
                    "secondary": {
                      "description": "Optional supporting dimensions; primary takes precedence.",
                      "maxItems": 5,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "speed",
                          "visual_polish",
                          "narrative",
                          "brand_consistency",
                          "conversion",
                          "cost_efficiency"
                        ]
                      }
                    },
                    "user_hint": {
                      "description": "Draft: sanitized hint only. Raw phrase in §6.3 conflicts with sanitization in §8.7; no transcript disclosure.",
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 2000
                    }
                  },
                  "required": [
                    "optimize_for"
                  ],
                  "additionalProperties": false,
                  "description": "Source-defined dimensions; the OWCS envelope/version is unresolved."
                },
                "discovery_context": {
                  "description": "Opaque optional OWCS document. Validate against a negotiated OWCS version separately; no OWCS schema is invented here.",
                  "anyOf": [
                    {
                      "type": "object",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {
                        "$ref": "#/$defs/Job/$defs/__schema0"
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "profile",
                "task_type",
                "subtype",
                "description",
                "budget",
                "time_constraint",
                "cost_model",
                "attachments",
                "evaluation_criteria"
              ],
              "additionalProperties": false,
              "description": "Execution-tier work specification. This draft is not the missing authoritative v0.4 JSON Schema."
            },
            "agent_id": {
              "type": "string",
              "pattern": "^agent_[A-Za-z0-9]{8,64}$",
              "description": "Draft per-agent assignment projection, not the coordinator’s full multi-candidate routing record."
            },
            "agent_version": {
              "type": "string",
              "minLength": 1,
              "maxLength": 80,
              "description": "Pinned version; in-flight work remains on that version during review."
            },
            "mode": {
              "type": "string",
              "const": "evaluation"
            },
            "state": {
              "type": "string",
              "enum": [
                "POSTED",
                "ROUTING",
                "IN_PROGRESS",
                "OUTPUTS_READY",
                "EVALUATION",
                "SELECTING",
                "GRANT_REVOKED",
                "CANCELLED",
                "EXPIRED",
                "SCORED"
              ]
            }
          },
          "required": [
            "profile",
            "created_at",
            "updated_at",
            "metadata",
            "id",
            "spec",
            "agent_id",
            "agent_version",
            "mode",
            "state"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "profile": {
              "type": "string",
              "const": "owp-docs-draft/0.1",
              "description": "Draft discriminator. This value is not OWP v0.4 conformance or an alpha wire profile."
            },
            "created_at": {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z))$",
              "description": "Draft: UTC date-time, second precision, ending in Z."
            },
            "updated_at": {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z))$",
              "description": "Draft: UTC date-time, second precision, ending in Z."
            },
            "metadata": {
              "type": "object",
              "propertyNames": {
                "type": "string",
                "minLength": 1,
                "maxLength": 40
              },
              "additionalProperties": {
                "type": "string",
                "maxLength": 500
              },
              "description": "Source metadata dictionary; draft limits keys to 40 and values to 500 characters. Never put secrets here."
            },
            "id": {
              "type": "string",
              "pattern": "^job_[A-Za-z0-9]{8,64}$",
              "description": "Source defines the prefix; this draft chooses an 8–64 character alphanumeric suffix."
            },
            "spec": {
              "type": "object",
              "properties": {
                "profile": {
                  "type": "string",
                  "const": "owp-docs-draft/0.1",
                  "description": "Draft discriminator. This value is not OWP v0.4 conformance or an alpha wire profile."
                },
                "task_type": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 80
                },
                "subtype": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 80
                },
                "description": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 8000,
                  "description": "Sanitized objective visible only at execution tier."
                },
                "budget": {
                  "type": "object",
                  "properties": {
                    "currency": {
                      "type": "string",
                      "const": "USD",
                      "description": "Draft examples support USD only. Multi-currency and exponent rules require adoption."
                    },
                    "amount": {
                      "type": "string",
                      "pattern": "^(0|[1-9][0-9]{0,8})\\.[0-9]{2}$",
                      "description": "Draft exact decimal USD string, e.g. 25.00. Never convert through floating point for accounting."
                    }
                  },
                  "required": [
                    "currency",
                    "amount"
                  ],
                  "additionalProperties": false,
                  "description": "Proposed serialization only; the source does not specify a canonical money representation."
                },
                "time_constraint": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z))$",
                  "description": "Draft chooses an absolute deadline. Source §9.2 uses a duration expression; review-window arithmetic is unresolved."
                },
                "cost_model": {
                  "type": "string",
                  "enum": [
                    "fixed",
                    "shared",
                    "hourly"
                  ],
                  "description": "§6.2 default is fixed. Draft serializers must send the value explicitly; validators do not inject defaults."
                },
                "attachments": {
                  "maxItems": 20,
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "uri": {
                        "type": "string",
                        "maxLength": 2048,
                        "pattern": "^https:\\/\\/",
                        "description": "Draft HTTPS artifact reference; fetching still requires authorization and destination checks."
                      },
                      "media_type": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 120
                      },
                      "sha256": {
                        "type": "string",
                        "pattern": "^[a-f0-9]{64}$",
                        "description": "SHA-256, lowercase hexadecimal. Encoding is a draft choice."
                      }
                    },
                    "required": [
                      "uri",
                      "media_type",
                      "sha256"
                    ],
                    "additionalProperties": false,
                    "description": "Draft artifact descriptor; no bearer credentials or inline private content."
                  }
                },
                "sensitivity_tier_override": {
                  "description": "Requested tier; coordinator must not allow it to weaken actual data classification.",
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 4
                },
                "evaluation_criteria": {
                  "type": "object",
                  "properties": {
                    "optimize_for": {
                      "type": "string",
                      "enum": [
                        "speed",
                        "visual_polish",
                        "narrative",
                        "brand_consistency",
                        "conversion",
                        "cost_efficiency"
                      ],
                      "description": "Exactly one primary dimension (§6.3)."
                    },
                    "secondary": {
                      "description": "Optional supporting dimensions; primary takes precedence.",
                      "maxItems": 5,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "speed",
                          "visual_polish",
                          "narrative",
                          "brand_consistency",
                          "conversion",
                          "cost_efficiency"
                        ]
                      }
                    },
                    "user_hint": {
                      "description": "Draft: sanitized hint only. Raw phrase in §6.3 conflicts with sanitization in §8.7; no transcript disclosure.",
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 2000
                    }
                  },
                  "required": [
                    "optimize_for"
                  ],
                  "additionalProperties": false,
                  "description": "Source-defined dimensions; the OWCS envelope/version is unresolved."
                },
                "discovery_context": {
                  "description": "Opaque optional OWCS document. Validate against a negotiated OWCS version separately; no OWCS schema is invented here.",
                  "anyOf": [
                    {
                      "type": "object",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {
                        "$ref": "#/$defs/Job/$defs/__schema0"
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "profile",
                "task_type",
                "subtype",
                "description",
                "budget",
                "time_constraint",
                "cost_model",
                "attachments",
                "evaluation_criteria"
              ],
              "additionalProperties": false,
              "description": "Execution-tier work specification. This draft is not the missing authoritative v0.4 JSON Schema."
            },
            "agent_id": {
              "type": "string",
              "pattern": "^agent_[A-Za-z0-9]{8,64}$",
              "description": "Draft per-agent assignment projection, not the coordinator’s full multi-candidate routing record."
            },
            "agent_version": {
              "type": "string",
              "minLength": 1,
              "maxLength": 80,
              "description": "Pinned version; in-flight work remains on that version during review."
            },
            "mode": {
              "type": "string",
              "const": "production"
            },
            "state": {
              "type": "string",
              "enum": [
                "POSTED",
                "ROUTING",
                "IN_PROGRESS",
                "OUTPUTS_READY",
                "EVALUATION",
                "SELECTING",
                "GRANT_REVOKED",
                "CANCELLED",
                "EXPIRED",
                "SETTLEMENT_PROPOSED",
                "SETTLED",
                "REPUTATION_UPDATED",
                "DISPUTE"
              ]
            }
          },
          "required": [
            "profile",
            "created_at",
            "updated_at",
            "metadata",
            "id",
            "spec",
            "agent_id",
            "agent_version",
            "mode",
            "state"
          ],
          "additionalProperties": false
        }
      ],
      "description": "Accepted execution-tier assignment. Evaluation cannot settle or update production reputation; production cannot enter SCORED. Both modes share fields, with mode-specific valid states.",
      "$defs": {
        "__schema0": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "boolean"
            },
            {
              "type": "null"
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/$defs/Job/$defs/__schema0"
              }
            },
            {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {
                "$ref": "#/$defs/Job/$defs/__schema0"
              }
            }
          ]
        }
      },
      "title": "Job",
      "$comment": "owp-docs-draft/0.1: proposed documentation shape only. Source: https://app.notion.com/p/338ed9cb3201819d96e9fc7b8e88594a §3 · §5.7 · §9. No production conformance claim."
    },
    "EvaluationCriteria": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "optimize_for": {
          "type": "string",
          "enum": [
            "speed",
            "visual_polish",
            "narrative",
            "brand_consistency",
            "conversion",
            "cost_efficiency"
          ],
          "description": "Exactly one primary dimension (§6.3)."
        },
        "secondary": {
          "description": "Optional supporting dimensions; primary takes precedence.",
          "maxItems": 5,
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "speed",
              "visual_polish",
              "narrative",
              "brand_consistency",
              "conversion",
              "cost_efficiency"
            ]
          }
        },
        "user_hint": {
          "description": "Draft: sanitized hint only. Raw phrase in §6.3 conflicts with sanitization in §8.7; no transcript disclosure.",
          "type": "string",
          "minLength": 1,
          "maxLength": 2000
        }
      },
      "required": [
        "optimize_for"
      ],
      "additionalProperties": false,
      "description": "Source-defined dimensions; the OWCS envelope/version is unresolved.",
      "title": "EvaluationCriteria",
      "$comment": "owp-docs-draft/0.1: proposed documentation shape only. Source: https://app.notion.com/p/338ed9cb3201819d96e9fc7b8e88594a §6.3 · §8.7. No production conformance claim."
    },
    "Money": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "currency": {
          "type": "string",
          "const": "USD",
          "description": "Draft examples support USD only. Multi-currency and exponent rules require adoption."
        },
        "amount": {
          "type": "string",
          "pattern": "^(0|[1-9][0-9]{0,8})\\.[0-9]{2}$",
          "description": "Draft exact decimal USD string, e.g. 25.00. Never convert through floating point for accounting."
        }
      },
      "required": [
        "currency",
        "amount"
      ],
      "additionalProperties": false,
      "description": "Proposed serialization only; the source does not specify a canonical money representation.",
      "title": "Money",
      "$comment": "owp-docs-draft/0.1: proposed documentation shape only. Source: https://app.notion.com/p/338ed9cb3201819d96e9fc7b8e88594a §6.1 · unresolved representation. No production conformance claim."
    },
    "Attachment": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "maxLength": 2048,
          "pattern": "^https:\\/\\/",
          "description": "Draft HTTPS artifact reference; fetching still requires authorization and destination checks."
        },
        "media_type": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120
        },
        "sha256": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$",
          "description": "SHA-256, lowercase hexadecimal. Encoding is a draft choice."
        }
      },
      "required": [
        "uri",
        "media_type",
        "sha256"
      ],
      "additionalProperties": false,
      "description": "Draft artifact descriptor; no bearer credentials or inline private content.",
      "title": "Attachment",
      "$comment": "owp-docs-draft/0.1: proposed documentation shape only. Source: https://app.notion.com/p/338ed9cb3201819d96e9fc7b8e88594a §6.3 · §8.7. No production conformance claim."
    },
    "GrantRequest": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "profile": {
          "type": "string",
          "const": "owp-docs-draft/0.1",
          "description": "Draft discriminator. This value is not OWP v0.4 conformance or an alpha wire profile."
        },
        "job_id": {
          "type": "string",
          "pattern": "^job_[A-Za-z0-9]{8,64}$",
          "description": "Source defines the prefix; this draft chooses an 8–64 character alphanumeric suffix."
        },
        "agent_id": {
          "type": "string",
          "pattern": "^agent_[A-Za-z0-9]{8,64}$",
          "description": "Source defines the prefix; this draft chooses an 8–64 character alphanumeric suffix."
        },
        "agent_version": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        "fields": {
          "minItems": 1,
          "maxItems": 64,
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "description": "Requested field selectors. Requests never create permission."
        },
        "purpose": {
          "type": "string",
          "minLength": 1,
          "maxLength": 1000
        }
      },
      "required": [
        "profile",
        "job_id",
        "agent_id",
        "agent_version",
        "fields",
        "purpose"
      ],
      "additionalProperties": false,
      "description": "Proposed grant-scope request, before user consent and coordinator issuance.",
      "title": "GrantRequest",
      "$comment": "owp-docs-draft/0.1: proposed documentation shape only. Source: https://app.notion.com/p/338ed9cb3201819d96e9fc7b8e88594a §7.1. No production conformance claim."
    },
    "Grant": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "profile": {
              "type": "string",
              "const": "owp-docs-draft/0.1",
              "description": "Draft discriminator. This value is not OWP v0.4 conformance or an alpha wire profile."
            },
            "created_at": {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z))$",
              "description": "Draft: UTC date-time, second precision, ending in Z."
            },
            "updated_at": {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z))$",
              "description": "Draft: UTC date-time, second precision, ending in Z."
            },
            "metadata": {
              "type": "object",
              "propertyNames": {
                "type": "string",
                "minLength": 1,
                "maxLength": 40
              },
              "additionalProperties": {
                "type": "string",
                "maxLength": 500
              },
              "description": "Source metadata dictionary; draft limits keys to 40 and values to 500 characters. Never put secrets here."
            },
            "id": {
              "type": "string",
              "pattern": "^grant_[A-Za-z0-9]{8,64}$",
              "description": "Source defines the prefix; this draft chooses an 8–64 character alphanumeric suffix."
            },
            "job_id": {
              "type": "string",
              "pattern": "^job_[A-Za-z0-9]{8,64}$",
              "description": "Source defines the prefix; this draft chooses an 8–64 character alphanumeric suffix."
            },
            "agent_id": {
              "type": "string",
              "pattern": "^agent_[A-Za-z0-9]{8,64}$",
              "description": "Source defines the prefix; this draft chooses an 8–64 character alphanumeric suffix."
            },
            "agent_version": {
              "type": "string",
              "minLength": 1,
              "maxLength": 80
            },
            "user_id": {
              "type": "string",
              "pattern": "^user_[A-Za-z0-9]{8,64}$",
              "description": "Source defines the prefix; this draft chooses an 8–64 character alphanumeric suffix."
            },
            "state": {
              "type": "string",
              "enum": [
                "ISSUED",
                "ACTIVE",
                "ACCESSED",
                "FROZEN",
                "REVOKED"
              ]
            },
            "fields": {
              "minItems": 1,
              "maxItems": 64,
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 120
              }
            },
            "expires_at": {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z))$",
              "description": "Draft: UTC date-time, second precision, ending in Z."
            },
            "consent_ref": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "description": "Draft reference to an independently verified consent record; this string alone proves nothing."
            },
            "sensitivity_tier": {
              "anyOf": [
                {
                  "type": "number",
                  "const": 1
                },
                {
                  "type": "number",
                  "const": 2
                }
              ]
            },
            "access_mode": {
              "type": "string",
              "enum": [
                "proxy",
                "sandbox",
                "direct"
              ],
              "description": "Structured fields default to proxy; direct still requires explicit consent."
            }
          },
          "required": [
            "profile",
            "created_at",
            "updated_at",
            "metadata",
            "id",
            "job_id",
            "agent_id",
            "agent_version",
            "user_id",
            "state",
            "fields",
            "expires_at",
            "consent_ref",
            "sensitivity_tier",
            "access_mode"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "profile": {
              "type": "string",
              "const": "owp-docs-draft/0.1",
              "description": "Draft discriminator. This value is not OWP v0.4 conformance or an alpha wire profile."
            },
            "created_at": {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z))$",
              "description": "Draft: UTC date-time, second precision, ending in Z."
            },
            "updated_at": {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z))$",
              "description": "Draft: UTC date-time, second precision, ending in Z."
            },
            "metadata": {
              "type": "object",
              "propertyNames": {
                "type": "string",
                "minLength": 1,
                "maxLength": 40
              },
              "additionalProperties": {
                "type": "string",
                "maxLength": 500
              },
              "description": "Source metadata dictionary; draft limits keys to 40 and values to 500 characters. Never put secrets here."
            },
            "id": {
              "type": "string",
              "pattern": "^grant_[A-Za-z0-9]{8,64}$",
              "description": "Source defines the prefix; this draft chooses an 8–64 character alphanumeric suffix."
            },
            "job_id": {
              "type": "string",
              "pattern": "^job_[A-Za-z0-9]{8,64}$",
              "description": "Source defines the prefix; this draft chooses an 8–64 character alphanumeric suffix."
            },
            "agent_id": {
              "type": "string",
              "pattern": "^agent_[A-Za-z0-9]{8,64}$",
              "description": "Source defines the prefix; this draft chooses an 8–64 character alphanumeric suffix."
            },
            "agent_version": {
              "type": "string",
              "minLength": 1,
              "maxLength": 80
            },
            "user_id": {
              "type": "string",
              "pattern": "^user_[A-Za-z0-9]{8,64}$",
              "description": "Source defines the prefix; this draft chooses an 8–64 character alphanumeric suffix."
            },
            "state": {
              "type": "string",
              "enum": [
                "ISSUED",
                "ACTIVE",
                "ACCESSED",
                "FROZEN",
                "REVOKED"
              ]
            },
            "fields": {
              "minItems": 1,
              "maxItems": 64,
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 120
              }
            },
            "expires_at": {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z))$",
              "description": "Draft: UTC date-time, second precision, ending in Z."
            },
            "consent_ref": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "description": "Draft reference to an independently verified consent record; this string alone proves nothing."
            },
            "sensitivity_tier": {
              "anyOf": [
                {
                  "type": "number",
                  "const": 3
                },
                {
                  "type": "number",
                  "const": 4
                }
              ]
            },
            "access_mode": {
              "type": "string",
              "enum": [
                "proxy",
                "sandbox"
              ],
              "description": "Direct access is forbidden at tiers 3–4. Structured fields use proxy; assets use sandbox."
            }
          },
          "required": [
            "profile",
            "created_at",
            "updated_at",
            "metadata",
            "id",
            "job_id",
            "agent_id",
            "agent_version",
            "user_id",
            "state",
            "fields",
            "expires_at",
            "consent_ref",
            "sensitivity_tier",
            "access_mode"
          ],
          "additionalProperties": false
        }
      ],
      "description": "Grant metadata. Direct access is rejected at tiers 3–4 by the schema. Current consent, owner, purpose and grant state must still be checked at use.",
      "title": "Grant",
      "$comment": "owp-docs-draft/0.1: proposed documentation shape only. Source: https://app.notion.com/p/338ed9cb3201819d96e9fc7b8e88594a §3 · §7 · §8. No production conformance claim."
    },
    "PhaseToken": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "profile": {
          "type": "string",
          "const": "owp-docs-draft/0.1",
          "description": "Draft discriminator. This value is not OWP v0.4 conformance or an alpha wire profile."
        },
        "job_id": {
          "type": "string",
          "pattern": "^job_[A-Za-z0-9]{8,64}$",
          "description": "Source defines the prefix; this draft chooses an 8–64 character alphanumeric suffix."
        },
        "phase_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        "agent_id": {
          "type": "string",
          "pattern": "^agent_[A-Za-z0-9]{8,64}$",
          "description": "Source defines the prefix; this draft chooses an 8–64 character alphanumeric suffix."
        },
        "grant_id": {
          "type": "string",
          "pattern": "^grant_[A-Za-z0-9]{8,64}$",
          "description": "Source defines the prefix; this draft chooses an 8–64 character alphanumeric suffix."
        },
        "expires_at": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z))$",
          "description": "Draft: UTC date-time, second precision, ending in Z."
        }
      },
      "required": [
        "profile",
        "job_id",
        "phase_id",
        "agent_id",
        "grant_id",
        "expires_at"
      ],
      "additionalProperties": false,
      "description": "Draft claims shape for §7.5 tuple binding. Token envelope/signature is unresolved. Non-transferable, single-hop.",
      "title": "PhaseToken",
      "$comment": "owp-docs-draft/0.1: proposed documentation shape only. Source: https://app.notion.com/p/338ed9cb3201819d96e9fc7b8e88594a §7.5. No production conformance claim."
    },
    "Output": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "profile": {
          "type": "string",
          "const": "owp-docs-draft/0.1",
          "description": "Draft discriminator. This value is not OWP v0.4 conformance or an alpha wire profile."
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z))$",
          "description": "Draft: UTC date-time, second precision, ending in Z."
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z))$",
          "description": "Draft: UTC date-time, second precision, ending in Z."
        },
        "metadata": {
          "type": "object",
          "propertyNames": {
            "type": "string",
            "minLength": 1,
            "maxLength": 40
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          },
          "description": "Source metadata dictionary; draft limits keys to 40 and values to 500 characters. Never put secrets here."
        },
        "id": {
          "type": "string",
          "pattern": "^out_[A-Za-z0-9]{8,64}$",
          "description": "Source defines the prefix; this draft chooses an 8–64 character alphanumeric suffix."
        },
        "job_id": {
          "type": "string",
          "pattern": "^job_[A-Za-z0-9]{8,64}$",
          "description": "Source defines the prefix; this draft chooses an 8–64 character alphanumeric suffix."
        },
        "agent_id": {
          "type": "string",
          "pattern": "^agent_[A-Za-z0-9]{8,64}$",
          "description": "Source defines the prefix; this draft chooses an 8–64 character alphanumeric suffix."
        },
        "agent_version": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        "content": {
          "type": "object",
          "properties": {
            "media_type": {
              "type": "string",
              "const": "text/plain"
            },
            "text": {
              "type": "string",
              "minLength": 1,
              "maxLength": 50000
            }
          },
          "required": [
            "media_type",
            "text"
          ],
          "additionalProperties": false,
          "description": "Draft starter supports bounded plain text. Other output formats need a versioned schema."
        },
        "artifacts": {
          "maxItems": 20,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "uri": {
                "type": "string",
                "maxLength": 2048,
                "pattern": "^https:\\/\\/",
                "description": "Draft HTTPS artifact reference; fetching still requires authorization and destination checks."
              },
              "media_type": {
                "type": "string",
                "minLength": 1,
                "maxLength": 120
              },
              "sha256": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$",
                "description": "SHA-256, lowercase hexadecimal. Encoding is a draft choice."
              }
            },
            "required": [
              "uri",
              "media_type",
              "sha256"
            ],
            "additionalProperties": false,
            "description": "Draft artifact descriptor; no bearer credentials or inline private content."
          }
        },
        "cost_breakdown": {
          "description": "Required by policy for shared-cost jobs; schema alone cannot inspect the linked job.",
          "type": "object",
          "properties": {
            "compute_seconds": {
              "type": "number",
              "minimum": 0
            },
            "compute_cost_usd": {
              "type": "string",
              "pattern": "^(0|[1-9][0-9]{0,8})\\.[0-9]{2}$",
              "description": "Draft exact decimal USD string, e.g. 25.00. Never convert through floating point for accounting."
            },
            "api_calls": {
              "maxItems": 1000,
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "provider": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80
                  },
                  "model": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "tokens": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "cost_usd": {
                    "type": "string",
                    "pattern": "^(0|[1-9][0-9]{0,8})\\.[0-9]{2}$",
                    "description": "Draft exact decimal USD string, e.g. 25.00. Never convert through floating point for accounting."
                  }
                },
                "required": [
                  "provider",
                  "model",
                  "tokens",
                  "cost_usd"
                ],
                "additionalProperties": false
              }
            },
            "storage_bytes": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "storage_cost_usd": {
              "type": "string",
              "pattern": "^(0|[1-9][0-9]{0,8})\\.[0-9]{2}$",
              "description": "Draft exact decimal USD string, e.g. 25.00. Never convert through floating point for accounting."
            },
            "human_labor_minutes": {
              "type": "number",
              "minimum": 0
            },
            "human_labor_cost_usd": {
              "type": "string",
              "pattern": "^(0|[1-9][0-9]{0,8})\\.[0-9]{2}$",
              "description": "Draft exact decimal USD string, e.g. 25.00. Never convert through floating point for accounting."
            },
            "total_usd": {
              "type": "string",
              "pattern": "^(0|[1-9][0-9]{0,8})\\.[0-9]{2}$",
              "description": "Draft exact decimal USD string, e.g. 25.00. Never convert through floating point for accounting."
            }
          },
          "required": [
            "compute_seconds",
            "compute_cost_usd",
            "api_calls",
            "storage_bytes",
            "storage_cost_usd",
            "human_labor_minutes",
            "human_labor_cost_usd",
            "total_usd"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "profile",
        "created_at",
        "updated_at",
        "metadata",
        "id",
        "job_id",
        "agent_id",
        "agent_version",
        "content",
        "artifacts"
      ],
      "additionalProperties": false,
      "description": "Submitted result. Submission does not choose a winner, authorize payment or complete a job.",
      "title": "Output",
      "$comment": "owp-docs-draft/0.1: proposed documentation shape only. Source: https://app.notion.com/p/338ed9cb3201819d96e9fc7b8e88594a §3 · §6.4 · §9.2. No production conformance claim."
    },
    "CostBreakdown": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "compute_seconds": {
          "type": "number",
          "minimum": 0
        },
        "compute_cost_usd": {
          "type": "string",
          "pattern": "^(0|[1-9][0-9]{0,8})\\.[0-9]{2}$",
          "description": "Draft exact decimal USD string, e.g. 25.00. Never convert through floating point for accounting."
        },
        "api_calls": {
          "maxItems": 1000,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "provider": {
                "type": "string",
                "minLength": 1,
                "maxLength": 80
              },
              "model": {
                "type": "string",
                "minLength": 1,
                "maxLength": 120
              },
              "tokens": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "cost_usd": {
                "type": "string",
                "pattern": "^(0|[1-9][0-9]{0,8})\\.[0-9]{2}$",
                "description": "Draft exact decimal USD string, e.g. 25.00. Never convert through floating point for accounting."
              }
            },
            "required": [
              "provider",
              "model",
              "tokens",
              "cost_usd"
            ],
            "additionalProperties": false
          }
        },
        "storage_bytes": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "storage_cost_usd": {
          "type": "string",
          "pattern": "^(0|[1-9][0-9]{0,8})\\.[0-9]{2}$",
          "description": "Draft exact decimal USD string, e.g. 25.00. Never convert through floating point for accounting."
        },
        "human_labor_minutes": {
          "type": "number",
          "minimum": 0
        },
        "human_labor_cost_usd": {
          "type": "string",
          "pattern": "^(0|[1-9][0-9]{0,8})\\.[0-9]{2}$",
          "description": "Draft exact decimal USD string, e.g. 25.00. Never convert through floating point for accounting."
        },
        "total_usd": {
          "type": "string",
          "pattern": "^(0|[1-9][0-9]{0,8})\\.[0-9]{2}$",
          "description": "Draft exact decimal USD string, e.g. 25.00. Never convert through floating point for accounting."
        }
      },
      "required": [
        "compute_seconds",
        "compute_cost_usd",
        "api_calls",
        "storage_bytes",
        "storage_cost_usd",
        "human_labor_minutes",
        "human_labor_cost_usd",
        "total_usd"
      ],
      "additionalProperties": false,
      "description": "§6.4 line items; decimal string encoding is draft. Coordinator checks sum, budget, plausibility and outliers separately.",
      "title": "CostBreakdown",
      "$comment": "owp-docs-draft/0.1: proposed documentation shape only. Source: https://app.notion.com/p/338ed9cb3201819d96e9fc7b8e88594a §6.4. No production conformance claim."
    },
    "Settlement": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "profile": {
          "type": "string",
          "const": "owp-docs-draft/0.1",
          "description": "Draft discriminator. This value is not OWP v0.4 conformance or an alpha wire profile."
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z))$",
          "description": "Draft: UTC date-time, second precision, ending in Z."
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z))$",
          "description": "Draft: UTC date-time, second precision, ending in Z."
        },
        "metadata": {
          "type": "object",
          "propertyNames": {
            "type": "string",
            "minLength": 1,
            "maxLength": 40
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          },
          "description": "Source metadata dictionary; draft limits keys to 40 and values to 500 characters. Never put secrets here."
        },
        "id": {
          "type": "string",
          "pattern": "^sttl_[A-Za-z0-9]{8,64}$",
          "description": "Source defines the prefix; this draft chooses an 8–64 character alphanumeric suffix."
        },
        "job_id": {
          "type": "string",
          "pattern": "^job_[A-Za-z0-9]{8,64}$",
          "description": "Source defines the prefix; this draft chooses an 8–64 character alphanumeric suffix."
        },
        "output_id": {
          "type": "string",
          "pattern": "^out_[A-Za-z0-9]{8,64}$",
          "description": "Source defines the prefix; this draft chooses an 8–64 character alphanumeric suffix."
        },
        "state": {
          "type": "string",
          "enum": [
            "SETTLEMENT_PROPOSED",
            "SETTLED",
            "DISPUTE"
          ]
        },
        "amount": {
          "type": "object",
          "properties": {
            "currency": {
              "type": "string",
              "const": "USD",
              "description": "Draft examples support USD only. Multi-currency and exponent rules require adoption."
            },
            "amount": {
              "type": "string",
              "pattern": "^(0|[1-9][0-9]{0,8})\\.[0-9]{2}$",
              "description": "Draft exact decimal USD string, e.g. 25.00. Never convert through floating point for accounting."
            }
          },
          "required": [
            "currency",
            "amount"
          ],
          "additionalProperties": false,
          "description": "Proposed serialization only; the source does not specify a canonical money representation."
        },
        "dispute_deadline": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z))$",
          "description": "Draft: UTC date-time, second precision, ending in Z."
        }
      },
      "required": [
        "profile",
        "created_at",
        "updated_at",
        "metadata",
        "id",
        "job_id",
        "output_id",
        "state",
        "amount",
        "dispute_deadline"
      ],
      "additionalProperties": false,
      "description": "Proposed coordinator-only production record. Evaluation skips payment. No agent-callable settlement API.",
      "title": "Settlement",
      "$comment": "owp-docs-draft/0.1: proposed documentation shape only. Source: https://app.notion.com/p/338ed9cb3201819d96e9fc7b8e88594a §3 · §9.3. No production conformance claim."
    },
    "Event": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "profile": {
          "type": "string",
          "const": "owp-docs-draft/0.1",
          "description": "Draft discriminator. This value is not OWP v0.4 conformance or an alpha wire profile."
        },
        "id": {
          "type": "string",
          "pattern": "^evt_[A-Za-z0-9]{8,64}$",
          "description": "Source defines the prefix; this draft chooses an 8–64 character alphanumeric suffix."
        },
        "sequence_id": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991,
          "description": "Coordinator order. Draft bounds JSON integers for JavaScript interoperability."
        },
        "event_type": {
          "type": "string",
          "enum": [
            "job.posted",
            "grant.issued",
            "job.settled",
            "agent.deactivated",
            "reputation.override",
            "heartbeat.received"
          ],
          "description": "Only event names explicitly present in source examples; incomplete event catalog."
        },
        "timestamp": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z))$",
          "description": "Draft: UTC date-time, second precision, ending in Z."
        },
        "payload": {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "$ref": "#/$defs/Event/$defs/__schema0"
          },
          "description": "Opaque event-specific data. An event-specific schema and verified signer policy are also required."
        },
        "previous_hash": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$",
          "description": "SHA-256, lowercase hexadecimal. Encoding is a draft choice."
        },
        "hash": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$",
          "description": "SHA-256, lowercase hexadecimal. Encoding is a draft choice."
        }
      },
      "required": [
        "profile",
        "id",
        "sequence_id",
        "event_type",
        "timestamp",
        "payload",
        "previous_hash",
        "hash"
      ],
      "additionalProperties": false,
      "description": "§17 event structure, not a signed webhook envelope. Byte framing, genesis and signature envelopes remain unresolved.",
      "$defs": {
        "__schema0": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "boolean"
            },
            {
              "type": "null"
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/$defs/Event/$defs/__schema0"
              }
            },
            {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {
                "$ref": "#/$defs/Event/$defs/__schema0"
              }
            }
          ]
        }
      },
      "title": "Event",
      "$comment": "owp-docs-draft/0.1: proposed documentation shape only. Source: https://app.notion.com/p/338ed9cb3201819d96e9fc7b8e88594a §17.1. No production conformance claim."
    },
    "ProtocolError": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "profile": {
          "type": "string",
          "const": "owp-docs-draft/0.1",
          "description": "Draft discriminator. This value is not OWP v0.4 conformance or an alpha wire profile."
        },
        "code": {
          "type": "string",
          "enum": [
            "INVALID_REQUEST",
            "UNAUTHORIZED",
            "SCOPE_DENIED",
            "IDEMPOTENCY_CONFLICT",
            "RATE_LIMITED",
            "OUTCOME_UNKNOWN",
            "UNSUPPORTED_PROFILE"
          ]
        },
        "message": {
          "type": "string",
          "minLength": 1,
          "maxLength": 1000
        },
        "documentation_url": {
          "type": "string",
          "maxLength": 2048,
          "pattern": "^https:\\/\\/"
        },
        "retryable": {
          "type": "boolean"
        },
        "request_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        }
      },
      "required": [
        "profile",
        "code",
        "message",
        "documentation_url",
        "retryable",
        "request_id"
      ],
      "additionalProperties": false,
      "description": "Proposed structured error format and codes. HTTP mappings and retry semantics require coordinator documentation.",
      "title": "ProtocolError",
      "$comment": "owp-docs-draft/0.1: proposed documentation shape only. Source: https://app.notion.com/p/338ed9cb3201819d96e9fc7b8e88594a §2 · §16. No production conformance claim."
    },
    "HeartbeatChallenge": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "profile": {
          "type": "string",
          "const": "owp-docs-draft/0.1",
          "description": "Draft discriminator. This value is not OWP v0.4 conformance or an alpha wire profile."
        },
        "nonce": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$",
          "description": "Source requires random 256-bit nonce; hexadecimal encoding is draft."
        },
        "issued_at": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z))$",
          "description": "Draft: UTC date-time, second precision, ending in Z."
        }
      },
      "required": [
        "profile",
        "nonce",
        "issued_at"
      ],
      "additionalProperties": false,
      "description": "§4.5: challenge every 60 seconds, response within 10.",
      "title": "HeartbeatChallenge",
      "$comment": "owp-docs-draft/0.1: proposed documentation shape only. Source: https://app.notion.com/p/338ed9cb3201819d96e9fc7b8e88594a §4.5. No production conformance claim."
    },
    "HeartbeatResponse": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "profile": {
          "type": "string",
          "const": "owp-docs-draft/0.1",
          "description": "Draft discriminator. This value is not OWP v0.4 conformance or an alpha wire profile."
        },
        "nonce": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$",
          "description": "Source requires random 256-bit nonce; hexadecimal encoding is draft."
        },
        "state_hash": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$",
          "description": "SHA-256, lowercase hexadecimal. Encoding is a draft choice."
        },
        "active_grants": {
          "maxItems": 1000,
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^grant_[A-Za-z0-9]{8,64}$",
            "description": "Source defines the prefix; this draft chooses an 8–64 character alphanumeric suffix."
          }
        },
        "vault_access_count_since_last_heartbeat": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        }
      },
      "required": [
        "profile",
        "nonce",
        "state_hash",
        "active_grants",
        "vault_access_count_since_last_heartbeat"
      ],
      "additionalProperties": false,
      "description": "Unsigned draft telemetry only. Heartbeat MAC/key semantics are unresolved; never treat this object as liveness authentication.",
      "title": "HeartbeatResponse",
      "$comment": "owp-docs-draft/0.1: proposed documentation shape only. Source: https://app.notion.com/p/338ed9cb3201819d96e9fc7b8e88594a §4.5 · unresolved authentication. No production conformance claim."
    }
  }
}
