{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "profile": {
      "type": "string",
      "const": "owp-eval-local/0.1",
      "description": "Exact supported local evaluation profile."
    },
    "instance_id": {
      "type": "string",
      "allOf": [
        {
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        },
        {
          "pattern": "^[a-f0-9-]{36}$"
        }
      ],
      "description": "UUID, lowercase on the wire."
    },
    "transport": {
      "type": "string",
      "const": "loopback-http-ed25519"
    },
    "synthetic_only": {
      "type": "boolean",
      "const": true
    },
    "capability": {
      "type": "string",
      "const": "writing/brief"
    },
    "output_schema": {
      "type": "string",
      "const": "Summary"
    },
    "limits": {
      "type": "object",
      "properties": {
        "body_bytes": {
          "type": "number",
          "const": 16384
        },
        "session_seconds": {
          "type": "number",
          "const": 900
        },
        "job_seconds": {
          "type": "number",
          "const": 300
        },
        "clock_skew_seconds": {
          "type": "number",
          "const": 300
        },
        "sessions": {
          "type": "number",
          "const": 100
        },
        "receipts_per_session": {
          "type": "number",
          "const": 64
        }
      },
      "required": [
        "body_bytes",
        "session_seconds",
        "job_seconds",
        "clock_skew_seconds",
        "sessions",
        "receipts_per_session"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "profile",
    "instance_id",
    "transport",
    "synthetic_only",
    "capability",
    "output_schema",
    "limits"
  ],
  "additionalProperties": false,
  "description": "Public discovery response. Pin instance_id; never replace it automatically after an uncertain mutation.",
  "title": "ProfileResponse",
  "$comment": "owp-eval-local/0.1; synthetic loopback evaluation only."
}
