{
  "schema_version": 1,
  "scope": "local_simulation_only",
  "contracts": [
    {
      "id": "admission",
      "kind": "loopback_http",
      "version": "0.1.0",
      "title": "Explicit local draft, quote and admission",
      "href": "/contracts/local-admission-http-v0.1.0.openapi.json",
      "sha256": "d7126096c8999a0df61333b928233b8f072cdccf0fff704b593b386c9a8e1a24",
      "bytes": 30425,
      "operations": [
        {
          "method": "POST",
          "path": "/local/generation/drafts"
        },
        {
          "method": "POST",
          "path": "/local/generation/quotes"
        },
        {
          "method": "POST",
          "path": "/local/generation/jobs"
        },
        {
          "method": "GET",
          "path": "/local/generation/request"
        },
        {
          "method": "GET",
          "path": "/local/generation/draft"
        },
        {
          "method": "POST",
          "path": "/local/generation/request/close"
        }
      ]
    },
    {
      "id": "asset",
      "kind": "loopback_http",
      "version": "0.1.0",
      "title": "Local private PNG asset HTTP (simulation only)",
      "href": "/contracts/local-asset-http-v0.1.0.openapi.json",
      "sha256": "f74f73e506022987e65f7acea545530181ab1d59efcf2e94cf7639b6613572bf",
      "bytes": 14924,
      "operations": [
        {
          "method": "POST",
          "path": "/local/assets/uploads"
        },
        {
          "method": "GET",
          "path": "/local/assets/content"
        },
        {
          "method": "PUT",
          "path": "/local/assets/content"
        },
        {
          "method": "POST",
          "path": "/local/assets/revoke"
        }
      ]
    },
    {
      "id": "billing",
      "kind": "loopback_http",
      "version": "0.1.0",
      "title": "nikuniku local billing-only original-job read",
      "href": "/contracts/local-billing-http-v0.1.0.openapi.json",
      "sha256": "cc7c219a6006d316441b9113c46c5130fe087e666f746309dd9e57857df0271a",
      "bytes": 13889,
      "operations": [
        {
          "method": "GET",
          "path": "/local/jobs/billing"
        },
        {
          "method": "GET",
          "path": "/local/jobs/ledger"
        }
      ]
    },
    {
      "id": "cancel",
      "kind": "loopback_http",
      "version": "0.1.0",
      "title": "Local original-job cancellation",
      "href": "/contracts/local-cancel-http-v0.1.0.openapi.json",
      "sha256": "0b046877b41ff4df9c7fe2811ec0eaa3fb085b29bf82092688e5b34768307322",
      "bytes": 3509,
      "operations": [
        {
          "method": "POST",
          "path": "/local/jobs/cancel"
        }
      ]
    },
    {
      "id": "job",
      "kind": "loopback_http",
      "version": "0.1.0",
      "title": "nikuniku local original-job readback",
      "href": "/contracts/local-job-http-v0.1.0.openapi.json",
      "sha256": "46ed1def1f7035a08f8d113261696e184bab756205d639ff2ad47b2360dcb40f",
      "bytes": 8629,
      "operations": [
        {
          "method": "GET",
          "path": "/local/jobs"
        }
      ]
    },
    {
      "id": "output",
      "kind": "loopback_http",
      "version": "0.1.0",
      "title": "nikuniku local original-output download",
      "href": "/contracts/local-output-http-v0.1.0.openapi.json",
      "sha256": "f1b0104dff5163c718dbd112b0d6a2a4ba0d84537622431293ea2232a0be0f74",
      "bytes": 6041,
      "operations": [
        {
          "method": "GET",
          "path": "/local/jobs/output"
        }
      ]
    },
    {
      "id": "progress",
      "kind": "loopback_http",
      "version": "0.1.0",
      "title": "nikuniku negotiated local original-job progress",
      "href": "/contracts/local-progress-http-v0.1.0.openapi.json",
      "sha256": "49d4a0265a5f780896d16e8912f57218106b05f4a2ba35cf7f24fab33dc1632f",
      "bytes": 8029,
      "operations": [
        {
          "method": "GET",
          "path": "/local/jobs"
        }
      ]
    },
    {
      "id": "refund",
      "kind": "loopback_http",
      "version": "0.1.0",
      "title": "nikuniku local original refund lookup",
      "href": "/contracts/local-refund-http-v0.1.0.openapi.json",
      "sha256": "9f7be8f00d9749f1197c97c1ce11d26c10cb37545fb9d3bbb9ed9bb62c621067",
      "bytes": 14820,
      "operations": [
        {
          "method": "GET",
          "path": "/local/recharge/refunds"
        }
      ]
    },
    {
      "id": "model-service",
      "kind": "model_boundary",
      "version": "0.1.0",
      "title": "Nikuniku proposed offline model metadata",
      "href": "/contracts/model-service-v0.1.0.openapi.json",
      "sha256": "e4d7d4bb60e625c71ed4c0bcd1b6279b6ccb7a5a4061b0168fa1550f3d7e12db",
      "bytes": 25089,
      "operations": []
    }
  ]
}
