{
  "registry": "grip.acts",
  "grip": "1.0-draft.2",
  "source": "§4.4 The act registry",
  "extension_policy": "Public proposal. One gate, one Receipt shape, for every family.",
  "families": [
    { "family": "tool", "meaning": "effects on and observations of the world", "resource_form": "mcp://{server}/{tool}", "verbs": ["tool.call"] },
    { "family": "model", "meaning": "purchases of cognition", "resource_form": "class:{capability}", "verbs": ["model.call"],
      "note": "The Grant names a model class and a data boundary set, never a vendor endpoint. The outcome Receipt MUST record outcome.resolved {provider, model, boundary}." },
    { "family": "agent", "meaning": "delegation to autonomous agents", "resource_form": "A2A card URL or GRIP runtime URL", "verbs": ["agent.call"] },
    { "family": "skill", "meaning": "loading packaged procedures", "resource_form": "skill package digest", "verbs": ["skill.load"],
      "note": "Nothing a skill contains can widen a Grant. Pinning is provenance, not review." },
    { "family": "stop", "meaning": "protocol control", "resource_form": "a Stop id", "verbs": ["stop.request", "stop.approve", "stop.reject"],
      "note": "stop.approve and stop.reject are authorised by the Stop itself, which stands in place of a Grant chain for exactly two acts by exactly the named approver (§4.3.4)." }
  ],
  "consequence_classes": [
    { "class": "observe", "severity": 1, "meaning": "read-like, no world mutation" },
    { "class": "egress", "severity": 2, "meaning": "no world mutation, but externally visible — data can leave through it" },
    { "class": "settle", "severity": 3, "meaning": "world-changing; requires an approved Stop" }
  ],
  "matching_rule": "Where allow entries overlap, the most consequence-severe matching class governs (settle > egress > observe). §4.3.2."
}
