{
  "$id": "devthink/protocolv2/audit.schema.json",
  "version": "1.0.0",
  "title": "the frozen audit event contract of the api freeze",
  "description": "freezes the audit trail event shape and the complete audit event name vocabulary: every audit entry carries its id, its event kind of the frozen enum, its epoch, its plain language summary and the optional session, plan and step provenance; the event names join the frozen contract so a log consumer of any release reads the trail of any other release of protocolv2.",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "the audit entry id"
    },
    "kind": {
      "type": "string",
      "description": "the audit event name of the frozen vocabulary",
      "enum": [
        "a11y",
        "action",
        "adapter",
        "approval",
        "arbitrate",
        "attention",
        "auth",
        "backgroundrun",
        "badge",
        "batch",
        "batchquery",
        "battery",
        "bridge",
        "budget",
        "cache",
        "call",
        "cancel",
        "capability",
        "capture",
        "checkpoint",
        "chunkextract",
        "cleanup",
        "clipboard",
        "compare",
        "complete",
        "compress",
        "configure",
        "consent",
        "consentmemory",
        "control",
        "correction",
        "correlate",
        "datagrid",
        "debounce",
        "debugger",
        "dedupe",
        "defer",
        "deny",
        "dialog",
        "diff",
        "discard",
        "doctor",
        "download",
        "dropimport",
        "emulation",
        "environment",
        "error",
        "escalate",
        "expiry",
        "export",
        "exporttool",
        "fill",
        "flowrun",
        "gate",
        "gateway",
        "grant",
        "ground",
        "group",
        "handoff",
        "headless",
        "hold",
        "importexport",
        "inbound",
        "incrsnapshot",
        "intercept",
        "kill",
        "lane",
        "layout",
        "lazyload",
        "lesson",
        "library",
        "locale",
        "lock",
        "logprune",
        "logstream",
        "mask",
        "mcpmode",
        "media",
        "minimize",
        "model",
        "native",
        "navigation",
        "network",
        "notes",
        "notify",
        "observation",
        "observe",
        "ocr",
        "omnibox",
        "onboarding",
        "outputcompare",
        "pagechip",
        "palette",
        "pause",
        "perf",
        "phish",
        "picker",
        "planlint",
        "platform",
        "pointer",
        "poll",
        "post",
        "preconnect",
        "prefetch",
        "profile",
        "proposal",
        "protocol",
        "provenance",
        "purge",
        "quarantine",
        "queue",
        "quickaction",
        "rate",
        "reap",
        "recall",
        "recent",
        "redact",
        "redirect",
        "reopen",
        "replay",
        "resume",
        "retry",
        "review",
        "revoke",
        "rollback",
        "runcache",
        "runreplay",
        "safecheck",
        "sample",
        "sandbox",
        "scaffold",
        "scale",
        "schedule",
        "schema",
        "scrape",
        "scratchpad",
        "seal",
        "search",
        "selcache",
        "session",
        "sessionreuse",
        "shortcut",
        "shotpanel",
        "siteprofile",
        "slowmo",
        "socket",
        "spawn",
        "startup",
        "stop",
        "stream",
        "streamparse",
        "submit",
        "subscribe",
        "summary",
        "surface",
        "suspend",
        "swarm",
        "sync",
        "syncbridge",
        "tab",
        "theme",
        "thumb",
        "timelapse",
        "timeline",
        "timeout",
        "toast",
        "tool",
        "tour",
        "transform",
        "transparency",
        "trigger",
        "vault",
        "virtlist",
        "vision",
        "visit",
        "vote",
        "warm",
        "watch",
        "window",
        "worker",
        "workflow"
      ]
    },
    "at": {
      "type": "number",
      "description": "the epoch milliseconds of the entry"
    },
    "summary": {
      "type": "string",
      "description": "the plain language summary of the entry"
    },
    "sessionid": {
      "type": "string",
      "description": "the session the entry provenance names"
    },
    "planid": {
      "type": "string",
      "description": "the plan the entry provenance names"
    },
    "stepid": {
      "type": "string",
      "description": "the step the entry provenance names"
    }
  },
  "required": [
    "id",
    "kind",
    "at",
    "summary"
  ]
}
