{
  "api_contract": "sourcey.catalog-api/v1",
  "release_id": "sha256:f94358e3c57b6e575ca58c8031b9b7552cbfdb411f937b8ecdc3b042c4980a77",
  "artifact_sha256": "sha256:7472396c2449279d33e7a0fb2426f02a89991501262d1db8c04c81d57bdf9021",
  "data": {
    "revision_contract": "sourcey.agent-readiness-revision/v1alpha1",
    "agent_readiness_profile_id": "arp_01kzf0m4xj3k8sa6c2w9nq4vf7",
    "entity_id": "ent_01kyyts97tdz1rtzzt919cthny",
    "scope": {
      "product": {
        "key": "slack-web-api",
        "name": "Slack Web API"
      },
      "funnel": {
        "key": "workspace-app-operations",
        "name": "Workspace app operations"
      }
    },
    "catalog_binding": {
      "base_release_id": "sha256:cad9f851ab1bb553246eb2fb2b2803a4741814a33ccf28997014247439b9013d",
      "entity_revision_digest": "sha256:6bf818ed8305ea50197752914eecaa92ffd3a14f68afe01712b18be0cb13a2eb"
    },
    "declaration_revision_digest": "sha256:f3bb080b1f1ccd9b33d2c66000ce4bed9c7f7cfaad35a873ade0d539884631cf",
    "declaration": {
      "declaration_id": "declaration_slack_web_api_workspace_operations",
      "provenance": {
        "repository": "sourcey/agent-ready-services",
        "commit": "62b512f0c49352e55a399ba53866a5effa431d71",
        "path": "vendors/sl/slack.yaml",
        "git_blob_oid": "0c925deda45198c49d0b1fe24dca223bf7ae42cb",
        "blob_digest": "sha256:c23d5db2bdae763eaf453367cb98b1c01de06dd67c126ff4d4f8337c1729f083"
      },
      "status": "community_declared"
    },
    "lifecycle": "active",
    "effective_from": "2026-08-20T14:33:24.000Z",
    "signals": [
      {
        "stage": "evaluate",
        "signal_code": "eligibility_decidability",
        "selector_group_id": "eligibility_decidability-primary",
        "value": "partial",
        "observed_at": "2026-08-20T15:56:46.230Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "readiness-5cf60e6ed44cb7227b1e801c24793d749277f1ac820a2a2d1a2e3aaea9e3ae94"
          }
        ],
        "assessment_method": {
          "name": "public-http-semantic-assessment",
          "version": "2026-08-20",
          "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
        },
        "determination_bases": [
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:a5a71f1e25363202106e976111b85eb69af9ec4bdd3d7ee5576d7a2b7ed2d811",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:4d8fba200d44dda42d8d4ef95f61fbb034f321bc0cad8e6c15398080c4adac25",
              "sha256:582a993f51388d974b61feaf0830e8a2c1b8a944e05b4f9cc1903ce8a29ae042",
              "sha256:b81f869486b3475b2646d381526efee899706f719be6b9ed0bd33e377f3365ad",
              "sha256:f686fc75b12cfda883659992ee63c1eb82fd6d411e7ddd1bf9969906b6026c88"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "readiness-5cf60e6ed44cb7227b1e801c24793d749277f1ac820a2a2d1a2e3aaea9e3ae94"
            },
            "locators": [
              {
                "artifact_digest": "sha256:4d8fba200d44dda42d8d4ef95f61fbb034f321bc0cad8e6c15398080c4adac25",
                "start_byte": 13091,
                "end_byte": 13891,
                "value_digest": "sha256:2474be0837078c98ebce543faddbf82e97d52e0783dd382d30fc7c60417f5df5"
              },
              {
                "artifact_digest": "sha256:4d8fba200d44dda42d8d4ef95f61fbb034f321bc0cad8e6c15398080c4adac25",
                "start_byte": 17126,
                "end_byte": 17930,
                "value_digest": "sha256:a547db0b04699fb78336bdfa236c375fe482b48df954f2e138121ede520497e1"
              }
            ]
          }
        ],
        "note": "According to Slack's help documentation, by default any member of a Slack workspace can install apps and all members are eligible to use workspace app features across all subscriptions. However, workspace owners can turn on app approval to require admin authorization, restricting members from directly installing or using certain apps."
      },
      {
        "stage": "evaluate",
        "signal_code": "pricing_decidability",
        "selector_group_id": "pricing_decidability-primary",
        "value": "yes",
        "observed_at": "2026-08-20T15:56:39.748Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "pricing"
          }
        ],
        "assessment_method": {
          "name": "public-http-semantic-assessment",
          "version": "2026-08-20",
          "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
        },
        "determination_bases": [
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:931df2d4291388908866525e610450e33740d66abd3c248dc1e48c024f0f97d2",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:25940934ae44047df07640822c0aafdf0b1b88d3f04ecd99227bfd2ec8bd5b5b",
              "sha256:2d87358e7a6238584230dff0ef8efce21dbe19ac02ea3b19cbf809327fc84f16",
              "sha256:628fa553e9e4ba0778153c9d703ee604edcf5cb556b32c9ba7a520424bb56735",
              "sha256:aa8bac44a7337104d7ffda52d381bd536f84245cc7c873f70621d6242bee2307"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "pricing"
            },
            "locators": [
              {
                "artifact_digest": "sha256:aa8bac44a7337104d7ffda52d381bd536f84245cc7c873f70621d6242bee2307",
                "start_byte": 16003,
                "end_byte": 16807,
                "value_digest": "sha256:e84b2ebd25eadac26dda7028cbef24758d2136e2d6d56acdde62421404c6c569"
              }
            ]
          }
        ],
        "note": "Slack explicitly provides subscription pricing details, confirming a Free tier at $US0 free forever that includes up to ten apps, alongside paid subscription tiers."
      },
      {
        "stage": "evaluate",
        "signal_code": "service_discovery",
        "selector_group_id": "service_discovery-primary",
        "value": "yes",
        "observed_at": "2026-08-20T15:56:13.150Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "web-api"
          }
        ],
        "assessment_method": {
          "name": "public-http-semantic-assessment",
          "version": "2026-08-20",
          "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
        },
        "determination_bases": [
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:12696dca3b5b572c7637c91f3350edf8f67fdcf053069a5aaaab73eeca5f6774",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:178744b81da58a96ab8a484e271c2cacdd7bfae5c537b3acc2a27846b3ff675f",
              "sha256:4d21e854f82ebc598f1b3dbbbada4efa88daa961a2144f6a19b68a9a8353787c",
              "sha256:c3eceff7ca94c446188c661c486025b06852f8d8cec7234f667ff2e2a7859e2b",
              "sha256:c60f3d28dd728dd7c939783376f0e40eabed117aea6cbdde4f92b0e4cb4ee5f3"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "web-api"
            },
            "locators": [
              {
                "artifact_digest": "sha256:178744b81da58a96ab8a484e271c2cacdd7bfae5c537b3acc2a27846b3ff675f",
                "start_byte": 4635,
                "end_byte": 5448,
                "value_digest": "sha256:b99fa92af2a9c9241eb591165ba34b6dfda285cc04a3d089156d558f494f8b7a"
              },
              {
                "artifact_digest": "sha256:178744b81da58a96ab8a484e271c2cacdd7bfae5c537b3acc2a27846b3ff675f",
                "start_byte": 5449,
                "end_byte": 6247,
                "value_digest": "sha256:a4ca6a703b8db57dbd850ea24ca5377f5cedfdb18490dd6b4c76a39ec492ab84"
              }
            ]
          }
        ],
        "note": "The Slack Web API is publicly discoverable as an interface for querying information and enacting changes in a Slack workspace, featuring HTTP RPC-style endpoints under the base URL https://slack.com/api/METHOD_FAMILY.method over HTTPS."
      },
      {
        "stage": "evaluate",
        "signal_code": "terms_access",
        "selector_group_id": "terms_access-primary",
        "value": "partial",
        "observed_at": "2026-08-20T15:57:48.964Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "service-terms"
          }
        ],
        "assessment_method": {
          "name": "public-http-semantic-assessment",
          "version": "2026-08-20",
          "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
        },
        "determination_bases": [
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:1f5e81d8a1a5e37dac29f991626f94a272e2631de937defa55bf2c55931868d6",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:04c9291ba64fc5ae3aa64176b323b2cef4dcfc09cfe78c2d5d1a6298f4b513a1",
              "sha256:090121b83bd196d3868da7b714a1306dbf9f3db3e37f356a28be527a4b25d5c0",
              "sha256:c220636672a0b72f20ae3b331abe5ad27b686f0716599c4baeccc4864221cd5e",
              "sha256:cb9e28c7d0dd291726488063a27e7c8c00c799182ff8cf30164023b1de20c007"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "service-terms"
            },
            "locators": [
              {
                "artifact_digest": "sha256:cb9e28c7d0dd291726488063a27e7c8c00c799182ff8cf30164023b1de20c007",
                "start_byte": 16190,
                "end_byte": 16968,
                "value_digest": "sha256:5c11579beec61db04f34a2929dc181cc716bfb7227971b962d62a2a1441e3deb"
              },
              {
                "artifact_digest": "sha256:cb9e28c7d0dd291726488063a27e7c8c00c799182ff8cf30164023b1de20c007",
                "start_byte": 16969,
                "end_byte": 17782,
                "value_digest": "sha256:ebb6105d0a5df8d79154a42944691165fb46664600af2273af547a206434d06c"
              }
            ]
          }
        ],
        "note": "Slack provides a legal terms index page identifying applicable agreements such as the Main Services Agreement, User Terms of Service, and API Terms of Service, but defers the full binding text of the Main Services Agreement to an external Salesforce link."
      },
      {
        "stage": "sign_up",
        "signal_code": "access_control_operability",
        "selector_group_id": "access_control_operability-primary",
        "value": "unknown",
        "observed_at": "2026-08-20T15:57:18.396Z",
        "tested_surfaces": [
          {
            "node_kind": "endpoint",
            "node_id": "registration"
          }
        ],
        "assessment_method": {
          "name": "bounded-headless-semantic-assessment",
          "version": "2026-08-20",
          "method_digest": "sha256:f1212e8cd082308cfde3c097bc933c4a4b72046b1f242205c3e27a3b020b3311"
        },
        "determination_bases": [],
        "note": "The retained evidence for the get-started endpoint only contains metadata and page title text ('Login | Slack') without detailing interactive access controls, validation, navigation, or handoffs."
      },
      {
        "stage": "sign_up",
        "signal_code": "access_entrypoint_stability",
        "selector_group_id": "access_entrypoint_stability-primary",
        "value": "yes",
        "observed_at": "2026-08-20T15:57:18.396Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "workspace-signup"
          }
        ],
        "assessment_method": {
          "name": "bounded-headless-semantic-assessment",
          "version": "2026-08-20",
          "method_digest": "sha256:f1212e8cd082308cfde3c097bc933c4a4b72046b1f242205c3e27a3b020b3311"
        },
        "determination_bases": [
          {
            "kind": "direct_observation",
            "captures": [
              {
                "retained_capture_digest": "sha256:c3157fd9ba234cb235e3f097136abb7fd51193e7de8dbf5cadc61351ef14f9ce",
                "capture_rung": "headless"
              }
            ],
            "artifact_digests": [
              "sha256:105ecba982e92e1ff9b798f5278873867ad795d36e8d0827f0755ee08a66a1c6",
              "sha256:3878570f4a62a0d65f57cf1754e0269e56ec797f4e36e26b44c172eb6e800401",
              "sha256:4ab071b8b0ea7ac595d2559c980df791b801fcbfac5743d90ae2ee7d298c6169",
              "sha256:4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
              "sha256:bc0a4186de442d335bcdc2fb7bf4409c8435cb4399650f1db062a2fca5ab9ad3",
              "sha256:db67cfa1d09993e6afbaec7e04fa95894a6819fb0cc0ac6dda960ecb69fa17a8"
            ],
            "locators": [
              {
                "artifact_digest": "sha256:bc0a4186de442d335bcdc2fb7bf4409c8435cb4399650f1db062a2fca5ab9ad3",
                "start_byte": 0,
                "end_byte": 532,
                "value_digest": "sha256:faf62c7f58088bfcad5af4e1971f0b67405c77edcf6547df3a5ba48fbcaeb28e"
              }
            ]
          }
        ],
        "note": "A stable canonical route to begin service access is available at https://slack.com/get-started, where users can log in or try for free with an email address."
      },
      {
        "stage": "sign_up",
        "signal_code": "captcha_compatible_access",
        "selector_group_id": "captcha_compatible_access-primary",
        "value": "unknown",
        "observed_at": "2026-08-20T15:57:18.396Z",
        "tested_surfaces": [
          {
            "node_kind": "endpoint",
            "node_id": "registration"
          },
          {
            "node_kind": "resource",
            "node_id": "workspace-signup"
          }
        ],
        "assessment_method": {
          "name": "bounded-headless-semantic-assessment",
          "version": "2026-08-20",
          "method_digest": "sha256:f1212e8cd082308cfde3c097bc933c4a4b72046b1f242205c3e27a3b020b3311"
        },
        "determination_bases": [],
        "note": "The evidence captured from https://slack.com/get-started contains page metadata and title text, but does not explicitly confirm or rule out CAPTCHA requirements."
      },
      {
        "stage": "sign_up",
        "signal_code": "delegated_identity_access",
        "selector_group_id": "delegated_identity_access-primary",
        "value": "yes",
        "observed_at": "2026-08-20T15:56:41.385Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "oauth"
          }
        ],
        "assessment_method": {
          "name": "public-http-semantic-assessment",
          "version": "2026-08-20",
          "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
        },
        "determination_bases": [
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:caa55565371557fbd697a278f815a306eb8831a4d22ffea5c3d999e04f5f7a56",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:508be35770d1d57dd4905f99bd52493216b4b8e478285ff4e9ab2e5b61b61650",
              "sha256:84e9eacc6f77d4be8879da6dfee2148c8ad1a015a9e1e30ebdc76e3ada15f40c",
              "sha256:9943983a6a1a0a5b5cd996f2a1e8065052b0f29eaf77ef1a1bd5de0ec2e6e5c8",
              "sha256:f432980d2e0bdd80c75b606b22bbb845279c952eb677947ee02f4a63cf56db65"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "oauth"
            },
            "locators": [
              {
                "artifact_digest": "sha256:f432980d2e0bdd80c75b606b22bbb845279c952eb677947ee02f4a63cf56db65",
                "start_byte": 5002,
                "end_byte": 5814,
                "value_digest": "sha256:1f244034392c217d5c38b26935171a3a72413da79768682faa2bf9a843759294"
              },
              {
                "artifact_digest": "sha256:f432980d2e0bdd80c75b606b22bbb845279c952eb677947ee02f4a63cf56db65",
                "start_byte": 5815,
                "end_byte": 6618,
                "value_digest": "sha256:9c3b2537d895bac372b3b8dc989e3f6d4646192df550644db63559a8e5a04343"
              }
            ]
          }
        ],
        "note": "Slack apps use a v2 OAuth 2.0 flow where apps request specific granular scopes, users grant approval, and a temporary authorization code is exchanged for an access token."
      },
      {
        "stage": "sign_up",
        "signal_code": "phone_verification_compatible",
        "selector_group_id": "phone_verification_compatible-primary",
        "value": "unknown",
        "observed_at": "2026-08-20T15:57:18.396Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "workspace-signup"
          }
        ],
        "assessment_method": {
          "name": "bounded-headless-semantic-assessment",
          "version": "2026-08-20",
          "method_digest": "sha256:f1212e8cd082308cfde3c097bc933c4a4b72046b1f242205c3e27a3b020b3311"
        },
        "determination_bases": [],
        "note": "The captured evidence for the registration page does not contain explicit information regarding phone verification requirements or safe resumable boundaries."
      },
      {
        "stage": "pay",
        "signal_code": "checkout_operability",
        "selector_group_id": "checkout_operability-primary",
        "value": "unknown",
        "observed_at": "2026-08-20T15:56:05.005Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "billing-checkout"
          }
        ],
        "assessment_method": {
          "name": "public-http-semantic-assessment",
          "version": "2026-08-20",
          "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
        },
        "determination_bases": [],
        "note": "Human web checkout steps are documented, but deterministic construction, bounded approval handoff, and safe resumption are not established."
      },
      {
        "stage": "pay",
        "signal_code": "commitment_disclosure",
        "selector_group_id": "commitment_disclosure-primary",
        "value": "yes",
        "observed_at": "2026-08-20T15:56:39.748Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "pricing"
          }
        ],
        "assessment_method": {
          "name": "public-http-semantic-assessment",
          "version": "2026-08-20",
          "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
        },
        "determination_bases": [
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:931df2d4291388908866525e610450e33740d66abd3c248dc1e48c024f0f97d2",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:2d87358e7a6238584230dff0ef8efce21dbe19ac02ea3b19cbf809327fc84f16",
              "sha256:395cd80f5dde8947a062d12002773186cfdc2d296dab2680a1e55ade730eea2e",
              "sha256:628fa553e9e4ba0778153c9d703ee604edcf5cb556b32c9ba7a520424bb56735",
              "sha256:aa8bac44a7337104d7ffda52d381bd536f84245cc7c873f70621d6242bee2307"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "pricing"
            },
            "locators": [
              {
                "artifact_digest": "sha256:aa8bac44a7337104d7ffda52d381bd536f84245cc7c873f70621d6242bee2307",
                "start_byte": 16808,
                "end_byte": 17607,
                "value_digest": "sha256:a9cfb890efddb72a4869dc8abe300153d70abc8f1353ea52ac1987cb66852c3b"
              },
              {
                "artifact_digest": "sha256:aa8bac44a7337104d7ffda52d381bd536f84245cc7c873f70621d6242bee2307",
                "start_byte": 39209,
                "end_byte": 40012,
                "value_digest": "sha256:153e50154e4318ef1fc89cdf238a7adb9efedf6c78194155d4cddb318e9a29bc"
              }
            ]
          }
        ],
        "note": "Slack discloses commitment terms including USD pricing ($US8.75/month or $US7.25/month paid annually for Pro), recurrence options (monthly vs annual), and charge timing rules for credit card purchases and user additions."
      },
      {
        "stage": "pay",
        "signal_code": "payment_authorization",
        "selector_group_id": "payment_authorization-primary",
        "value": "yes",
        "observed_at": "2026-08-20T15:56:05.005Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "billing-checkout"
          }
        ],
        "assessment_method": {
          "name": "public-http-semantic-assessment",
          "version": "2026-08-20",
          "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
        },
        "determination_bases": [
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:d1de9ea173b5c9608e79bf54ad0cd1385001fa8a7984275a74ef224fc3b728f3",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:41052326a88d5110ddd51fb64c5bf515f68559baf782d8c1be61f182c1d6f58d",
              "sha256:58f95f844c48da9831588e68357080c228562812dc9a989551aac5b39e41c3f4",
              "sha256:be91fbd46718884fe3c5c7e6c2b539e94549e4b006757b6daff083e399aa1f8d",
              "sha256:f0c95d4dfac6a5f91aeefcade4b182aca3135ba5d7a710530a089787d29cb74b"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "billing-checkout"
            },
            "locators": [
              {
                "artifact_digest": "sha256:41052326a88d5110ddd51fb64c5bf515f68559baf782d8c1be61f182c1d6f58d",
                "start_byte": 13752,
                "end_byte": 14536,
                "value_digest": "sha256:7ca7178e26f80ab1ce87d5daa5a5a66833ff18caae5dde00d9c6378472410379"
              }
            ]
          }
        ],
        "note": "Slack documents payment authorization via default payment methods (credit card or ACH bank debiting for US bank accounts), where authorized workspace admins review and confirm orders by clicking 'Purchase'."
      },
      {
        "stage": "pay",
        "signal_code": "self_service_purchase",
        "selector_group_id": "self_service_purchase-primary",
        "value": "yes",
        "observed_at": "2026-08-20T15:56:05.005Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "billing-checkout"
          }
        ],
        "assessment_method": {
          "name": "public-http-semantic-assessment",
          "version": "2026-08-20",
          "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
        },
        "determination_bases": [
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:d1de9ea173b5c9608e79bf54ad0cd1385001fa8a7984275a74ef224fc3b728f3",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:41052326a88d5110ddd51fb64c5bf515f68559baf782d8c1be61f182c1d6f58d",
              "sha256:58f95f844c48da9831588e68357080c228562812dc9a989551aac5b39e41c3f4",
              "sha256:e0ba6acdf784c0b32877a1bc936d0b8645cdf4c5dd5f66dc75c8cd173489a7fb",
              "sha256:f0c95d4dfac6a5f91aeefcade4b182aca3135ba5d7a710530a089787d29cb74b"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "billing-checkout"
            },
            "locators": [
              {
                "artifact_digest": "sha256:41052326a88d5110ddd51fb64c5bf515f68559baf782d8c1be61f182c1d6f58d",
                "start_byte": 12950,
                "end_byte": 13751,
                "value_digest": "sha256:89e50afde44957ac87a71b2e607929d647ead76eee1e5c235fdda0475450343e"
              },
              {
                "artifact_digest": "sha256:41052326a88d5110ddd51fb64c5bf515f68559baf782d8c1be61f182c1d6f58d",
                "start_byte": 13752,
                "end_byte": 14536,
                "value_digest": "sha256:7ca7178e26f80ab1ce87d5daa5a5a66833ff18caae5dde00d9c6378472410379"
              }
            ]
          }
        ],
        "note": "Slack documents a direct self-service path to upgrade or manage paid subscriptions via the desktop app by navigating to Admin > Manage billing, selecting subscription details, moving through checkout, reviewing the order, and clicking Purchase."
      },
      {
        "stage": "provision",
        "signal_code": "access_material_delivery",
        "selector_group_id": "access_material_delivery-primary",
        "value": "yes",
        "observed_at": "2026-08-20T15:56:41.385Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "oauth"
          }
        ],
        "assessment_method": {
          "name": "public-http-semantic-assessment",
          "version": "2026-08-20",
          "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
        },
        "determination_bases": [
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:caa55565371557fbd697a278f815a306eb8831a4d22ffea5c3d999e04f5f7a56",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:508be35770d1d57dd4905f99bd52493216b4b8e478285ff4e9ab2e5b61b61650",
              "sha256:9943983a6a1a0a5b5cd996f2a1e8065052b0f29eaf77ef1a1bd5de0ec2e6e5c8",
              "sha256:c37d138f198848b633a3746a2ccf1315cdeb12cc2e2298c20ca6f2284e7e79fb",
              "sha256:f432980d2e0bdd80c75b606b22bbb845279c952eb677947ee02f4a63cf56db65"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "oauth"
            },
            "locators": [
              {
                "artifact_digest": "sha256:f432980d2e0bdd80c75b606b22bbb845279c952eb677947ee02f4a63cf56db65",
                "start_byte": 14596,
                "end_byte": 15314,
                "value_digest": "sha256:9f18b82b39c6a3e004140947734db97125356a5d072283adc2125c04fcacb7e7"
              }
            ]
          }
        ],
        "note": "At the end of the OAuth flow, calling the oauth.v2.access endpoint with the temporary authorization code and client secret returns an HTTP response containing the access token."
      },
      {
        "stage": "provision",
        "signal_code": "provisioning_completion",
        "selector_group_id": "provisioning_completion-primary",
        "value": "yes",
        "observed_at": "2026-08-20T15:57:04.599Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "message-operations"
          }
        ],
        "assessment_method": {
          "name": "public-http-semantic-assessment",
          "version": "2026-08-20",
          "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
        },
        "determination_bases": [
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:ceba9f7ce0590709717f67d35c2aba5ac2ad56828a7da7bd7ae757ebeb653001",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:7362cfd188f0905a4c6a9d99632aa263752d4523fa88c1a4409bd1b1c3ae5789",
              "sha256:8a603596adbde6e8eb4d24b5bf75fb88eeebd3a5cc268c3519d7a5adfbde3ced",
              "sha256:cdf4857de220d327e51f3e2e2d75ce94705c2d72fc01334c719d600db80dbdfa",
              "sha256:ef74f412ea86b218f208aceffb6c25a816cb5b45680f15d4bfd6dd75f29531dd"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "message-operations"
            },
            "locators": [
              {
                "artifact_digest": "sha256:ef74f412ea86b218f208aceffb6c25a816cb5b45680f15d4bfd6dd75f29531dd",
                "start_byte": 19948,
                "end_byte": 20740,
                "value_digest": "sha256:f4bd5f9ed0694608f55891b9c9affb54432fc252968ddba0ed237a5d3ec545e4"
              }
            ]
          }
        ],
        "note": "Calling chat.postMessage returns a synchronous HTTP response containing ok: true, the channel, the timestamp ID (ts), and the complete message object as parsed by Slack's servers."
      },
      {
        "stage": "provision",
        "signal_code": "provisioning_operability",
        "selector_group_id": "provisioning_operability-primary",
        "value": "yes",
        "observed_at": "2026-08-20T15:57:04.599Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "message-operations"
          },
          {
            "node_kind": "resource",
            "node_id": "oauth"
          }
        ],
        "assessment_method": {
          "name": "public-http-semantic-assessment",
          "version": "2026-08-20",
          "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
        },
        "determination_bases": [
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:ceba9f7ce0590709717f67d35c2aba5ac2ad56828a7da7bd7ae757ebeb653001",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:31996e0a46f7ec7bbc5115122a0733712ddce0e5dd5c0a37750a10c583b69e27",
              "sha256:8a603596adbde6e8eb4d24b5bf75fb88eeebd3a5cc268c3519d7a5adfbde3ced",
              "sha256:cdf4857de220d327e51f3e2e2d75ce94705c2d72fc01334c719d600db80dbdfa",
              "sha256:ef74f412ea86b218f208aceffb6c25a816cb5b45680f15d4bfd6dd75f29531dd"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "message-operations"
            },
            "locators": [
              {
                "artifact_digest": "sha256:ef74f412ea86b218f208aceffb6c25a816cb5b45680f15d4bfd6dd75f29531dd",
                "start_byte": 10332,
                "end_byte": 11127,
                "value_digest": "sha256:79aad13e2afdd16c93529cc838e7cf5af37f2bddb9447d608a7a2f73763f333e"
              }
            ]
          },
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:caa55565371557fbd697a278f815a306eb8831a4d22ffea5c3d999e04f5f7a56",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:0350075ac572091130589f61a5c3700a0e647c6e418ba0e01bff64743bd0ba78",
              "sha256:508be35770d1d57dd4905f99bd52493216b4b8e478285ff4e9ab2e5b61b61650",
              "sha256:9943983a6a1a0a5b5cd996f2a1e8065052b0f29eaf77ef1a1bd5de0ec2e6e5c8",
              "sha256:f432980d2e0bdd80c75b606b22bbb845279c952eb677947ee02f4a63cf56db65"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "oauth"
            },
            "locators": [
              {
                "artifact_digest": "sha256:f432980d2e0bdd80c75b606b22bbb845279c952eb677947ee02f4a63cf56db65",
                "start_byte": 6619,
                "end_byte": 7399,
                "value_digest": "sha256:e322a055a38816dfff657509a03bb6cd9868bcaa69e568b0434a7650d8adbfff"
              }
            ]
          }
        ],
        "note": "Provisioning can be initiated by redirecting a user to the OAuth authorization endpoint to grant scopes and exchanging the resulting code for an access token."
      },
      {
        "stage": "operate",
        "signal_code": "credential_lifecycle",
        "selector_group_id": "credential_lifecycle-primary",
        "value": "partial",
        "observed_at": "2026-08-20T15:56:41.385Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "oauth"
          }
        ],
        "assessment_method": {
          "name": "public-http-semantic-assessment",
          "version": "2026-08-20",
          "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
        },
        "determination_bases": [
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:caa55565371557fbd697a278f815a306eb8831a4d22ffea5c3d999e04f5f7a56",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:508be35770d1d57dd4905f99bd52493216b4b8e478285ff4e9ab2e5b61b61650",
              "sha256:9943983a6a1a0a5b5cd996f2a1e8065052b0f29eaf77ef1a1bd5de0ec2e6e5c8",
              "sha256:cfa21fd7590614002330209efaa5db2a02ae40ad93d6ebce63c6196b8ea00b50",
              "sha256:f432980d2e0bdd80c75b606b22bbb845279c952eb677947ee02f4a63cf56db65"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "oauth"
            },
            "locators": [
              {
                "artifact_digest": "sha256:f432980d2e0bdd80c75b606b22bbb845279c952eb677947ee02f4a63cf56db65",
                "start_byte": 20903,
                "end_byte": 21697,
                "value_digest": "sha256:d3c6c9068fb0312a775ca4df32378539452b2c84b006fe650b1d1fc24ad75e62"
              },
              {
                "artifact_digest": "sha256:f432980d2e0bdd80c75b606b22bbb845279c952eb677947ee02f4a63cf56db65",
                "start_byte": 21698,
                "end_byte": 22492,
                "value_digest": "sha256:6518747b4e93207f168d9f11613a88d2bcf16e6e9fba468a2232cf28395ac7dd"
              }
            ]
          }
        ],
        "note": "Documentation explicitly describes token revocation via the auth.revoke method and mentions token rotation with refresh tokens. However, evidence for full compromised credential handling and recovery within delegated authority is incomplete."
      },
      {
        "stage": "operate",
        "signal_code": "failure_contract",
        "selector_group_id": "failure_contract-primary",
        "value": "partial",
        "observed_at": "2026-08-20T15:56:50.517Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "rate-limits"
          }
        ],
        "assessment_method": {
          "name": "public-http-semantic-assessment",
          "version": "2026-08-20",
          "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
        },
        "determination_bases": [
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:426b189158cc159f7d47b752457db79e692c5def3843638162a8c3f5fc523dc0",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:3ee62a0180babbdf33832e1d38626812d926bcc4dbb1beee9c60dc9fb6fb2d31",
              "sha256:6669c6e7f0dbd71bfd04628be8ff5394eb07153f615f3a0b6111d802875199f3",
              "sha256:702aae8ea7183a62fc3ca2a66161f876f731acfec69e99cb7ef81744b397a439",
              "sha256:84a5e8db1a964d18d2b5d578ce33d254f2dfd02ecf69f6ef6be93ecd48cb04d3"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "rate-limits"
            },
            "locators": [
              {
                "artifact_digest": "sha256:84a5e8db1a964d18d2b5d578ce33d254f2dfd02ecf69f6ef6be93ecd48cb04d3",
                "start_byte": 10752,
                "end_byte": 11553,
                "value_digest": "sha256:70267f532e39d88a031f1b33295132bb76d37ee4c7c6cacc836ff71ab7553046"
              },
              {
                "artifact_digest": "sha256:84a5e8db1a964d18d2b5d578ce33d254f2dfd02ecf69f6ef6be93ecd48cb04d3",
                "start_byte": 11554,
                "end_byte": 12352,
                "value_digest": "sha256:3b78fe7a7e5b2437ce30c536a2035f620fd8454d0cc4e48144c0a6f3da010cbd"
              }
            ]
          }
        ],
        "note": "Documentation defines rate limits, the HTTP 429 Too Many Requests status code, and the Retry-After response header instructing how long to wait before retrying. Full failure handling including idempotency, cancellation, and reconciliation semantics is not fully established in the evidence."
      },
      {
        "stage": "operate",
        "signal_code": "operation_authentication",
        "selector_group_id": "operation_authentication-primary",
        "value": "yes",
        "observed_at": "2026-08-20T15:56:41.385Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "oauth"
          }
        ],
        "assessment_method": {
          "name": "public-http-semantic-assessment",
          "version": "2026-08-20",
          "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
        },
        "determination_bases": [
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:caa55565371557fbd697a278f815a306eb8831a4d22ffea5c3d999e04f5f7a56",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:508be35770d1d57dd4905f99bd52493216b4b8e478285ff4e9ab2e5b61b61650",
              "sha256:9943983a6a1a0a5b5cd996f2a1e8065052b0f29eaf77ef1a1bd5de0ec2e6e5c8",
              "sha256:f432980d2e0bdd80c75b606b22bbb845279c952eb677947ee02f4a63cf56db65",
              "sha256:fe8ccc85e8f0f799fbac92f69dc8dd5d7ac91f6d1112077c907ed55a94c1b21e"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "oauth"
            },
            "locators": [
              {
                "artifact_digest": "sha256:f432980d2e0bdd80c75b606b22bbb845279c952eb677947ee02f4a63cf56db65",
                "start_byte": 20122,
                "end_byte": 20902,
                "value_digest": "sha256:1fc7875031d8018106129eed9e67620f319881127f95107048fc09b5d15a36ff"
              },
              {
                "artifact_digest": "sha256:f432980d2e0bdd80c75b606b22bbb845279c952eb677947ee02f4a63cf56db65",
                "start_byte": 6619,
                "end_byte": 7399,
                "value_digest": "sha256:e322a055a38816dfff657509a03bb6cd9868bcaa69e568b0434a7650d8adbfff"
              }
            ]
          }
        ],
        "note": "Request-time authentication with scoped authority is documented via v2 OAuth 2.0 flow using requested scopes and Bearer tokens sent in the HTTP Authorization header."
      },
      {
        "stage": "operate",
        "signal_code": "operation_contract",
        "selector_group_id": "operation_contract-primary",
        "value": "yes",
        "observed_at": "2026-08-20T15:57:04.599Z",
        "tested_surfaces": [
          {
            "node_kind": "interface",
            "node_id": "workspace-api"
          }
        ],
        "assessment_method": {
          "name": "public-http-semantic-assessment",
          "version": "2026-08-20",
          "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
        },
        "determination_bases": [
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:426b189158cc159f7d47b752457db79e692c5def3843638162a8c3f5fc523dc0",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:23ee838d57ed0bd348ca2dcdacb86b755a295cef213d7618c1c16a2c55f4ebac",
              "sha256:3ee62a0180babbdf33832e1d38626812d926bcc4dbb1beee9c60dc9fb6fb2d31",
              "sha256:6669c6e7f0dbd71bfd04628be8ff5394eb07153f615f3a0b6111d802875199f3",
              "sha256:84a5e8db1a964d18d2b5d578ce33d254f2dfd02ecf69f6ef6be93ecd48cb04d3"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "rate-limits"
            },
            "locators": [
              {
                "artifact_digest": "sha256:84a5e8db1a964d18d2b5d578ce33d254f2dfd02ecf69f6ef6be93ecd48cb04d3",
                "start_byte": 10752,
                "end_byte": 11553,
                "value_digest": "sha256:70267f532e39d88a031f1b33295132bb76d37ee4c7c6cacc836ff71ab7553046"
              }
            ]
          },
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:ceba9f7ce0590709717f67d35c2aba5ac2ad56828a7da7bd7ae757ebeb653001",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:2912a48cedae4b5edc0e94f36b21ea563933d082dc53323ff5b920a7756a2424",
              "sha256:8a603596adbde6e8eb4d24b5bf75fb88eeebd3a5cc268c3519d7a5adfbde3ced",
              "sha256:cdf4857de220d327e51f3e2e2d75ce94705c2d72fc01334c719d600db80dbdfa",
              "sha256:ef74f412ea86b218f208aceffb6c25a816cb5b45680f15d4bfd6dd75f29531dd"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "message-operations"
            },
            "locators": [
              {
                "artifact_digest": "sha256:ef74f412ea86b218f208aceffb6c25a816cb5b45680f15d4bfd6dd75f29531dd",
                "start_byte": 7932,
                "end_byte": 8734,
                "value_digest": "sha256:987eada1fcb4f0ab8164308286e1d852cd1aad8cdcf52f8083244533d8d82b4b"
              }
            ]
          },
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:12696dca3b5b572c7637c91f3350edf8f67fdcf053069a5aaaab73eeca5f6774",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:178744b81da58a96ab8a484e271c2cacdd7bfae5c537b3acc2a27846b3ff675f",
              "sha256:4d21e854f82ebc598f1b3dbbbada4efa88daa961a2144f6a19b68a9a8353787c",
              "sha256:7786dae62e3519ad624523afd2367ba8c98e7c98a16c9441d98a9a2b46385dc6",
              "sha256:c3eceff7ca94c446188c661c486025b06852f8d8cec7234f667ff2e2a7859e2b"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "web-api"
            },
            "locators": [
              {
                "artifact_digest": "sha256:178744b81da58a96ab8a484e271c2cacdd7bfae5c537b3acc2a27846b3ff675f",
                "start_byte": 10239,
                "end_byte": 11041,
                "value_digest": "sha256:83c7952a149c3df268957c338c2237269bf87bd30b400c26c3c977b2b6159387"
              }
            ]
          }
        ],
        "note": "Slack Web API endpoints, including chat.postMessage, have documented request parameters, HTTP methods, rate limits, and JSON responses with an explicit top-level ok status."
      },
      {
        "stage": "operate",
        "signal_code": "target_interface_access",
        "selector_group_id": "target_interface_access-primary",
        "value": "yes",
        "observed_at": "2026-08-20T15:57:04.599Z",
        "tested_surfaces": [
          {
            "node_kind": "interface",
            "node_id": "workspace-api"
          }
        ],
        "assessment_method": {
          "name": "public-http-semantic-assessment",
          "version": "2026-08-20",
          "method_digest": "sha256:f7c4219d9b75928a6bcff8d125dc30bbc718673e579a66f00d832172e8c9d43d"
        },
        "determination_bases": [
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:ceba9f7ce0590709717f67d35c2aba5ac2ad56828a7da7bd7ae757ebeb653001",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:2912a48cedae4b5edc0e94f36b21ea563933d082dc53323ff5b920a7756a2424",
              "sha256:8a603596adbde6e8eb4d24b5bf75fb88eeebd3a5cc268c3519d7a5adfbde3ced",
              "sha256:cdf4857de220d327e51f3e2e2d75ce94705c2d72fc01334c719d600db80dbdfa",
              "sha256:ef74f412ea86b218f208aceffb6c25a816cb5b45680f15d4bfd6dd75f29531dd"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "message-operations"
            },
            "locators": [
              {
                "artifact_digest": "sha256:ef74f412ea86b218f208aceffb6c25a816cb5b45680f15d4bfd6dd75f29531dd",
                "start_byte": 7932,
                "end_byte": 8734,
                "value_digest": "sha256:987eada1fcb4f0ab8164308286e1d852cd1aad8cdcf52f8083244533d8d82b4b"
              }
            ]
          },
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:426b189158cc159f7d47b752457db79e692c5def3843638162a8c3f5fc523dc0",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:3ee62a0180babbdf33832e1d38626812d926bcc4dbb1beee9c60dc9fb6fb2d31",
              "sha256:6669c6e7f0dbd71bfd04628be8ff5394eb07153f615f3a0b6111d802875199f3",
              "sha256:84a5e8db1a964d18d2b5d578ce33d254f2dfd02ecf69f6ef6be93ecd48cb04d3",
              "sha256:8d0f1f5b2eed1f8133e42788a5ae90c2ac2a175f1499d988544141dc050b7ca0"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "rate-limits"
            },
            "locators": [
              {
                "artifact_digest": "sha256:84a5e8db1a964d18d2b5d578ce33d254f2dfd02ecf69f6ef6be93ecd48cb04d3",
                "start_byte": 5141,
                "end_byte": 5951,
                "value_digest": "sha256:523019ee05f284b3c775c068309e076993f90062a99ca4219b5f96368df5d6a3"
              }
            ]
          },
          {
            "kind": "explicit_first_party_declaration",
            "captures": [
              {
                "retained_capture_digest": "sha256:12696dca3b5b572c7637c91f3350edf8f67fdcf053069a5aaaab73eeca5f6774",
                "capture_rung": "http"
              }
            ],
            "artifact_digests": [
              "sha256:178744b81da58a96ab8a484e271c2cacdd7bfae5c537b3acc2a27846b3ff675f",
              "sha256:4d21e854f82ebc598f1b3dbbbada4efa88daa961a2144f6a19b68a9a8353787c",
              "sha256:c3eceff7ca94c446188c661c486025b06852f8d8cec7234f667ff2e2a7859e2b",
              "sha256:c832fbef8359f5d7f8d51d83762d2d5d5d2923fbf654e8226f7aef2ccff4337a"
            ],
            "source_surface": {
              "node_kind": "resource",
              "node_id": "web-api"
            },
            "locators": [
              {
                "artifact_digest": "sha256:178744b81da58a96ab8a484e271c2cacdd7bfae5c537b3acc2a27846b3ff675f",
                "start_byte": 4635,
                "end_byte": 5448,
                "value_digest": "sha256:b99fa92af2a9c9241eb591165ba34b6dfda285cc04a3d089156d558f494f8b7a"
              }
            ]
          }
        ],
        "note": "Every essential target has documented machine-operable HTTP interfaces for invocation, including Web API RPC-style methods."
      }
    ],
    "revision_digest": "sha256:95ce8c5fa061c757e09eeb33b07bd2579455a3dd5ce6c244d5e34879daf2aa3c"
  }
}
