application · active

Topolo Brand

Canonical versioned brand identity, assets, voice, claims, CTAs, and validation for Topolo applications.

Documentation map

  • Topolo Brand — Canonical versioned identity, voice, claims, CTA, and creative asset governance for Topolo applications.
  • Topolo Design — Standalone brand-governed design workspace for static assets and short animated creative clips.

Authority and runtime

System ID
topolo-brand
App IDs
app_topolo_brand
Owners
marketing-platform
Repositories
apps/TopoloBrand
Hosts
https://brand.topolo.app, https://brand.stg.topolo.us, https://brand.topolo.dev
Dependencies
topolo-auth, topolo-notify, applications-packages

Security and data ownership

Risk tier
high
Tenant isolation
organization_scoped
Privacy classification
confidential
Storage
d1, r2
Export and deletion
implemented
Enterprise ready
yes

Source-derived capability inventory

Source revisions: apps/TopoloBrand@05fc4a7e6712bb2cfabb4adee7fd95ba5935c992

Declared actions: 29 · API routes: 9 · UI routes: 9

{
  "id": "topolo-brand",
  "name": "Topolo Brand",
  "slug": "topolo-brand",
  "kind": "application",
  "visibility": "public",
  "repo_paths": [
    "apps/TopoloBrand"
  ],
  "source_revisions": [
    {
      "source_path": "apps/TopoloBrand",
      "repository": "apps/TopoloBrand",
      "revision": "05fc4a7e6712bb2cfabb4adee7fd95ba5935c992",
      "ref": "origin/staging"
    }
  ],
  "source_counts": {
    "source_files": 64,
    "test_files": 48,
    "test_cases": 0,
    "migration_files": 10,
    "database_tables": 0,
    "manifests": 1,
    "deploy_targets": 2,
    "actions": 29,
    "mobile_contracts": 0,
    "notifications": 6,
    "package_manifests": 1,
    "deployment_configs": 0
  },
  "manifests": [
    {
      "source_path": "apps/TopoloBrand/topolo.app.json",
      "service_slug": "topolo-brand",
      "name": "topolo-brand",
      "app_id": "app_topolo_brand",
      "compatibility_date": "2026-05-05",
      "primary_target": null,
      "environments": [
        "development",
        "production",
        "staging"
      ],
      "targets": [
        {
          "name": "api",
          "kind": "worker",
          "directory": "apps/api",
          "main": "src/worker.ts",
          "worker_name": "topolo-brand-api",
          "subdomain": null,
          "healthcheck_path": "/api/health",
          "variable_names": [
            "AUTH_BASE_URL",
            "BRAND_APP_URL",
            "NEXUS_GATEWAY_URL",
            "TOPOLO_NOTIFY_URL"
          ],
          "secret_names": [],
          "bindings": [
            {
              "kind": "d1",
              "binding": "BRAND_CONTROL_DB",
              "target": null
            },
            {
              "kind": "d1",
              "binding": "BRAND_CONTENT_DB",
              "target": null
            },
            {
              "kind": "d1",
              "binding": "BRAND_ASSETS_DB",
              "target": null
            },
            {
              "kind": "d1",
              "binding": "BRAND_AUDIT_DB",
              "target": null
            },
            {
              "kind": "r2",
              "binding": "BRAND_OBJECTS_BUCKET",
              "target": null
            }
          ]
        },
        {
          "name": "web",
          "kind": "worker",
          "directory": "apps/web",
          "main": "src/worker.ts",
          "worker_name": "topolo-brand",
          "subdomain": "brand",
          "healthcheck_path": "/api/health",
          "variable_names": [
            "INSIGHTS_SITE_KEY"
          ],
          "secret_names": [],
          "bindings": [
            {
              "kind": "services",
              "binding": "API",
              "target": null
            }
          ]
        }
      ],
      "notifications": [
        "brand.asset.processing_failed",
        "brand.binding.changed",
        "brand.kit.deleted",
        "brand.kit.retired",
        "brand.version.published",
        "brand.version.review_requested"
      ],
      "notification_contract": {
        "source_path": "topolo.notification-contracts.json",
        "role": "producer",
        "schema_version": 1,
        "owner_app_id": "app_topolo_brand",
        "events": [
          {
            "type": "brand.asset.processing_failed",
            "version": 1,
            "description": "A durable Brand asset upload attempt failed after registration.",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "required": [
                "title",
                "body",
                "surface",
                "priority",
                "severity",
                "category",
                "object_type",
                "object_id",
                "cta_url",
                "cta_label",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "surface": {
                  "const": "action"
                },
                "priority": {
                  "const": "high"
                },
                "severity": {
                  "const": "critical"
                },
                "category": {
                  "const": "brand"
                },
                "object_type": {
                  "const": "brand_asset"
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "cta_url": {
                  "type": "string",
                  "format": "uri"
                },
                "cta_label": {
                  "type": "string",
                  "minLength": 1
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                }
              },
              "additionalProperties": false
            },
            "examples": [
              {
                "title": "Brand asset upload failed",
                "body": "Primary logo could not be stored. Try the upload again.",
                "surface": "action",
                "priority": "high",
                "severity": "critical",
                "category": "brand",
                "object_type": "brand_asset",
                "object_id": "brand_asset_123",
                "cta_url": "https://brand.stg.topolo.us/brand-kits/brand_123",
                "cta_label": "Open brand kit",
                "occurred_at": "2026-07-19T00:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^brand:brand\\.asset\\.processing_failed:brand_audit_"
            }
          },
          {
            "type": "brand.binding.changed",
            "version": 1,
            "description": "A durable Brand consumer-resource binding was created, changed, or removed.",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "required": [
                "title",
                "body",
                "surface",
                "priority",
                "severity",
                "category",
                "object_type",
                "object_id",
                "cta_url",
                "cta_label",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "surface": {
                  "const": "notification"
                },
                "priority": {
                  "const": "normal"
                },
                "severity": {
                  "const": "info"
                },
                "category": {
                  "const": "brand"
                },
                "object_type": {
                  "const": "brand_binding"
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "cta_url": {
                  "type": "string",
                  "format": "uri"
                },
                "cta_label": {
                  "type": "string",
                  "minLength": 1
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                }
              },
              "additionalProperties": false
            },
            "examples": [
              {
                "title": "Brand binding changed",
                "body": "A resource is now using a different brand kit.",
                "surface": "notification",
                "priority": "normal",
                "severity": "info",
                "category": "brand",
                "object_type": "brand_binding",
                "object_id": "brand_binding_123",
                "cta_url": "https://brand.stg.topolo.us/bindings",
                "cta_label": "View bindings",
                "occurred_at": "2026-07-19T00:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^brand:brand\\.binding\\.changed:brand_audit_"
            }
          },
          {
            "type": "brand.kit.deleted",
            "version": 1,
            "description": "A Brand kit was permanently deleted, with its drafts, governed asset bytes and audit trail.",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "required": [
                "title",
                "body",
                "surface",
                "priority",
                "severity",
                "category",
                "object_type",
                "object_id",
                "cta_url",
                "cta_label",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "surface": {
                  "const": "notification"
                },
                "priority": {
                  "const": "high"
                },
                "severity": {
                  "const": "warning"
                },
                "category": {
                  "const": "brand"
                },
                "object_type": {
                  "const": "brand_kit"
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "cta_url": {
                  "type": "string",
                  "format": "uri"
                },
                "cta_label": {
                  "type": "string",
                  "minLength": 1
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                }
              },
              "additionalProperties": false
            },
            "examples": [
              {
                "title": "Brand kit deleted",
                "body": "Topolo was permanently deleted. This cannot be undone.",
                "surface": "notification",
                "priority": "high",
                "severity": "warning",
                "category": "brand",
                "object_type": "brand_kit",
                "object_id": "brand_123",
                "cta_url": "https://brand.stg.topolo.us/brand-kits",
                "cta_label": "View Brand Kits",
                "occurred_at": "2026-08-01T00:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^brand:brand\\.kit\\.deleted:brand_audit_"
            }
          },
          {
            "type": "brand.kit.retired",
            "version": 1,
            "description": "A durable active Brand kit was retired.",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "required": [
                "title",
                "body",
                "surface",
                "priority",
                "severity",
                "category",
                "object_type",
                "object_id",
                "cta_url",
                "cta_label",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "surface": {
                  "const": "notification"
                },
                "priority": {
                  "const": "normal"
                },
                "severity": {
                  "const": "warning"
                },
                "category": {
                  "const": "brand"
                },
                "object_type": {
                  "const": "brand_kit"
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "cta_url": {
                  "type": "string",
                  "format": "uri"
                },
                "cta_label": {
                  "type": "string",
                  "minLength": 1
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                }
              },
              "additionalProperties": false
            },
            "examples": [
              {
                "title": "Brand kit retired",
                "body": "Topolo is no longer available to connected products.",
                "surface": "notification",
                "priority": "normal",
                "severity": "warning",
                "category": "brand",
                "object_type": "brand_kit",
                "object_id": "brand_123",
                "cta_url": "https://brand.stg.topolo.us/brand-kits/brand_123",
                "cta_label": "Open brand kit",
                "occurred_at": "2026-07-19T00:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^brand:brand\\.kit\\.retired:brand_audit_"
            }
          },
          {
            "type": "brand.version.published",
            "version": 1,
            "description": "A durable Brand kit version became the published version.",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "required": [
                "title",
                "body",
                "surface",
                "priority",
                "severity",
                "category",
                "object_type",
                "object_id",
                "cta_url",
                "cta_label",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "surface": {
                  "const": "notification"
                },
                "priority": {
                  "const": "normal"
                },
                "severity": {
                  "const": "success"
                },
                "category": {
                  "const": "brand"
                },
                "object_type": {
                  "const": "brand_version"
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "cta_url": {
                  "type": "string",
                  "format": "uri"
                },
                "cta_label": {
                  "type": "string",
                  "minLength": 1
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                }
              },
              "additionalProperties": false
            },
            "examples": [
              {
                "title": "Brand version published",
                "body": "The new brand version is now available to connected products.",
                "surface": "notification",
                "priority": "normal",
                "severity": "success",
                "category": "brand",
                "object_type": "brand_version",
                "object_id": "brand_version_123",
                "cta_url": "https://brand.stg.topolo.us/brand-kits/brand_123",
                "cta_label": "View published version",
                "occurred_at": "2026-07-19T00:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^brand:brand\\.version\\.published:brand_audit_"
            }
          },
          {
            "type": "brand.version.review_requested",
            "version": 1,
            "description": "A durable Brand version review request was assigned to an organization member.",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "required": [
                "title",
                "body",
                "surface",
                "priority",
                "severity",
                "category",
                "object_type",
                "object_id",
                "cta_url",
                "cta_label",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "surface": {
                  "const": "action"
                },
                "priority": {
                  "const": "high"
                },
                "severity": {
                  "const": "info"
                },
                "category": {
                  "const": "brand"
                },
                "object_type": {
                  "const": "brand_version"
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "cta_url": {
                  "type": "string",
                  "format": "uri"
                },
                "cta_label": {
                  "type": "string",
                  "minLength": 1
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                }
              },
              "additionalProperties": false
            },
            "examples": [
              {
                "title": "Brand review requested",
                "body": "A teammate requested your review of a brand version.",
                "surface": "action",
                "priority": "high",
                "severity": "info",
                "category": "brand",
                "object_type": "brand_version",
                "object_id": "brand_version_123",
                "cta_url": "https://brand.stg.topolo.us/brand-kits/brand_123",
                "cta_label": "Review version",
                "occurred_at": "2026-07-19T00:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^brand:brand\\.version\\.review_requested:brand_audit_"
            }
          }
        ]
      },
      "actions": [
        {
          "name": "widget.get",
          "title": "Get widget summary",
          "description": "Get the TopoloOne widget summary.",
          "method": "GET",
          "path": "/api/widget",
          "permission": "workspace:read",
          "authorizationMode": "static",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {},
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "target": "api",
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {},
            "cli_example": [
              "topolo actions --service topolo-brand --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/widget",
              "body": null
            },
            "effects": "Reads state through GET /api/widget without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/widget",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "workspace.bootstrap",
          "title": "Get workspace bootstrap",
          "description": "Get the signed workspace bootstrap.",
          "method": "GET",
          "path": "/api/bootstrap",
          "permission": "workspace:read",
          "authorizationMode": "static",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {},
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "target": "api",
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {},
            "cli_example": [
              "topolo actions --service topolo-brand --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/bootstrap",
              "body": null
            },
            "effects": "Reads state through GET /api/bootstrap without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/bootstrap",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "workspaces.delete",
          "title": "Delete workspace",
          "description": "Delete an empty, non-default Brand workspace.",
          "method": "DELETE",
          "path": "/api/workspaces/{workspaceId}",
          "permission": "workspace:delete",
          "authorizationMode": "static",
          "readOnly": false,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "workspaceId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "workspaceId"
            ],
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "target": "api",
          "destructive": true,
          "requiresConfirmation": true,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "workspaceId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-brand --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "DELETE",
              "path": "/api/workspaces/example",
              "body": null
            },
            "effects": "May change state through DELETE /api/workspaces/{workspaceId}. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "DELETE /api/workspaces/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "privacy.export",
          "title": "Export workspace privacy data",
          "description": "Export all Brand records and authenticated asset download paths owned by the selected workspace.",
          "method": "GET",
          "path": "/api/privacy/export",
          "permission": "brand:read",
          "authorizationMode": "static",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {},
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "target": "api",
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {},
            "cli_example": [
              "topolo actions --service topolo-brand --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/privacy/export",
              "body": null
            },
            "effects": "Reads state through GET /api/privacy/export without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/privacy/export",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "privacy.delete",
          "title": "Erase workspace privacy data",
          "description": "Erase all Brand records and asset bytes owned by the selected workspace.",
          "method": "DELETE",
          "path": "/api/privacy",
          "permission": "workspace:delete",
          "authorizationMode": "static",
          "readOnly": false,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {},
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "target": "api",
          "destructive": true,
          "requiresConfirmation": true,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {},
            "cli_example": [
              "topolo actions --service topolo-brand --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "DELETE",
              "path": "/api/privacy",
              "body": null
            },
            "effects": "May change state through DELETE /api/privacy. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "DELETE /api/privacy",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "retention.run",
          "title": "Run Brand retention",
          "description": "Pseudonymize expired actor identity and purge expired archived asset bytes.",
          "method": "POST",
          "path": "/api/privacy/retention",
          "permission": "brand:write",
          "authorizationMode": "static",
          "readOnly": false,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {},
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "target": "api",
          "destructive": true,
          "requiresConfirmation": true,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {},
            "cli_example": [
              "topolo actions --service topolo-brand --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/privacy/retention",
              "body": {}
            },
            "effects": "May change state through POST /api/privacy/retention. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/privacy/retention",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "brand_kits.list",
          "title": "List brand kits",
          "description": "List canonical brand kits for the organization.",
          "method": "GET",
          "path": "/api/brand-kits",
          "permission": "brand:read",
          "authorizationMode": "static",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {},
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "target": "api",
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {},
            "cli_example": [
              "topolo actions --service topolo-brand --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/brand-kits",
              "body": null
            },
            "effects": "Reads state through GET /api/brand-kits without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/brand-kits",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "brand_kits.get",
          "title": "Get brand kit",
          "description": "Get one canonical brand kit.",
          "method": "GET",
          "path": "/api/brand-kits/{id}",
          "permission": "brand:read",
          "authorizationMode": "static",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "target": "api",
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000"
            },
            "cli_example": [
              "topolo actions --service topolo-brand --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/brand-kits/00000000-0000-4000-8000-000000000000",
              "body": null
            },
            "effects": "Reads state through GET /api/brand-kits/{id} without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/brand-kits/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "brand_kits.create",
          "title": "Create brand kit",
          "description": "Create a canonical brand kit.",
          "method": "POST",
          "path": "/api/brand-kits",
          "permission": "brand:write",
          "authorizationMode": "static",
          "readOnly": false,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "minLength": 1
              },
              "slug": {
                "type": "string",
                "minLength": 1
              },
              "description": {
                "type": "string"
              }
            },
            "required": [
              "name",
              "slug"
            ],
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "target": "api",
          "destructive": false,
          "requiresConfirmation": true,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "name": "example",
              "slug": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-brand --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/brand-kits",
              "body": {
                "name": "example",
                "slug": "example"
              }
            },
            "effects": "May change state through POST /api/brand-kits. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/brand-kits",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "brand_kits.update",
          "title": "Update brand kit",
          "description": "Update brand kit metadata.",
          "method": "PATCH",
          "path": "/api/brand-kits/{id}",
          "permission": "brand:write",
          "authorizationMode": "static",
          "readOnly": false,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "name": {
                "type": "string",
                "minLength": 1
              },
              "description": {
                "type": "string"
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "target": "api",
          "destructive": false,
          "requiresConfirmation": true,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000"
            },
            "cli_example": [
              "topolo actions --service topolo-brand --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "PATCH",
              "path": "/api/brand-kits/00000000-0000-4000-8000-000000000000",
              "body": {
                "id": "00000000-0000-4000-8000-000000000000"
              }
            },
            "effects": "May change state through PATCH /api/brand-kits/{id}. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "PATCH /api/brand-kits/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "brand_kits.delete",
          "title": "Delete brand kit",
          "description": "Permanently delete a Brand kit that was never published and has no connections, including its governed asset bytes. Refused with 409 otherwise — retire instead.",
          "method": "DELETE",
          "path": "/api/brand-kits/{id}",
          "permission": "brand:delete",
          "authorizationMode": "static",
          "readOnly": false,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "target": "api",
          "destructive": true,
          "requiresConfirmation": true,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000"
            },
            "cli_example": [
              "topolo actions --service topolo-brand --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "DELETE",
              "path": "/api/brand-kits/00000000-0000-4000-8000-000000000000",
              "body": null
            },
            "effects": "May change state through DELETE /api/brand-kits/{id}. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "DELETE /api/brand-kits/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "brand_kits.retire",
          "title": "Retire brand kit",
          "description": "Retire a brand kit and stop new resolution.",
          "method": "POST",
          "path": "/api/brand-kits/{id}/retire",
          "permission": "brand:write",
          "authorizationMode": "static",
          "readOnly": false,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "target": "api",
          "destructive": true,
          "requiresConfirmation": true,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000"
            },
            "cli_example": [
              "topolo actions --service topolo-brand --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/brand-kits/00000000-0000-4000-8000-000000000000/retire",
              "body": {
                "id": "00000000-0000-4000-8000-000000000000"
              }
            },
            "effects": "May change state through POST /api/brand-kits/{id}/retire. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/brand-kits/*/retire",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "brand_kit_versions.list",
          "title": "List brand versions",
          "description": "List immutable and draft versions for a brand kit.",
          "method": "GET",
          "path": "/api/brand-kits/{brandKitId}/versions",
          "permission": "brand:read",
          "authorizationMode": "static",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "brandKitId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "brandKitId"
            ],
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "target": "api",
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "brandKitId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-brand --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/brand-kits/example/versions",
              "body": null
            },
            "effects": "Reads state through GET /api/brand-kits/{brandKitId}/versions without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/brand-kits/*/versions",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "brand_kit_versions.get",
          "title": "Get brand version",
          "description": "Get an exact brand kit version.",
          "method": "GET",
          "path": "/api/brand-kits/{brandKitId}/versions/{versionId}",
          "permission": "brand:read",
          "authorizationMode": "static",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "brandKitId": {
                "type": "string",
                "minLength": 1
              },
              "versionId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "brandKitId",
              "versionId"
            ],
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "target": "api",
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "brandKitId": "example",
              "versionId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-brand --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/brand-kits/example/versions/example",
              "body": null
            },
            "effects": "Reads state through GET /api/brand-kits/{brandKitId}/versions/{versionId} without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/brand-kits/*/versions/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "brand_kit_versions.create",
          "title": "Create brand version",
          "description": "Create a draft versioned brand snapshot.",
          "method": "POST",
          "path": "/api/brand-kits/{brandKitId}/versions",
          "permission": "brand:write",
          "authorizationMode": "static",
          "readOnly": false,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "brandKitId": {
                "type": "string",
                "minLength": 1
              },
              "snapshot": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "changeNote": {
                "type": "string"
              }
            },
            "required": [
              "brandKitId",
              "snapshot"
            ],
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "target": "api",
          "destructive": false,
          "requiresConfirmation": true,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "brandKitId": "example",
              "snapshot": {}
            },
            "cli_example": [
              "topolo actions --service topolo-brand --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/brand-kits/example/versions",
              "body": {
                "brandKitId": "example",
                "snapshot": {}
              }
            },
            "effects": "May change state through POST /api/brand-kits/{brandKitId}/versions. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/brand-kits/*/versions",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "brand_kit_versions.update",
          "title": "Update draft brand version",
          "description": "Update a draft version before publishing.",
          "method": "PATCH",
          "path": "/api/brand-kits/{brandKitId}/versions/{versionId}",
          "permission": "brand:write",
          "authorizationMode": "static",
          "readOnly": false,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "brandKitId": {
                "type": "string",
                "minLength": 1
              },
              "versionId": {
                "type": "string",
                "minLength": 1
              },
              "snapshot": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "changeNote": {
                "type": "string"
              }
            },
            "required": [
              "brandKitId",
              "versionId"
            ],
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "target": "api",
          "destructive": false,
          "requiresConfirmation": true,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "brandKitId": "example",
              "versionId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-brand --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "PATCH",
              "path": "/api/brand-kits/example/versions/example",
              "body": {
                "brandKitId": "example",
                "versionId": "example"
              }
            },
            "effects": "May change state through PATCH /api/brand-kits/{brandKitId}/versions/{versionId}. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "PATCH /api/brand-kits/*/versions/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "brand_kit_versions.publish",
          "title": "Publish brand version",
          "description": "Publish an immutable brand snapshot for consumers. Refused with 422 and the failing issues when the snapshot breaks its own governance rules — an unresolved logo reference, or a palette below the brand’s declared minimum contrast.",
          "method": "POST",
          "path": "/api/brand-kits/{brandKitId}/versions/{versionId}/publish",
          "permission": "brand:publish",
          "authorizationMode": "static",
          "readOnly": false,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "brandKitId": {
                "type": "string",
                "minLength": 1
              },
              "versionId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "brandKitId",
              "versionId"
            ],
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "target": "api",
          "destructive": false,
          "requiresConfirmation": true,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "brandKitId": "example",
              "versionId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-brand --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/brand-kits/example/versions/example/publish",
              "body": {
                "brandKitId": "example",
                "versionId": "example"
              }
            },
            "effects": "May change state through POST /api/brand-kits/{brandKitId}/versions/{versionId}/publish. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/brand-kits/*/versions/*/publish",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "brand_kit_versions.discard",
          "title": "Discard brand draft",
          "description": "Delete a working draft that was started and not wanted. Published and retired versions are immutable and cannot be discarded.",
          "method": "DELETE",
          "path": "/api/brand-kits/{brandKitId}/versions/{versionId}",
          "permission": "brand:write",
          "authorizationMode": "static",
          "readOnly": false,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "brandKitId": {
                "type": "string",
                "minLength": 1
              },
              "versionId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "brandKitId",
              "versionId"
            ],
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "target": "api",
          "destructive": true,
          "requiresConfirmation": true,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "brandKitId": "example",
              "versionId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-brand --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "DELETE",
              "path": "/api/brand-kits/example/versions/example",
              "body": null
            },
            "effects": "May change state through DELETE /api/brand-kits/{brandKitId}/versions/{versionId}. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "DELETE /api/brand-kits/*/versions/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "brand_kit_versions.restore",
          "title": "Restore brand version",
          "description": "Copy an earlier version’s snapshot into the working draft. The earlier version is never revived — published versions are immutable and consumers recorded their ids — so this produces an ordinary draft to review and publish.",
          "method": "POST",
          "path": "/api/brand-kits/{brandKitId}/versions/{versionId}/restore",
          "permission": "brand:write",
          "authorizationMode": "static",
          "readOnly": false,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "brandKitId": {
                "type": "string",
                "minLength": 1
              },
              "versionId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "brandKitId",
              "versionId"
            ],
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "target": "api",
          "destructive": false,
          "requiresConfirmation": true,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "brandKitId": "example",
              "versionId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-brand --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/brand-kits/example/versions/example/restore",
              "body": {
                "brandKitId": "example",
                "versionId": "example"
              }
            },
            "effects": "May change state through POST /api/brand-kits/{brandKitId}/versions/{versionId}/restore. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/brand-kits/*/versions/*/restore",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "brand_kit_versions.request_review",
          "title": "Request brand version review",
          "description": "Assign a draft brand version to an organization member for review.",
          "method": "POST",
          "path": "/api/brand-kits/{brandKitId}/versions/{versionId}/review",
          "permission": "brand:write",
          "authorizationMode": "static",
          "readOnly": false,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "brandKitId": {
                "type": "string",
                "minLength": 1
              },
              "versionId": {
                "type": "string",
                "minLength": 1
              },
              "reviewerUserId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "brandKitId",
              "versionId",
              "reviewerUserId"
            ],
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "target": "api",
          "destructive": false,
          "requiresConfirmation": true,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "brandKitId": "example",
              "versionId": "example",
              "reviewerUserId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-brand --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/brand-kits/example/versions/example/review",
              "body": {
                "brandKitId": "example",
                "versionId": "example",
                "reviewerUserId": "example"
              }
            },
            "effects": "May change state through POST /api/brand-kits/{brandKitId}/versions/{versionId}/review. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/brand-kits/*/versions/*/review",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "brand_bindings.list",
          "title": "List brand bindings",
          "description": "List consumer resources bound to brand kits.",
          "method": "GET",
          "path": "/api/brand-bindings",
          "permission": "brand:read",
          "authorizationMode": "static",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {},
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "target": "api",
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {},
            "cli_example": [
              "topolo actions --service topolo-brand --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/brand-bindings",
              "body": null
            },
            "effects": "Reads state through GET /api/brand-bindings without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/brand-bindings",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "brand_bindings.upsert",
          "title": "Bind consumer resource",
          "description": "Bind an app resource to a canonical brand kit.",
          "method": "PUT",
          "path": "/api/brand-bindings",
          "permission": "brand:write",
          "authorizationMode": "static",
          "readOnly": false,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "consumerAppId": {
                "type": "string",
                "minLength": 1
              },
              "externalResourceType": {
                "type": "string",
                "minLength": 1
              },
              "externalResourceId": {
                "type": "string",
                "minLength": 1
              },
              "brandKitId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "consumerAppId",
              "externalResourceType",
              "externalResourceId",
              "brandKitId"
            ],
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "target": "api",
          "destructive": false,
          "requiresConfirmation": true,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "consumerAppId": "example",
              "externalResourceType": "example",
              "externalResourceId": "example",
              "brandKitId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-brand --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "PUT",
              "path": "/api/brand-bindings",
              "body": {
                "consumerAppId": "example",
                "externalResourceType": "example",
                "externalResourceId": "example",
                "brandKitId": "example"
              }
            },
            "effects": "May change state through PUT /api/brand-bindings. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "PUT /api/brand-bindings",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "brand_bindings.delete",
          "title": "Delete brand binding",
          "description": "Remove a consumer resource brand binding.",
          "method": "DELETE",
          "path": "/api/brand-bindings/{id}",
          "permission": "brand:write",
          "authorizationMode": "static",
          "readOnly": false,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "target": "api",
          "destructive": true,
          "requiresConfirmation": true,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000"
            },
            "cli_example": [
              "topolo actions --service topolo-brand --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "DELETE",
              "path": "/api/brand-bindings/00000000-0000-4000-8000-000000000000",
              "body": null
            },
            "effects": "May change state through DELETE /api/brand-bindings/{id}. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "DELETE /api/brand-bindings/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "brand_kits.resolve",
          "title": "Resolve brand kit",
          "description": "Resolve the exact published brand version for a kit or consumer resource.",
          "method": "POST",
          "path": "/api/brand-kits:resolve",
          "permission": "brand:read",
          "authorizationMode": "runtime",
          "allowedServices": [
            "topolo-design",
            "topolo-social-studio",
            "topolo-socialize"
          ],
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "brandKitId": {
                "type": "string",
                "minLength": 1
              },
              "consumerAppId": {
                "type": "string",
                "minLength": 1
              },
              "externalResourceType": {
                "type": "string",
                "minLength": 1
              },
              "externalResourceId": {
                "type": "string",
                "minLength": 1
              }
            },
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "target": "api",
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "brandKitId": "example",
              "consumerAppId": "example",
              "externalResourceType": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-brand --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/brand-kits:resolve",
              "body": {
                "brandKitId": "example",
                "consumerAppId": "example",
                "externalResourceType": "example"
              }
            },
            "effects": "Reads state through POST /api/brand-kits:resolve without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/brand-kits:resolve",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "brand_kits.validate",
          "title": "Validate branded content",
          "description": "Check content, claims, CTAs, assets, and channel restrictions against a brand snapshot, plus the snapshot’s own logo references and palette contrast.",
          "method": "POST",
          "path": "/api/brand-kits:validate",
          "permission": "brand:read",
          "authorizationMode": "runtime",
          "allowedServices": [
            "topolo-social-studio",
            "topolo-socialize"
          ],
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "snapshot": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "text": {
                "type": "string"
              },
              "channel": {
                "type": "string",
                "minLength": 1
              },
              "ctaId": {
                "type": "string",
                "minLength": 1
              },
              "claimIds": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "assetIds": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                }
              }
            },
            "required": [
              "snapshot",
              "text"
            ],
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "target": "api",
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "snapshot": {},
              "text": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-brand --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/brand-kits:validate",
              "body": {
                "snapshot": {},
                "text": "example"
              }
            },
            "effects": "Reads state through POST /api/brand-kits:validate without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/brand-kits:validate",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "brand_assets.list",
          "title": "List brand assets",
          "description": "List registered logos, fonts, media, and templates for a kit.",
          "method": "GET",
          "path": "/api/brand-kits/{brandKitId}/assets",
          "permission": "brand:read",
          "authorizationMode": "static",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "brandKitId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "brandKitId"
            ],
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "target": "api",
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "brandKitId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-brand --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/brand-kits/example/assets",
              "body": null
            },
            "effects": "Reads state through GET /api/brand-kits/{brandKitId}/assets without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/brand-kits/*/assets",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "brand_assets.register",
          "title": "Register brand asset",
          "description": "Register an asset before uploading its content.",
          "method": "POST",
          "path": "/api/brand-assets",
          "permission": "brand:write",
          "authorizationMode": "static",
          "readOnly": false,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "brandKitId": {
                "type": "string",
                "minLength": 1
              },
              "kind": {
                "type": "string",
                "minLength": 1
              },
              "name": {
                "type": "string",
                "minLength": 1
              },
              "mimeType": {
                "type": "string",
                "minLength": 1
              },
              "license": {
                "type": "string",
                "minLength": 1
              },
              "altText": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "brandKitId",
              "kind",
              "name",
              "mimeType"
            ],
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "target": "api",
          "destructive": false,
          "requiresConfirmation": true,
          "agentAccess": "confirm",
          "documentation": {
            "example_input": {
              "brandKitId": "example",
              "kind": "example",
              "name": "example",
              "mimeType": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-brand --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/brand-assets",
              "body": {
                "brandKitId": "example",
                "kind": "example",
                "name": "example",
                "mimeType": "example"
              }
            },
            "effects": "May change state through POST /api/brand-assets. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/brand-assets",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "brand_assets.upload",
          "title": "Upload brand asset content",
          "description": "Upload base64-encoded content into a registered Brand asset.",
          "method": "PUT",
          "path": "/api/brand-assets/{assetId}/content",
          "permission": "brand:write",
          "authorizationMode": "static",
          "readOnly": false,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "assetId": {
                "type": "string",
                "minLength": 1
              },
              "contentBase64": {
                "type": "string",
                "minLength": 1,
                "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$"
              },
              "contentType": {
                "type": "string",
                "minLength": 1
              },
              "fileName": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "assetId",
              "contentBase64",
              "contentType",
              "fileName"
            ],
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "target": "api",
          "destructive": false,
          "requiresConfirmation": true,
          "agentAccess": "confirm",
          "agentContract": {
            "upload": {
              "profile": "inline-base64",
              "contentField": "contentBase64",
              "contentTypeField": "contentType",
              "fileNameField": "fileName",
              "maxBytes": 26214400,
              "acceptedContentTypes": [
                "*/*"
              ]
            }
          },
          "documentation": {
            "example_input": {
              "assetId": "example",
              "contentBase64": "/example",
              "contentType": "example",
              "fileName": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-brand --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "PUT",
              "path": "/api/brand-assets/example/content",
              "body": {
                "assetId": "example",
                "contentBase64": "/example",
                "contentType": "example",
                "fileName": "example"
              }
            },
            "effects": "May change state through PUT /api/brand-assets/{assetId}/content. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "PUT /api/brand-assets/*/content",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "brand_assets.download",
          "title": "Download brand asset content",
          "description": "Read authenticated Brand asset bytes for an allowed organization-bound consumer.",
          "method": "GET",
          "path": "/api/brand-assets/{assetId}/content",
          "permission": "brand:read",
          "authorizationMode": "runtime",
          "allowedServices": [
            "topolo-design",
            "topolo-social-studio",
            "topolo-socialize"
          ],
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "assetId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "assetId"
            ],
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "properties": {
              "contentType": {
                "type": "string",
                "minLength": 1
              },
              "contentLength": {
                "type": "integer",
                "minimum": 0
              },
              "contentBase64": {
                "type": "string"
              }
            },
            "required": [
              "contentType",
              "contentLength",
              "contentBase64"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "documentation": {
            "example_input": {
              "assetId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-brand --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/brand-assets/example/content",
              "body": null
            },
            "effects": "Reads state through GET /api/brand-assets/{assetId}/content without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/brand-assets/*/content",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        }
      ],
      "action_coverage": {
        "status": "ok",
        "served_routes": 33,
        "matched_actions": 29,
        "declared_unserved_actions": [],
        "coverage_excluded_actions": [],
        "uncatalogued_routes": [
          {
            "key": "DELETE /api/brand-bindings",
            "method": "DELETE",
            "path": "/api/brand-bindings",
            "source": "apps/api/src/brand-routes.ts",
            "target": "api"
          }
        ],
        "ignored_routes": 3,
        "configured_exclusions": 1,
        "configuration_findings": [],
        "notes": [
          "22 manually-declared route(s)"
        ]
      },
      "runtime_contract_audit": {
        "status": "verified",
        "actions": 29,
        "contracts": 29,
        "contract_module": "topolo.action-contracts.mjs",
        "validator_sources": [
          "apps/api/src/worker.ts"
        ],
        "authorization_sources": [
          "apps/api/src/worker.ts"
        ],
        "findings": []
      }
    }
  ],
  "mobile_contracts": [],
  "package_manifests": [],
  "deployment_configs": [],
  "source_signals": {
    "api_routes": [
      {
        "method": "ALL",
        "path": "*",
        "source_path": "apps/TopoloBrand/apps/api/src/worker.ts"
      },
      {
        "method": "LITERAL",
        "path": "/api/health",
        "source_path": "apps/TopoloBrand/apps/api/src/worker.ts"
      },
      {
        "method": "LITERAL",
        "path": "/api/app-identity",
        "source_path": "apps/TopoloBrand/apps/api/src/worker.ts"
      },
      {
        "method": "LITERAL",
        "path": "/api/widget",
        "source_path": "apps/TopoloBrand/apps/api/src/worker.ts"
      },
      {
        "method": "LITERAL",
        "path": "/api/bootstrap",
        "source_path": "apps/TopoloBrand/apps/api/src/worker.ts"
      },
      {
        "method": "LITERAL",
        "path": "/api/privacy/export",
        "source_path": "apps/TopoloBrand/apps/api/src/worker.ts"
      },
      {
        "method": "LITERAL",
        "path": "/api/privacy",
        "source_path": "apps/TopoloBrand/apps/api/src/worker.ts"
      },
      {
        "method": "LITERAL",
        "path": "/api/privacy/retention",
        "source_path": "apps/TopoloBrand/apps/api/src/worker.ts"
      },
      {
        "method": "LITERAL",
        "path": "/api/workspaces",
        "source_path": "apps/TopoloBrand/apps/api/src/worker.ts"
      }
    ],
    "ui_routes": [
      {
        "path": "/dashboard",
        "source_path": "apps/TopoloBrand/apps/web/src/App.tsx"
      },
      {
        "path": "/brand-kits",
        "source_path": "apps/TopoloBrand/apps/web/src/App.tsx"
      },
      {
        "path": "/brand-kits/:kitId/:section?",
        "source_path": "apps/TopoloBrand/apps/web/src/App.tsx"
      },
      {
        "path": "/assets",
        "source_path": "apps/TopoloBrand/apps/web/src/App.tsx"
      },
      {
        "path": "/publishing",
        "source_path": "apps/TopoloBrand/apps/web/src/App.tsx"
      },
      {
        "path": "/connections",
        "source_path": "apps/TopoloBrand/apps/web/src/App.tsx"
      },
      {
        "path": "/getting-started",
        "source_path": "apps/TopoloBrand/apps/web/src/App.tsx"
      },
      {
        "path": "/settings",
        "source_path": "apps/TopoloBrand/apps/web/src/App.tsx"
      },
      {
        "path": "/settings/:section",
        "source_path": "apps/TopoloBrand/apps/web/src/App.tsx"
      }
    ],
    "test_cases": [],
    "database_tables": []
  },
  "documentation": {
    "declared_paths": [
      "applications/brand",
      "internal/apps/topolo-brand"
    ],
    "present_paths": [
      "applications/brand",
      "internal/apps/topolo-brand"
    ],
    "missing_paths": [],
    "human_reference": "/systems/topolo-brand",
    "machine_reference": "/machine/systems/topolo-brand.json",
    "action_examples": 29,
    "action_schemas": 29
  },
  "source_findings": [
    {
      "type": "uncatalogued_routes",
      "source_path": "apps/TopoloBrand/topolo.app.json",
      "detail": [
        {
          "key": "DELETE /api/brand-bindings",
          "method": "DELETE",
          "path": "/api/brand-bindings",
          "source": "apps/api/src/brand-routes.ts",
          "target": "api"
        }
      ]
    }
  ]
}