{
  "contract": "sourcey.site-record/v1alpha1",
  "release_id": "sha256:01878e420becfd35dc17fcd9c45ae9fd7f77cece1fedfdf68ac6cdf861f9432b",
  "snapshot_id": "sha256:941812942078a95ce94c3802726dfad46394ed4e8faec931d0d61f4cd6c48a88",
  "artifact_sha256": "sha256:207717acd882c5f10a288d4c057d2e8e74e62a63a0cda0bb875692c63b5ca5bd",
  "data": {
    "entity_id": "ent_01kyxthgq20tdr3fcw7pwzjp96",
    "entity_slug": "plain",
    "profile": {
      "projection_contract": "sourcey.agent-readiness-projection/v1alpha1",
      "agent_readiness_profile_id": "arp_01m4qs72nyat5bm2kpks622bma",
      "entity_id": "ent_01kyxthgq20tdr3fcw7pwzjp96",
      "scope": {
        "product": {
          "key": "plain-api",
          "name": "Plain API"
        },
        "job": {
          "key": "support-ticket-create",
          "name": "Create a support ticket"
        }
      },
      "catalog_binding": {
        "base_release_id": "sha256:3c85614308cabda2d90c4df9d44b2329e5c301e5140c8f5be500dcee08500cc1",
        "entity_revision_digest": "sha256:83eeb113fb617cbfc7b923c0c45ab2aacdb1060abfa4e8374c187581027b07d4"
      },
      "declaration_revision_digest": "sha256:577fa753b5ebcb46dd549c809882d5fb0cea9dfb1f9c9083128e23cc88a04410",
      "declaration": {
        "declaration_id": "declaration_plain_plain_api_support_ticket_create",
        "provenance": {
          "repository": "sourcey/agent-ready-services",
          "commit": "7a23e0161ee3b408d32845704ea8ab20d5a5b5bf",
          "path": "entities/pl/plain.yaml",
          "git_blob_oid": "14813cbf91580f2f8f2f6490a2a96271e25d0d60",
          "blob_digest": "sha256:bc7060be746453487bb725c25f0494c8fa3d034aabf89c2292248bb5851b08a7"
        },
        "status": "community_declared"
      },
      "surface_catalog": {
        "participants": [
          {
            "participant_id": "plain",
            "roles": [
              "access_operator",
              "identity_provider",
              "operations_provider",
              "payment_provider",
              "provisioning_provider",
              "subject"
            ],
            "identity": {
              "entity_id": "ent_01kyxthgq20tdr3fcw7pwzjp96"
            }
          }
        ],
        "resources": [
          {
            "resource_id": "account-signup",
            "uri": "https://www.plain.com/get/trial",
            "roles": [
              "access"
            ],
            "operated_by_participant_id": "plain",
            "standard_bindings": []
          },
          {
            "resource_id": "authentication",
            "uri": "https://www.plain.com/docs/graphql/authentication",
            "roles": [
              "authentication",
              "documentation"
            ],
            "operated_by_participant_id": "plain",
            "standard_bindings": []
          },
          {
            "resource_id": "checkout",
            "uri": "https://app.plain.com/~/settings/billing/",
            "roles": [
              "checkout"
            ],
            "operated_by_participant_id": "plain",
            "standard_bindings": []
          },
          {
            "resource_id": "create-threads",
            "uri": "https://www.plain.com/docs/graphql/threads/create",
            "roles": [
              "documentation",
              "operations",
              "provisioning"
            ],
            "operated_by_participant_id": "plain",
            "standard_bindings": []
          },
          {
            "resource_id": "error-handling",
            "uri": "https://www.plain.com/docs/graphql/error-handling",
            "roles": [
              "documentation",
              "recovery",
              "status"
            ],
            "operated_by_participant_id": "plain",
            "standard_bindings": []
          },
          {
            "resource_id": "graphql-introduction",
            "uri": "https://www.plain.com/docs/graphql/introduction",
            "roles": [
              "discovery",
              "documentation"
            ],
            "operated_by_participant_id": "plain",
            "standard_bindings": []
          },
          {
            "resource_id": "pricing",
            "uri": "https://www.plain.com/pricing",
            "roles": [
              "pricing"
            ],
            "operated_by_participant_id": "plain",
            "standard_bindings": []
          },
          {
            "resource_id": "pricing-doc",
            "uri": "https://www.plain.com/docs/product/billing/pricing",
            "roles": [
              "documentation"
            ],
            "operated_by_participant_id": "plain",
            "standard_bindings": []
          },
          {
            "resource_id": "service-terms",
            "uri": "https://www.plain.com/legal/terms-and-conditions",
            "roles": [
              "terms"
            ],
            "operated_by_participant_id": "plain",
            "standard_bindings": []
          }
        ],
        "endpoints": [
          {
            "endpoint_id": "graphql-api",
            "uri": "https://core-api.uk.plain.com/graphql/v1",
            "transport": "http",
            "roles": [
              "service"
            ],
            "operated_by_participant_id": "plain",
            "standard_bindings": []
          },
          {
            "endpoint_id": "registration",
            "uri": "https://www.plain.com/get/trial",
            "transport": "http",
            "roles": [
              "registration"
            ],
            "operated_by_participant_id": "plain",
            "standard_bindings": []
          }
        ],
        "interfaces": [
          {
            "interface_id": "api-authentication",
            "modality": "network_api",
            "functions": [
              "authentication"
            ],
            "endpoint_ids": [],
            "resource_ids": [
              "authentication"
            ],
            "operated_by_participant_id": "plain",
            "standard_bindings": []
          },
          {
            "interface_id": "graphql-api",
            "modality": "network_api",
            "functions": [
              "service_operation"
            ],
            "endpoint_ids": [
              "graphql-api"
            ],
            "resource_ids": [
              "create-threads",
              "error-handling",
              "graphql-introduction"
            ],
            "operated_by_participant_id": "plain",
            "standard_bindings": []
          }
        ],
        "relations": [
          {
            "relation_id": "authentication-authenticates-api",
            "kind": "authenticates",
            "from": {
              "node_kind": "interface",
              "node_id": "api-authentication"
            },
            "to": {
              "node_kind": "interface",
              "node_id": "graphql-api"
            }
          },
          {
            "relation_id": "introduction-describes-api",
            "kind": "describes",
            "from": {
              "node_kind": "resource",
              "node_id": "graphql-introduction"
            },
            "to": {
              "node_kind": "interface",
              "node_id": "graphql-api"
            }
          },
          {
            "relation_id": "signup-precedes-authentication",
            "kind": "precedes",
            "from": {
              "node_kind": "resource",
              "node_id": "account-signup"
            },
            "to": {
              "node_kind": "interface",
              "node_id": "api-authentication"
            }
          },
          {
            "relation_id": "threads-describe-api",
            "kind": "describes",
            "from": {
              "node_kind": "resource",
              "node_id": "create-threads"
            },
            "to": {
              "node_kind": "interface",
              "node_id": "graphql-api"
            }
          }
        ],
        "surface_exclusions": [
          {
            "exclusion_id": "separate-eligibility-resource",
            "role": "eligibility",
            "rationale": "Access conditions are published within Plain's terms and conditions."
          }
        ]
      },
      "lifecycle": "active",
      "effective_from": "2026-10-12T10:09:43.303Z",
      "revision_digest": "sha256:a52f1861f23ee2082c17ba160dbf588a7827339ac425769fa15fca4998e7ec1a",
      "policy_digest": "sha256:b612172aad277b54461de84e006815126f2df566563954b02f4432a39cad89ac",
      "policy_version": "kind-2026-10-12.2",
      "policy_as_of": "2026-10-05T00:00:00Z",
      "job": {
        "job_id": "support-ticket-create",
        "job_digest": "sha256:0ea1fc74ac634bb9b94d7bf1d65f37a6caabc5cb0cf77fd430f8fa7249962615",
        "category": "customer-support",
        "name": "Create a support ticket",
        "statement": "Create a support ticket whose subject is the run's nonce, then read it back."
      },
      "interface_id": "graphql-api",
      "label": "probed",
      "label_run_at": null,
      "grade": {
        "letter": "B",
        "statement": "A card on file.",
        "steps": [
          {
            "step": "discover",
            "outcome": "machine",
            "timing": null
          },
          {
            "step": "authority",
            "outcome": "workaround",
            "timing": "setup"
          },
          {
            "step": "onboard",
            "outcome": "workaround",
            "timing": "setup"
          },
          {
            "step": "pay",
            "outcome": "workaround",
            "timing": "setup"
          },
          {
            "step": "confirm",
            "outcome": "machine",
            "timing": null
          },
          {
            "step": "sustain",
            "outcome": "workaround",
            "timing": "setup"
          }
        ],
        "job": "reachable",
        "approvals": [],
        "workarounds": [
          {
            "step": "authority",
            "timing": "setup"
          },
          {
            "step": "onboard",
            "timing": "setup"
          },
          {
            "step": "pay",
            "timing": "setup"
          },
          {
            "step": "sustain",
            "timing": "setup"
          }
        ]
      },
      "discovery": [
        {
          "fact": "agent_documentation",
          "value": "https://www.plain.com/llms.txt",
          "descriptor_url": "https://www.plain.com/llms.txt",
          "attempt_digest": "sha256:09e63054d0285c392f42aea4091afebd9a809ef1b7f329930b593ab0e80158a6",
          "adapter": {
            "namespace": "llms.txt",
            "version": "1"
          }
        },
        {
          "fact": "agent_documentation",
          "value": "https://www.plain.com/llms.txt",
          "descriptor_url": "https://www.plain.com/llms.txt",
          "attempt_digest": "sha256:e27e7dd6f399c5df42740e90595b9fc20da7b2984e6b5584c662440610dea45f",
          "adapter": {
            "namespace": "llms.txt",
            "version": "1"
          }
        },
        {
          "fact": "documentation_route",
          "value": "https://core-api.uk.plain.com/",
          "descriptor_url": "https://www.plain.com/docs/graphql/introduction",
          "attempt_digest": "sha256:bcefc7f29489dfdefa3343e518ae0c7788a8da342566532e42407051bea3b3d6",
          "adapter": {
            "namespace": "markdown",
            "version": "request"
          }
        }
      ],
      "discovery_run_at": null,
      "run": {
        "started_at": "2026-10-12T10:09:02.891Z",
        "finished_at": "2026-10-12T10:09:43.303Z",
        "discovery_reads": 32,
        "exchanges": [
          {
            "purpose": "probe_operation",
            "role": "request",
            "method": "POST",
            "url": "https://core-api.uk.plain.com/graphql/v1",
            "started_at": "2026-10-12T10:09:22.936Z",
            "finished_at": "2026-10-12T10:09:23.047Z",
            "response": {
              "status": 401,
              "media_type": "application/json",
              "content_bytes": 26,
              "content_digest": "sha256:3e7db788e384631f8a9f299d1797e6f8af6d16d643a1c91f9e83ae15212de45c"
            },
            "transport_error": null,
            "exchange_digest": "sha256:1b2ee6cb20aa669afa76cb1ea9787bfe6ec030b0f3a9721cb57daab424910a11"
          },
          {
            "purpose": "probe_resource_metadata",
            "role": "request",
            "method": "GET",
            "url": "https://core-api.uk.plain.com/.well-known/oauth-protected-resource/graphql/v1",
            "started_at": "2026-10-12T10:09:26.861Z",
            "finished_at": "2026-10-12T10:09:26.955Z",
            "response": {
              "status": 404,
              "media_type": "application/json",
              "content_bytes": 23,
              "content_digest": "sha256:8fd54eee4277f1327015cc0bcaed8a878bf44d1804364cd5d93dfab9e2d1a5af"
            },
            "transport_error": null,
            "exchange_digest": "sha256:b21316319e08c87af85ecdd8a13b04632dd227a334473cda51bb8272759322ee"
          },
          {
            "purpose": "probe_resource_metadata",
            "role": "request",
            "method": "GET",
            "url": "https://core-api.uk.plain.com/.well-known/oauth-protected-resource",
            "started_at": "2026-10-12T10:09:30.919Z",
            "finished_at": "2026-10-12T10:09:31.018Z",
            "response": {
              "status": 404,
              "media_type": "application/json",
              "content_bytes": 23,
              "content_digest": "sha256:8fd54eee4277f1327015cc0bcaed8a878bf44d1804364cd5d93dfab9e2d1a5af"
            },
            "transport_error": null,
            "exchange_digest": "sha256:480d890876a444844b731fb40603c553bb12216bae30d69141c22b88ac965893"
          },
          {
            "purpose": "probe_page",
            "role": "request",
            "method": "GET",
            "url": "https://www.plain.com/get/trial",
            "started_at": "2026-10-12T10:09:34.058Z",
            "finished_at": "2026-10-12T10:09:34.227Z",
            "response": {
              "status": 200,
              "media_type": "text/html",
              "content_bytes": 181547,
              "content_digest": "sha256:c5b7e8f6181648dc8a4e1ab64f9d1fc60717c73e1afa752f2448091ad4d35205"
            },
            "transport_error": null,
            "exchange_digest": "sha256:586de8b513a488dfab21dd45023ae9361f9aa4fdfd59bb99714734edcfb7b8f5"
          },
          {
            "purpose": "probe_page",
            "role": "request",
            "method": "GET",
            "url": "https://app.plain.com/~/settings/billing/",
            "started_at": "2026-10-12T10:09:38.704Z",
            "finished_at": "2026-10-12T10:09:38.791Z",
            "response": {
              "status": 200,
              "media_type": "text/html",
              "content_bytes": 29380,
              "content_digest": "sha256:4eaecc85386fcb092005fe56140cc68824c841b4a01fbfead30673bdbaf09fda"
            },
            "transport_error": null,
            "exchange_digest": "sha256:96d14671f9e90463308692e65ef349cc7dd9d4dae30f434099a2ecf30ef9365c"
          }
        ],
        "assertions": []
      },
      "last_run_at": "2026-10-12T10:09:43.303Z",
      "publication": {
        "visibility": "discoverable",
        "reasons": []
      },
      "provenance": {
        "dispute": "none",
        "vendor_attestation": {
          "status": "none"
        },
        "basis_event_ids": []
      },
      "canonical_url": "https://sourcey.com/c/plain/agent-readiness/plain-api/support-ticket-create",
      "projection_digest": "sha256:3c9ba49424fec17ae724dd292793a4d15090f41374966fb542cfe965c78fa283"
    }
  }
}
